summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
Commit message (Collapse)AuthorAgeFilesLines
* r600g: clarify meaning of one variable in shader codegenMarek Olšák2011-11-091-1/+1
| | | | It's easier to read now.
* r600g: cosmetic changes in query codeMarek Olšák2011-11-092-10/+7
| | | | Mainly updating comments and removing one use of a magic number.
* r600g: use modulo for computing index into query (ring) buffersMarek Olšák2011-11-091-14/+5
|
* r600g: make r600_query_result more genericMarek Olšák2011-11-091-15/+37
| | | | | We'll soon start adding new query types, maybe even querying more than one value per query.
* Remove tgsi_sse2.José Fonseca2011-11-088-266/+1
| | | | tgsi_exec is simple. llvm is fast. tgsi_sse2 ends up being neither.
* softpipe: don't clamp or do logical operations on floating-point buffers.Morgan Armand2011-11-081-22/+54
| | | | Signed-off-by: Brian Paul <[email protected]>
* softpipe: fix memory leaksMorgan Armand2011-11-072-1/+7
| | | | | | This series of patches is a splitted version of my previous one, as suggested by Brian. Signed-off-by: Brian Paul <[email protected]>
* llvmpipe: enable RGTC after u_format fix.Dave Airlie2011-11-061-5/+0
| | | | | | The two piglit tests pass + render correctly. Signed-off-by: Dave Airlie <[email protected]>
* scons: add CPP_SOURCES for nv50/nvc0Chia-I Wu2011-11-062-2/+4
|
* android: add CPP_SOURCES for nv50/nvc0Chia-I Wu2011-11-062-4/+4
|
* r600g: add initial linestipple support.Dave Airlie2011-11-066-6/+51
| | | | | | | It seems line loop stipple in hardware needs something I don't know, it might need a proper geometry shader who knows. Signed-off-by: Dave Airlie <[email protected]>
* r600g: move SPI setup to PS setupVadim Girlin2011-11-054-74/+73
| | | | | | | | | | | | | | | | | | | | | | SPI semantic indices for PS/VS are now static, so we don't need to update spi config for every shaders combination. We can move the functionality of r600_spi_update to r600(evergreen)_pipe_shader_ps. Flatshade state is now controlled by the global FLAT_SHADE_ENA flag instead of updating FLAT_SHADE for all inputs. Sprite coord still requires the update of spi setup when sprite_coord_enable is first changed from zero (enabled), and then only when it's changed to other non-zero value (enabled for other input). Change to zero (disabling) and back to the same value is handled via global SPRITE_COORD_ENA. New field "sprite_coord_enable" added to "struct r600_pipe_shader" to track current state for the pixel shader. It's checked in the r600_update_derived_state. Signed-off-by: Vadim Girlin <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* r600g: precalculate semantic indices for SPI setupVadim Girlin2011-11-055-58/+65
| | | | | | | | | | There is no need to duplicate semantic mapping which is done in hw, so get rid of r600_find_vs_semantic_index. TGSI name/sid pair is mapped to the 8-bit semantic index for SPI. Signed-off-by: Vadim Girlin <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* Revert "r600g: precalculate semantic indices for SPI setup"Alex Deucher2011-11-045-64/+57
| | | | | | This reverts commit c15f8569fddac5f8aee77863922fd5bb992cfe8a. This breaks r6xx.
* Revert "r600g: move SPI setup to PS setup"Alex Deucher2011-11-044-73/+74
| | | | | | This reverts commit 9804cf3118ae7249098af2a9c78b36f4fb576ee4. This breaks r6xx.
* svga: fix varying var remapping for unused FS outputsBrian Paul2011-11-043-9/+22
| | | | | | | | If the VS has outputs that aren't consumed by the FS we were mapping them all to one unused VS output index, but that's illegal. Instead, map unused VS outputs to unique indexes. Reviewed-by: José Fonseca <[email protected]>
* svga: add comments and reformat code in svga_tgsi_decl_sm30.cBrian Paul2011-11-041-47/+85
|
* r600g: move SPI setup to PS setupVadim Girlin2011-11-044-74/+73
| | | | | | | | | | | | | | | | | | | | | SPI semantic indices for PS/VS are now static, so we don't need to update spi config for every shaders combination. We can move the functionality of r600_spi_update to r600(evergreen)_pipe_shader_ps. Flatshade state is now controlled by the global FLAT_SHADE_ENA flag instead of updating FLAT_SHADE for all inputs. Sprite coord still requires the update of spi setup when sprite_coord_enable is first changed from zero (enabled), and then only when it's changed to other non-zero value (enabled for other input). Change to zero (disabling) and back to the same value is handled via global SPRITE_COORD_ENA. New field "sprite_coord_enable" added to "struct r600_pipe_shader" to track current state for the pixel shader. It's checked in the r600_update_derived_state. Signed-off-by: Vadim Girlin <[email protected]>
* r600g: precalculate semantic indices for SPI setupVadim Girlin2011-11-045-57/+64
| | | | | | | | | There is no need to duplicate semantic mapping which is done in hw, so get rid of r600_find_vs_semantic_index. TGSI name/sid pair is mapped to the 8-bit semantic index for SPI. Signed-off-by: Vadim Girlin <[email protected]>
* svga: Tighten the register file assertions.José Fonseca2011-11-041-4/+2
| | | | Untested. But should fix fdo 42576.
* svga: use the draw-module's sprite stage depending on FS inputsBrian Paul2011-11-031-1/+23
| | | | | | | | | | | If we're drawing sprites and the fragment shader needs both auto- generated texcoords and user-defined varying vars we need to use this fallback path. The reason is when we enable auto texcoord generation, it gets enabled for all texcoord sets. And that clobbers the user-defined varying vars. Reviewed-by: José Fonseca <[email protected]>
* svga: pass fragment shader to draw moduleBrian Paul2011-11-033-0/+12
| | | | | | | | | If we use the draw-module for wide point/line/etc drawing we'll need a fragment shader too (like we pass in the vertex shader). This fixes sprite point rendering when forcing the swtnl path. Reviewed-by: José Fonseca <[email protected]>
* svga: implement generic variable index remappingBrian Paul2011-11-039-21/+165
| | | | | | | | | | | | | | | | | | | | | | | | | The state tracker may generate shaders that use generic vs outputs / fs inputs like: DCL IN[0], GENERIC[0] DCL IN[1], GENERIC[10] DCL IN[2], GENERIC[11] This patch remaps 0, 10, 11 to small integers like 1, 2, 3 so that we stay inside the SVGA3D limit (8). The remapping is done to both the vertex shader outputs and the fragment shader inputs. The same mapping must be used for a vs/fs pair. Note that 'union svga_compile_key' is now 'struct svga_compile_key' because we needed to add the register remapping table. The change in size isn't really significant though (it's not a search key). Also, add assertions when building up SVGA3D src/dst registers to we don't try to store too large of value for the bitfield size. Reviewed-by: José Fonseca <[email protected]>
* r300g: force buffer placements to GTT on big endian machinesMarek Olšák2011-11-031-0/+6
|
* r600g: more integer supportDave Airlie2011-11-032-23/+37
| | | | | | just some more trivial integer changes for r600/r700. Signed-off-by: Dave Airlie <[email protected]>
* r300g: Fix queries on big endian hosts.Michel Dänzer2011-11-021-1/+2
| | | | | Signed-off-by: Michel Dänzer <[email protected]> Reviewed-by: Corbin Simpson <[email protected]>
* svga: Tag cursors with the scanout hintJakob Bornecrantz2011-11-021-2/+3
| | | | | Signed-off-by: Jakob Bornecrantz <[email protected]> Reviewed-by: Thomas Hellstrom <[email protected]>
* r600g: add comment about special shader exportsAlex Deucher2011-11-021-0/+32
| | | | | | | | | Certain exports (position, point size, etc.) are treated specially by the shader and not counted as generic exports. Note the exports and any relevant related state bits. Signed-off-by: Alex Deucher <[email protected]>
* r600g: take into account PSIZE output for spi mappingVadim Girlin2011-11-021-3/+6
| | | | | | | | | | | | Skip PSIZE and POSITION when counting VS outputs. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=42435 Tested without regressions on evergreen. NOTE: this is a candidate for the 7.11 branch. Signed-off-by: Vadim Girlin <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* svga: Update state prototypes to return pipe_error.José Fonseca2011-11-026-25/+36
| | | | Fixes a bunch of prototype mismatch warnings..
* llvmpipe: Re-advertise support for stencil formats...José Fonseca2011-11-011-5/+6
| | | | | | "no fetch_rgba_float for uint formats" => "llvmpipe does not support uint formats" "stencil == uint" => "llvmpipe does not support stencil"
* llvmpipe: Use -1 instead of ~0 for "no slot".José Fonseca2011-11-013-15/+21
| | | | | | As the value of unsigned ~0 depends on the bit-width. Fixes fdo 42411.
* svga: Fix potential buffer overflow in rs draw state.José Fonseca2011-10-314-13/+19
| | | | Reviewed-by: Brian Paul <[email protected]>
* svga: Flush the hwtnl primitives before writing to buffers.José Fonseca2011-10-315-4/+62
| | | | | | | | | | | | | | | svga keeps a small queue of similar primitive draws in order to coalesce them into a single draw primitive command. But the buffers referred in primitives not yet emitted were being ignored in the considerations to flush or not the context. This fixes piglit vbo-map-remap, vbo-subdata-sync, vbo-subdata-zero, and Seeker. Based on investigation and patch from Brian Paul. Reviewed-By: Brian Paul <[email protected]>
* llvmpipe: fix a crash in non-SSE pathChia-I Wu2011-10-301-1/+1
| | | | It is a typo went unnoticed.
* r600g: reset the render condition to NULL when rendering unconditionallyMarek Olšák2011-10-301-1/+5
|
* r600g: shortcut ctx->screen->ws to ctx->wsMarek Olšák2011-10-305-12/+15
|
* r600g: Replace needless flush in texture upload.Mathias Fröhlich2011-10-291-1/+1
| | | | | | | Replace pipe->flush() with pipe->texture_barrier() in the texture upload path for the staging texture. This should be enough to get data out of the gpu caches ready to be read for texture fetch.
* r600g: remove one pointless flushMarek Olšák2011-10-293-25/+4
| | | | | | | | It's not useful for anything. The rest of the patch is just a cleanup resulting from some of the variables being no longer used. There are no piglit regressions.
* r600g: get backend mask after the context is fully set upMarek Olšák2011-10-283-4/+2
|
* r600g: don't flush before reading query resultsMarek Olšák2011-10-281-5/+0
| | | | Taken care of by the winsys.
* r600g: only maintain the list of active queriesMarek Olšák2011-10-284-32/+19
| | | | | | | | And not all existing queries. The only reason we have that list is to be able to suspend and resume the active ones. This reduces looping over queries when suspending and resuming. The queries no longer have to track some of their states.
* r600g: cleanup r600_query_resultMarek Olšák2011-10-281-9/+6
|
* r600g: don't flush in r600_get_backend_maskMarek Olšák2011-10-281-3/+0
| | | | The winsys does the flush in buffer_map.
* r600g: remove redundant variable r600_query::buffer_sizeMarek Olšák2011-10-282-15/+17
|
* r300g: remove useless codeMarek Olšák2011-10-284-22/+3
|
* r300/compiler: Fix scheduler bug causing texture corruptionTom Stellard2011-10-271-6/+35
| | | | | | | | | | | | | | We weren't setting TEX_SEM_WAIT on instructions that read the value of a TEX instruction and also wrote the same register as the TEX instruction. This is the sequence we were miscompiling: 1: TEX temp[0], input[2].xy__, 2D[0] ... 16: src0.xyz = temp[22], src1.xyz = temp[0], src2.xyz = temp[19] MAD temp[0].xyz, src0.xxx, src1.xyz, src2.xxx https://bugs.freedesktop.org/show_bug.cgi?id=42090
* r600g: remove redundant variable r600_pipe_context::blitMarek Olšák2011-10-273-4/+2
|
* r600g: remove redundant assignment of pipe_draw_info in draw_vboMarek Olšák2011-10-261-2/+0
|
* llvmpipe: llvmpipe doesn't support pure integers yet.Dave Airlie2011-10-262-0/+8
| | | | | | Should fix: https://bugs.freedesktop.org/show_bug.cgi?id=42240 Signed-off-by: Dave Airlie <[email protected]>