summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* glsl: Add using statements for standard library functions.Vinson Lee2011-02-0314-0/+33
| | | | | | | | | | | | | Standard library functions in C++ are in the std namespace. When using C++-style header files for the standard library, some compilers, such as Sun Studio, provide symbols only for the std namespace and not for the global namespace. This patch adds using statements for standard library functions. Another option could have been to prepend standard library function calls with 'std::'. This patch fixes several compilation errors with Sun Studio.
* r600g: get offset for correct texture when setting up CB.Dave Airlie2011-02-041-1/+1
| | | | | | this fixes the mipmap tests with tiling forced on. Signed-off-by: Dave Airlie <[email protected]>
* r600g: avoid trying to flush the flushing texture.Dave Airlie2011-02-041-0/+6
| | | | | | Since these textures still have the depth bit set. Signed-off-by: Dave Airlie <[email protected]>
* r600g: evergreen CB check for flushed textureDave Airlie2011-02-041-0/+6
|
* r600g: flushing texture needs all levels.Dave Airlie2011-02-041-1/+1
| | | | | | For mipmap generation we need all levels in the flushing texture. Signed-off-by: Dave Airlie <[email protected]>
* r600g: remove unused variablesDave Airlie2011-02-041-4/+0
|
* r600g: add a flag to just create flushed texture without flushing.Dave Airlie2011-02-045-6/+15
| | | | | | | | | 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 <[email protected]>
* r600g: also check CB bindings for textures to depth flush.Dave Airlie2011-02-041-0/+11
| | | | | | | This checks the color buffer bindings to make sure there is something to flush. Signed-off-by: Dave Airlie <[email protected]>
* r600g: flush depth texture before a blit from it.Dave Airlie2011-02-041-0/+6
| | | | | | | 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 <[email protected]>
* svga: rename a couple sampler, sampler view functionsBrian Paul2011-02-031-7/+9
|
* gallium/svga: added debug code for dumping framebuffer images (disabled)Brian Paul2011-02-031-0/+23
|
* gallium/docs: more info about setting samplers and sampler viewsBrian Paul2011-02-031-11/+23
| | | | Plus other assorted clarifications.
* cso: don't tell drivers to bind null samplers, sampler viewsBrian Paul2011-02-031-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* r600g: Make some more things static.Henri Verbeet2011-02-036-18/+13
|
* r600g: Get rid of the unused r600_cf_vtx_tc() function.Henri Verbeet2011-02-032-37/+0
|
* r300g: Make the buffer and texture vbtls static const.Henri Verbeet2011-02-032-2/+2
|
* r600g: Make the buffer and texture vbtls static const.Henri Verbeet2011-02-032-118/+114
|
* egl_dri2: Add new radeon pci idsAlex Deucher2011-02-031-1/+40
| | | | Signed-off-by: Alex Deucher <[email protected]>
* egl_dri2: Split out drm platform implementation to a separate fileKristian Høgsberg2011-02-034-595/+640
|
* egl_dri2: Split out x11 platform codeKristian Høgsberg2011-02-034-826/+936
|
* swrast: add an interface createNewContextForAPIHaitao Feng2011-02-033-11/+128
| | | | | | | | 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 <[email protected]>
* svga: Fix resource leak; undo temporary workaround.José Fonseca2011-02-032-10/+4
| | | | | | 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.
* svga: Temporarily disable buffer DMA upload coalescing.José Fonseca2011-02-031-0/+7
| | | | See comment for more details.
* svga/drm: Flushing preemptively on a 1/3 of the aperture.José Fonseca2011-02-031-1/+1
| | | | | | | | 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.
* util: Prevent transfer dangling pointer on map failure.José Fonseca2011-02-031-0/+1
|
* svga: Don't call swc->flush directly.José Fonseca2011-02-031-1/+1
| | | | | Only svga_context_flush should do it, to ensure upload commands are not submitted to hardware in an inconsistent state.
* svga: Add an assert to catch reentrancy.José Fonseca2011-02-031-0/+1
|
* svga/drm: Update for pb_vtbl::map argument addition.José Fonseca2011-02-031-1/+2
|
* r300c: Unbreak after R4xx support was added to r300/compiler.Michel Dänzer2011-02-032-0/+2
|
* scons: Eliminate libgcc_s_sjlj-1.dll dependencyJosé Fonseca2011-02-031-0/+3
| | | | | | | | 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.
* r600g: flush differences back to DB copy.Dave Airlie2011-02-033-0/+29
|
* r600g: fix depth hw resource copies.Dave Airlie2011-02-032-18/+2
| | | | | | With the previous fixes we can now enabled hw depth copies Signed-off-by: Dave Airlie <[email protected]>
* r600g: only set depth bit for hw accessible depth buffers.Dave Airlie2011-02-031-41/+41
| | | | | | | | | | 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 <[email protected]>
* r600g: rework dirty / depth texture tracking.Dave Airlie2011-02-035-12/+10
| | | | | | | | | | | 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 <[email protected]>
* r600g: set correct pitch/offset for depth textures in flushed state.Dave Airlie2011-02-031-0/+3
| | | | This fixes zreaddraw in tiling mode
* softpipe: rename sampler[] -> fragment_samplers[]Brian Paul2011-02-022-6/+6
|
* softpipe: rename fragment sampler/view fieldsBrian Paul2011-02-023-7/+7
| | | | To be consistant with vertex, geometry sampler fields.
* cso: refactor texture sampler and sampler view codeBrian Paul2011-02-021-326/+307
| | | | | | This consolidates the code duplicated between the fragment sampler and vertex sampler functions. Plus, it'll make adding support for geometry shader samplers trivial.
* cso: rename fragment sampler-related fieldsBrian Paul2011-02-021-21/+26
| | | | To better distinguish from vertex sampler fields.
* cso: fix loop bound in cso_set_vertex_samplers()Brian Paul2011-02-021-1/+1
| | | | | | | 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.
* glcpp: Raise error when modulus is zeroChad Versace2011-02-021-1/+6
| | | | | | | | | | 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.
* glsl: Avoid division-by-zero during constant-foldingChad Versace2011-02-021-1/+19
| | | | | | | | | | | | | | | | | | | | | 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.
* glsl: Fix constant-folding for reciprocal expressionsChad Versace2011-02-021-6/+10
| | | | | | | | | | | | | | | 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.
* svga: Flush upload buffers or we get assertsJosé Fonseca2011-02-022-5/+7
| | | | Based on work from Jakob Bornecrantz, Michel Dänzer, and Brian Paul.
* glsl: Fix use of uninitialized values in _mesa_glsl_parse_state ctor.Kenneth Graunke2011-02-011-0/+2
| | | | | | This has probably existed since e5e34ab18eeaffa465 or so. NOTE: This is a candidate for the 7.9 and 7.10 branches.
* glsl: Fix invalid use of ralloc_asprintf in prototype_string.Kenneth Graunke2011-02-011-1/+1
| | | | | | | | 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.
* r600g: use burst exports in shadersChristian König2011-02-024-3/+40
| | | | | Join multiple exports into just one instruction instead of exporting each register separately.
* r200: remove 0x4243 pci idAlex Deucher2011-02-012-2/+0
| | | | | | | There's no such device. 0x4243 is a pci bridge id, not a GPU. Signed-off-by: Alex Deucher <[email protected]>
* i915: Only mark a register as available if all components are writtenIan Romanick2011-02-011-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* mesa: glGetUniform only returns a single element of an arrayIan Romanick2011-02-011-14/+41
| | | | | | | 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.