summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2011-02-04r600g: evergreen CB check for flushed textureDave Airlie
2011-02-04r600g: flushing texture needs all levels.Dave Airlie
For mipmap generation we need all levels in the flushing texture. Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-02-04r600g: remove unused variablesDave Airlie
2011-02-04r600g: add a flag to just create flushed texture without flushing.Dave Airlie
This just adds a flag to create the texture without doing any flushing to it. Flushing occurs in the draw function. This avoids unnecessary flushes when we end up rebinding a CB/DB/texture due to the blitter just restoring state. Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-02-04r600g: also check CB bindings for textures to depth flush.Dave Airlie
This checks the color buffer bindings to make sure there is something to flush. Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-02-04r600g: flush depth texture before a blit from it.Dave Airlie
If we are going to blit from a depth texture we need to flush it before we blit from it. Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-02-03svga: rename a couple sampler, sampler view functionsBrian Paul
2011-02-03gallium/svga: added debug code for dumping framebuffer images (disabled)Brian Paul
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-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>