aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
Commit message (Collapse)AuthorAgeFilesLines
...
* llvmpipe: Remove unused variables.José Fonseca2011-11-141-2/+0
| | | | Reviewed-by: Brian Paul <[email protected]>
* llvmpipe: Make more resilient to out-of-memory situations.José Fonseca2011-11-145-24/+68
| | | | | | Most of the code was alright, but we were missing a few paths. Reviewed-by: Brian Paul <[email protected]>
* llvmpipe: fix unswizzle of packed float types.Dave Airlie2011-11-141-2/+2
| | | | | | | | | | I messed up adding the ubyte->float conversion. This fixes getteximage-formats https://bugs.freedesktop.org/show_bug.cgi?id=42837 Signed-off-by: Dave Airlie <[email protected]>
* r600g: properly handle cayman in is_alu_vec_unit_inst()Alex Deucher2011-11-131-7/+15
| | | | Signed-off-by: Alex Deucher <[email protected]>
* r600g: fix cb offset for flushed_depth_textureVadim Girlin2011-11-131-1/+1
| | | | Signed-off-by: Vadim Girlin <[email protected]>
* r600g: fix stencil buffer ref counting on evergreenVadim Girlin2011-11-131-1/+4
| | | | Signed-off-by: Vadim Girlin <[email protected]>
* r600g: lazy load for AR registerVadim Girlin2011-11-133-46/+61
| | | | | | Emit MOVA* instruction only when AR is used. Signed-off-by: Vadim Girlin <[email protected]>
* r600g: include INTERP_[XY|ZW] in is_alu_vec_unit_instVadim Girlin2011-11-131-1/+3
| | | | | | This will disallow moving them to the trans slot in merge_inst_groups Signed-off-by: Vadim Girlin <[email protected]>
* svga: don't crash/assert if we fail to allocate a vertex bufferBrian Paul2011-11-111-9/+20
| | | | | | | v2: check if pipe_buffer_map() returns NULL, and return NULL from svga_vbuf_render_map_vertices(). Per Jose's suggestion. Reviewed-by: José Fonseca <[email protected]>
* r600g: don't set the query result to 0 after a call to get_query_resultMarek Olšák2011-11-111-2/+0
| | | | get_query_result doesn't reset the result. Only begin_query does.
* r600g: the type of OCCLUSION_PREDICATE result should be booleanMarek Olšák2011-11-113-11/+17
|
* r600g: implement PIPE_QUERY_OCCLUSION_PREDICATEMarek Olšák2011-11-101-5/+21
|
* r300g: fix query result of GPU_FINISHEDMarek Olšák2011-11-101-1/+1
|
* r300g: implement PIPE_QUERY_GPU_FINISHEDMarek Olšák2011-11-101-4/+35
|
* r300g: implement PIPE_QUERY_OCCLUSION_PREDICATEMarek Olšák2011-11-101-1/+5
|
* llvmpipe/u_format: add support for EXT_texture_shared_exponent + ↵Dave Airlie2011-11-102-3/+37
| | | | | | | | | | | EXT_packed_float These two are fairly unique types so add specific cases for decoding them. Passes piglit fbo-clear-format and fbo-generatemipmap-format tests for these two extensions. Signed-off-by: Dave Airlie <[email protected]>
* llvmpipe: add NV_conditional_render support.Dave Airlie2011-11-107-0/+43
| | | | | | | | This ports the softpipe NV_conditional_render support to llvmpipe. This passes the nv_conditional_render-* piglit tests. Signed-off-by: Dave Airlie <[email protected]>
* r600g: remove useless texture barrierMarek Olšák2011-11-101-2/+0
|
* r600g: flush the whole context when CS is full, not just hw_contextMarek Olšák2011-11-103-1/+6
| | | | Because we disable render condition in r600_flush, but not in r600_context_flush.
* r600g: turn some CS overflow checks into assertionsMarek Olšák2011-11-102-12/+2
| | | | They're not really exhaustive and not so useful either.
* r600g: put the rest of CS overflow checks in r600_need_cs_spaceMarek Olšák2011-11-103-18/+9
|
* r600g: flush caches regardless of render conditionMarek Olšák2011-11-101-5/+5
| | | | What if somebody enables render condition just before we flush...
* r600g: disable render condition at the end of CS, re-enable at the beginningMarek Olšák2011-11-102-0/+19
|
* r600g: don't suspend queries if they have already been suspended by blitterMarek Olšák2011-11-101-2/+11
| | | | And add some assertions.
* r600g: properly reserve CS space for queries_suspendMarek Olšák2011-11-103-21/+18
|
* r600g: reserve CS space for a draw command in begin_query and render_conditionMarek Olšák2011-11-103-11/+25
| | | | There's no point in emitting those if you can't emit a draw command too.
* r600g: consolidate checking whether CS is fullMarek Olšák2011-11-103-31/+28
| | | | | | This adds a new function r600_need_cs_space. Currently, it's easy to overflow the CS - queries are not counted in. I guess that's not the only case where the driver may crap out.
* 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]>