summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-02-03gallium/docs: more info about setting samplers and sampler viewsBrian Paul
Plus other assorted clarifications.
2011-02-03cso: don't tell drivers to bind null samplers, sampler viewsBrian Paul
Before, the set_sampler_views() and restore_sampler_views() functions used MAX2(old,new) to tell the driver how many samplers or sampler views to set. This could result in cases such as: pipe->set_fragment_sampler_views(pipe, 4, views={foo, bar, NULL, NULL}) Many/most gallium drivers would take this as-is and set ctx->num_sampler_views=4 and ctx->sampler_views={foo, bar, NULL, NULL, ...}. Later, loops over ctx->num_sampler_views would have to check for null pointers. Worse, the number of sampler views and number of sampler CSOs could get out of sync: ctx->num_samplers = 2 ctx->samplers = {foo, bar, ...} ctx->num_sampler_views = 4 ctx->sampler_views={Foo, Bar, NULL, NULL, ...} So loops over the num_samplers could run into null sampler_views pointers or vice versa. This fixes a failed assertion in the SVGA driver when running the Mesa engine demo in AA line mode (and possibly other cases). It looks like all gallium drivers are careful to unreference views and null-out sampler CSO pointers for the units beyond what's set with the pipe::bind_x_sampler_states() and pipe::set_x_sampler_views() functions. I'll update the gallium docs to explain this as well.
2011-02-03r600g: Make some more things static.Henri Verbeet
2011-02-03r600g: Get rid of the unused r600_cf_vtx_tc() function.Henri Verbeet
2011-02-03r300g: Make the buffer and texture vbtls static const.Henri Verbeet
2011-02-03r600g: Make the buffer and texture vbtls static const.Henri Verbeet
2011-02-03egl_dri2: Add new radeon pci idsAlex Deucher
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2011-02-03egl_dri2: Split out drm platform implementation to a separate fileKristian Høgsberg
2011-02-03egl_dri2: Split out x11 platform codeKristian Høgsberg
2011-02-03swrast: add an interface createNewContextForAPIHaitao Feng
This new interface could set up context for OpenGL, OpenGL ES1 and OpenGL ES2. It will be used by egl_dri2 driver. Signed-off-by: Haitao Feng <haitao.feng@intel.com>
2011-02-03svga: Fix resource leak; undo temporary workaround.José Fonseca
Leak was introduced when fixing strict aliasing violation in this code: the reference counting was preserved, but the destructor call on zero reference count was not.
2011-02-03svga: Temporarily disable buffer DMA upload coalescing.José Fonseca
See comment for more details.
2011-02-03svga/drm: Flushing preemptively on a 1/3 of the aperture.José Fonseca
Exactly one half would be the ideal, but this is a soft limit, and one more byte over brings us to synchronous behavior. Flushing when the referred GMR exceeds one third of the aperture gives us statistically better performance.
2011-02-03util: Prevent transfer dangling pointer on map failure.José Fonseca
2011-02-03svga: Don't call swc->flush directly.José Fonseca
Only svga_context_flush should do it, to ensure upload commands are not submitted to hardware in an inconsistent state.
2011-02-03svga: Add an assert to catch reentrancy.José Fonseca
2011-02-03svga/drm: Update for pb_vtbl::map argument addition.José Fonseca
2011-02-03r300c: Unbreak after R4xx support was added to r300/compiler.Michel Dänzer
2011-02-03scons: Eliminate libgcc_s_sjlj-1.dll dependencyJosé Fonseca
Certain mingw32 cross compilers (e.g. RedHat's) defaults to use DLL gcc runtime. Given the main deliverable from this project are self-contained drivers, which are loaded by any application, this dependency can cause havoc.
2011-02-03r600g: flush differences back to DB copy.Dave Airlie
2011-02-03r600g: fix depth hw resource copies.Dave Airlie
With the previous fixes we can now enabled hw depth copies Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-02-03r600g: only set depth bit for hw accessible depth buffers.Dave Airlie
If we get a sw accessible buffer like the S8 texture we end up doing depth tracking on it when there is no need since we won't ever bind it to the hardware. This leads to a sw fallback in the transfer destruction which leads to and endless recusion loop of fail in transfer destroy. Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-02-03r600g: rework dirty / depth texture tracking.Dave Airlie
this adds a flag to keep track of whether the depth texture structure is the flushed texture or not, so we can avoid doing flushes when we do a hw rendering from one to the other. it also renames flushed to dirty_db which tracks if the DB copy has been dirtied by being bound to the hw. Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-02-03r600g: set correct pitch/offset for depth textures in flushed state.Dave Airlie
This fixes zreaddraw in tiling mode
2011-02-02softpipe: rename sampler[] -> fragment_samplers[]Brian Paul
2011-02-02softpipe: rename fragment sampler/view fieldsBrian Paul
To be consistant with vertex, geometry sampler fields.
2011-02-02cso: refactor texture sampler and sampler view codeBrian Paul
This consolidates the code duplicated between the fragment sampler and vertex sampler functions. Plus, it'll make adding support for geometry shader samplers trivial.
2011-02-02cso: rename fragment sampler-related fieldsBrian Paul
To better distinguish from vertex sampler fields.
2011-02-02cso: fix loop bound in cso_set_vertex_samplers()Brian Paul
Before we were looping to nr_samplers, which is the number of fragment samplers, not vertex samplers. NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-02-02glcpp: Raise error when modulus is zeroChad Versace
For example, this now raises an error: #define XXX 1 / 0 Fixes bug: https://bugs.freedesktop.org//show_bug.cgi?id=33507 Fixes Piglit test: spec/glsl-1.10/preprocessor/modulus-by-zero.vert NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-02-02glsl: Avoid division-by-zero during constant-foldingChad Versace
Avoid division-by-zero when constant-folding the following expression types: ir_unop_rsq ir_binop_div ir_binop_mod Fixes bugs: https://bugs.freedesktop.org//show_bug.cgi?id=33306 https://bugs.freedesktop.org//show_bug.cgi?id=33508 Fixes Piglit tests: glslparsertest/glsl2/div-by-zero-01.frag glslparsertest/glsl2/div-by-zero-02.frag glslparsertest/glsl2/div-by-zero-03.frag glslparsertest/glsl2/modulus-zero-01.frag glslparsertest/glsl2/modulus-zero-02.frag NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-02-02glsl: Fix constant-folding for reciprocal expressionsChad Versace
Do not constant-fold a reciprocal if any component of the reciprocated expression is 0. For example, do not constant-fold `1 / vec4(0, 1, 2, 3)`. Incorrect, previous behavior ---------------------------- Reciprocals were constant-folded even when some component of the reciprocated expression was 0. The incorrectly applied arithmetic was: 1 / 0 := 0 For example, 1 / vec4(0, 1, 2, 3) = vec4(0, 1, 1/2, 1/3) NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-02-02svga: Flush upload buffers or we get assertsJosé Fonseca
Based on work from Jakob Bornecrantz, Michel Dänzer, and Brian Paul.
2011-02-01glsl: Fix use of uninitialized values in _mesa_glsl_parse_state ctor.Kenneth Graunke
This has probably existed since e5e34ab18eeaffa465 or so. NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-02-01glsl: Fix invalid use of ralloc_asprintf in prototype_string.Kenneth Graunke
This was my mistake when converting from talloc to ralloc. I was confused because the other calls in the function are to asprintf_append and the original code used str as the context rather than NULL. Fixes bug #33823.
2011-02-02r600g: use burst exports in shadersChristian König
Join multiple exports into just one instruction instead of exporting each register separately.
2011-02-01r200: remove 0x4243 pci idAlex Deucher
There's no such device. 0x4243 is a pci bridge id, not a GPU. Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2011-02-01i915: Only mark a register as available if all components are writtenIan Romanick
Previously a register would be marked as available if any component was written. This caused shaders such as this: 0: TEX TEMP[0].xyz, INPUT[14].xyyy, texture[0], 2D; 1: MUL TEMP[1], UNIFORM[0], TEMP[0].xxxx; 2: MAD TEMP[2], UNIFORM[1], TEMP[0].yyyy, TEMP[1]; 3: MAD TEMP[1], UNIFORM[2], TEMP[0].zzzz, TEMP[2]; 4: ADD TEMP[0].xyz, TEMP[1].xyzx, UNIFORM[3].xyzx; 5: TEX TEMP[1].w, INPUT[14].xyyy, texture[0], 2D; 6: MOV TEMP[0].w, TEMP[1].wwww; 7: MOV OUTPUT[2], TEMP[0]; 8: END to produce incorrect code such as this: BEGIN DCL S[0] DCL T_TEX0 R[0] = MOV T_TEX0.xyyy U[0] = TEXLD S[0],R[0] R[0].xyz = MOV U[0] R[1] = MUL CONST[0], R[0].xxxx R[2] = MAD CONST[1], R[0].yyyy, R[1] R[1] = MAD CONST[2], R[0].zzzz, R[2] R[0].xyz = ADD R[1].xyzx, CONST[3].xyzx R[0] = MOV T_TEX0.xyyy U[0] = TEXLD S[0],R[0] R[1].w = MOV U[0] R[0].w = MOV R[1].wwww oC = MOV R[0] END Note that T_TEX0 is copied to R[0], but the xyz components of R[0] are still expected to hold a calculated value. Fixes piglit tests draw-elements-vs-inputs, fp-kill, and glsl-fs-color-matrix. It also fixes Meego bugzilla #13005. NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-02-01mesa: glGetUniform only returns a single element of an arrayIan Romanick
Also return it as the correct type. Previously the whole array would be returned and each element would be expanded to a vec4. Fixes piglit test getuniform-01 and bugzilla #29823.
2011-02-01glsl: Fix printf_length() on MSVC.José Fonseca
2011-02-01glsl: Fix memory error when creating the supported version string.Kenneth Graunke
Passing ralloc_vasprintf_append a 0-byte allocation doesn't work. If passed a non-NULL argument, ralloc calls strlen to find the end of the string. Since there's no terminating '\0', it runs off the end. Fixes a crash introduced in 14880a510a1a288df0778395097d5a52806abfb0.
2011-02-01r600g: just change tile type when buffer is set to depth.Dave Airlie
Not 100% sure on this one, but this is how it should work, the question is whether it will uncover other bugs elsewhere.
2011-02-01r600g: align the tiling modes with what the DDX and kernel expects.Dave Airlie
If we see a MACRO bit on r600g its 2D tiled, if don't see a MACRO bit and we do see a MICRO bit then its 1D tiled. Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-02-01r600g: fix evergreen for depth decompress testDave Airlie
2011-02-01r600: only decompress depth when its tile type is wrong.Dave Airlie
If the tile type for the buffer is 1 then its been bound to the DB at some point, we need to decompress it, otherwise its only been bound as texture/cb so don't do anything. This fixes 5 piglit tests here on r600g.
2011-01-31texture_builtins.py: Fix a warning about mixed tabs/spaces.Kenneth Graunke
2011-02-01r600g: start looking at evergreen tiling.Dave Airlie
this just adds the ioctl interface and sets the tile type and array mode in the correct place. This seems to bring eg 1D tiling to the same level, and issues as on r600. No idea how to address 2D yet.
2011-02-01r600g: Actually use the info from the flushed depth texture when creating a ↵Henri Verbeet
sampler view on a depth texture. R600/R700 was using incorrect tiling information from the (compressed) depth buffer. Evergreen worked anyway because tiling doesn't work.
2011-01-31glsl: Refresh autogenerated lexer and parser files.Ian Romanick
For the previous commit.
2011-01-31glsl: Reject shader versions not supported by the implementationIan Romanick
Previously we'd happily compile GLSL 1.30 shaders on any driver. We'd also happily compile GLSL 1.10 and 1.20 shaders in an ES2 context. This has been a long standing FINISHME in the compiler. NOTE: This is a candidate for the 7.9 and 7.10 branches