summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
Commit message (Collapse)AuthorAgeFilesLines
* r600g: re-enable handling of DISCARD_RANGE, improving performanceMarek Olšák2012-11-011-2/+0
| | | | | | It seems to work for me now. Even the graphics corruption is gone. This also boosts performance in Reaction Quake.
* r600g: fix abysmal performance in Reaction QuakeMarek Olšák2012-11-012-21/+24
| | | | | | | | | | | | | The problem was we set VRAM|GTT for relocations of STATIC resources. Setting just VRAM increases the framerate 4 times on my machine. I rewrote the switch statement and adjusted the domains for window framebuffers too. NOTE: This is a candidate for the stable branches. Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Jerome Glisse <[email protected]>
* llvmpipe: Obey back writemask.José Fonseca2012-10-311-2/+8
| | | | | | | | Tested with a modified glean tstencil2 test. NOTE: This is a candidate for stable branches. Reviewed-by: Brian Paul <[email protected]>
* r600g: avoid shader needing too many gpr to lockup the gpu v2Jerome Glisse2012-10-313-34/+62
| | | | | | | | | | | | | | On r6xx/r7xx shader resource management need to make sure that the shader does not goes over the gpr register limit. Each specific asic has a maxmimum register that can be split btw shader stage. For each stage the shader must not use more register than the limit programmed. v2: Print an error message when discarding draw. Don't add another boolean to context structure, but rather propagate the discard boolean through the call chain. Signed-off-by: Jerome Glisse <[email protected]>
* r600g: use SQ_VTX_SEMANTIC_CLEAR to clear the semantic registersMarek Olšák2012-10-314-99/+11
| | | | Reviewed-by: Alex Deucher <[email protected]>
* gallium: expose ARB_map_buffer_alignment on RadeonMarek Olšák2012-10-3111-2/+18
| | | | | | | | Reviewed-by: Brian Paul <[email protected]> v2: update relnotes-9.1 v3: use align_malloc and align_free for malloced buffers in r300g v4: document the new CAP in the docs
* r600g: use better sample positions for 8x MSAAMarek Olšák2012-10-312-12/+12
| | | | | Taken from the intel driver. The sample positions are actually a solution to the 8 queens puzzle. It gives more accurate and smoother AA.
* gallium: add start_slot parameter to set_vertex_buffersMarek Olšák2012-10-3130-183/+158
| | | | | | | | | | | | | | | | | | | | | This allows updating only a subrange of buffer bindings. set_vertex_buffers(pipe, start_slot, count, NULL) unbinds buffers in that range. Binding NULL resources unbinds buffers too (both buffer and user_buffer must be NULL). The meta ops are adapted to only save, change, and restore the single slot they use. The cso_context can save and restore only one vertex buffer slot. The clients can query which one it is using cso_get_aux_vertex_buffer_slot. It's currently set to 0. (the Draw module breaks if it's set to non-zero) It should decrease the CPU overhead when using a lot of meta ops, but the drivers must be able to treat each vertex buffer slot as a separate state (only r600g does so at the moment). I can imagine this also being useful for optimizing some OpenGL use cases. Reviewed-by: Brian Paul <[email protected]>
* r600g: tgsi-to-llvm emits right input intrinsicsVincent Lejeune2012-10-302-20/+64
| | | | Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
* r600g: implement texturing with 8x MSAA compressed surfaces for EvergreenMarek Olšák2012-10-2911-37/+256
| | | | | | | | | | The 2x and 4x MSAA cases are completely broken. The lfdptr instruction returns garbage there. The 8x MSAA case is broken on Cayman, though at least the result looks somewhat correct. Only the 8x MSAA case works on Evergreen and is enabled.
* nv50/ir: restore use of long immediate encodingsChristoph Bumiller2012-10-282-0/+9
| | | | NOTE: This is a candidate for the 9.0 branch.
* nv50,nvc0: fix 2d engine stencil-only copiesChristoph Bumiller2012-10-284-22/+48
|
* r600g: advertise 32 streamout vec4 outputsMarek Olšák2012-10-261-1/+1
| | | | to match the varying limit.
* softpipe: remove extraneous whitespaceBrian Paul2012-10-261-2/+0
|
* gallivm/llvmpipe: fix 64-bit %ll format compiler warnings for mingw32Brian Paul2012-10-261-4/+7
| | | | | Use the PRIx64 and PRIu64 format macros from inttypes.h. We made a similar change in prog_print.c in df2d81ea59993a77bd1f1ef96c5cf19ac692d5f7.
* r600g: advertise 32 fragment shaders inputs, not 34Marek Olšák2012-10-261-4/+1
|
* trace: Flush before drawing.José Fonseca2012-10-263-0/+11
|
* radeonsi: Handle TGSI_SEMANTIC_FACE.Michel Dänzer2012-10-262-1/+31
| | | | | | | Fixes two piglit tests using gl_FrontFacing. Signed-off-by: Michel Dänzer <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* radeonsi: Handle TGSI_SEMANTIC_BCOLOR.Michel Dänzer2012-10-265-15/+75
| | | | | | | | | | Put the back face colour right after the front face colour in the LDS parameter space. Fixes 18 piglit tests related to two sided lighting. Signed-off-by: Michel Dänzer <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* radeonsi: Don't snoop context state while building shaders.Michel Dänzer2012-10-263-17/+27
| | | | | | | | | Let's use the shader key describing the state. Ported from r600g commit b6521801070d52bdd5908824e82c1ce2dde16e8e. Signed-off-by: Michel Dänzer <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* radeon/llvm: Add intrinsic for reading SI FRONT_FACE VGPR in the pixel shader.Michel Dänzer2012-10-262-0/+6
| | | | | Signed-off-by: Michel Dänzer <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* r600g: split cayman common state out into a shared functionAlex Deucher2012-10-263-16/+35
| | | | | | | | | And use it for compute. This should improve compute support on cayman. Signed-off-by: Alex Deucher <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* r600g: emit some additional regs on caymanAlex Deucher2012-10-261-0/+54
| | | | | | | | | These are common to both evergreen and cayman, but were not emitted on cayman. Signed-off-by: Alex Deucher <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* r600g: there are 16 const buffer size regs for each shader stageAlex Deucher2012-10-261-2/+19
| | | | | | | | we were previously only setting 8 of them. Signed-off-by: Alex Deucher <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* r600g: rework evergreen_init_common_regs()Alex Deucher2012-10-261-40/+33
| | | | | | | | | Move gfx specific bits out as the code is shared with compute. Signed-off-by: Alex Deucher <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* r600g/compute: always CONTEXT_CONTROL packet at start of CSAlex Deucher2012-10-262-0/+10
| | | | | | | | | | It's required. The CP uses this to properly allocate new contexts. Also do a CS partial flush since we are updating CONFIG regs which are single state. Signed-off-by: Alex Deucher <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* r300g: fix texture border color for sRGB formatsMarek Olšák2012-10-261-4/+18
| | | | NOTE: This is a candidate for the stable branches.
* trace: Fix dumping of set_constant_buffer method.José Fonseca2012-10-253-9/+21
|
* r600g: force bank_swizzle if already setVincent Lejeune2012-10-242-0/+4
| | | | Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
* r600g: rewrite tgsi-to-llvm load-input to handle fragcoordVincent Lejeune2012-10-242-42/+84
| | | | Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
* nv50/ir/tgsi: fix srcMask for TXP with SHADOW1DChristoph Bumiller2012-10-241-1/+1
|
* r600g: Remove special handling of PRED_SET* insructions for LLVM 3.2Tom Stellard2012-10-191-0/+2
| | | | | The 3.2 version of the backend now sets all the correct fields for PRED_SET* instructions.
* radeon/llvm: Sort tgsi opcode action initializationTom Stellard2012-10-191-59/+50
| | | | This was done in order to identify and remove duplicate entries.
* radeon/llvm: Fix lowering TGSI_OPCODE_SSGTom Stellard2012-10-191-1/+1
|
* gallium: remove unused data pointer from pipe_transferMarek Olšák2012-10-185-5/+0
| | | | Reviewed-by: Brian Paul <[email protected]>
* svga: add svga_screen_cache_dump() debug helperBrian Paul2012-10-172-0/+37
|
* svga: whitespace fixes, remove useless commentsBrian Paul2012-10-165-93/+52
|
* svga: silence MSVC warning about negating an unsigned valueBrian Paul2012-10-161-1/+1
|
* svga: silence MSVC double/float assignment warningsBrian Paul2012-10-161-10/+10
|
* svga: fix MSVC double/float parameter warningBrian Paul2012-10-161-1/+1
|
* svga: silence MSVC float/int assignment warningsBrian Paul2012-10-162-3/+3
|
* svga: silence MSVC double/float assignment warningsBrian Paul2012-10-161-23/+23
|
* svga: silence some MSVC signed/unsigned comparison warningsBrian Paul2012-10-1611-11/+13
|
* r600g: Fix segfault in r600_compute_global_transfer_map()Tom Stellard2012-10-161-1/+1
| | | | | | This segfault was caused by commit 369e46888904c6d379b8b477d9242cff1608e30e, however it is my fault for not testing the patch while it was on the list.
* r600g: Fix build with --enable-openclTom Stellard2012-10-161-0/+1
|
* r600g: drop useless switch statementAndreas Boll2012-10-151-94/+7
| | | | Reviewed-by: Alex Deucher <[email protected]>
* r600g: emit the border color only when it's neededMarek Olšák2012-10-154-4/+24
| | | | That depends on the texture wrap modes and filtering.
* r600g: cleanup create_sampler_state functionsMarek Olšák2012-10-153-57/+46
| | | | | | | - stopped using util_color - reformatted to occupy less characters per line. - used memcpy for the border color - used pipe_color_union in the state structure
* svga: remove needless debug-mode linked list codeBrian Paul2012-10-151-3/+1
| | | | LIST_DEL() always sets the prev/next pointers to NULL now.
* nouveau: fix offset in nouveau_buffer_transfer_mapChristoph Bumiller2012-10-141-1/+1
| | | | | Before 369e46888904c6d379b8b477d9242cff1608e30e, the transfer was initialized before the call to map and had the correct value already.