summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600
Commit message (Collapse)AuthorAgeFilesLines
* r600g: atomize blend stateMarek Olšák2012-10-109-176/+182
| | | | | | | | | | | This is not so trivial, because we disable blending if the dual src blending is turned on and the number of color outputs is less than 2. I decided to create 2 command buffers in the blend state object and just switch between them when needed, because there are other states unrelated to blending (like the color mask) and those shouldn't be changed (the old code had it wrong). Reviewed-by: Jerome Glisse <[email protected]>
* r600g: inline r600_atom_dirtyMarek Olšák2012-10-108-52/+47
| | | | Reviewed-by: Jerome Glisse <[email protected]>
* r600g: remove the "atom" variable from r600_command_bufferMarek Olšák2012-10-106-37/+34
| | | | | | | | | | | | | | | r600_command_buffer is not an atom. The "atoms" have evolved into state slots (or groups of state slots) where you can bind states. There is a fixed amount of atoms (state slots) in the context. The command buffers are nothing like that. They represent states, not state slots. We could probably give r600_atom a better name someday. Reviewed-by: Jerome Glisse <[email protected]>
* r600g: use a select to handle front/back color in llvmVincent Lejeune2012-10-092-5/+44
| | | | Reviewed-by: Tom Stellard <[email protected]>
* r600g: frontcolor tracks its associated backcolorVincent Lejeune2012-10-092-25/+35
| | | | Reviewed-by: Tom Stellard <[email protected]>
* r600g: Fix build with --enable-openclTom Stellard2012-10-091-1/+3
|
* r600g: remove unused variables to fix compile warningsMarek Olšák2012-10-092-4/+0
|
* r600g: fix possible issue with stencil mipmap renderingMarek Olšák2012-10-061-1/+12
| | | | | | | Somehow I only hit this issue with my latest libdrm changes. This won't be needed with DB texturing. NOTE: This is a candidate for the 9.0 branch.
* r600g: ensure PERFECT_ZPASS+NOOP_CULL_DISABLE are 0 for blits+decompressionMarek Olšák2012-10-061-23/+22
| | | | | | | | When an occlusion query was active, the derived DB state wasn't changed for u_blitter even though all the occlusion queries were suspended. It's fixed by moving the state update into the emit functions, which are called whenever queries are stopped or suspended.
* r600g: don't modify pipe_resource in resource_copy_region, fixing race conditionMarek Olšák2012-10-065-161/+139
| | | | | | pipe_resource can be shared between contexts, we shouldn't modify its description. Instead, let's use the resource "views" (sampler views and surfaces), where we can freely change almost any property of a resource.
* r600g: fix streamout on RS780 and RS880Marek Olšák2012-10-062-7/+14
| | | | | The latest kernel from git is required. Transform feedback (along with GL3.0) is turned off on older kernels.
* r600g: Re-enable growing of the compute memory poolTom Stellard2012-10-012-18/+4
|
* r600g: Fix bug when adding new items to the compute memory poolTom Stellard2012-10-011-6/+23
| | | | | | | The items are ordered in the item list by their offsets, with the lowest offset coming first in the list. The old code was assuming that new items being added to the list would always have a greater offset than the first item in the list, however this is not always the case.
* r600g: Use a RAT buffer as the backing bo for the compute memory poolTom Stellard2012-10-012-34/+6
|
* r600g: Make sure to init the compute memory pool with enough memoryTom Stellard2012-10-011-1/+1
|
* r600g: Add evergreen_init_color_surface_rat() v2Tom Stellard2012-10-012-0/+59
| | | | | | | | | | | This can be used to initialize the CB* registers for buffers without a radeon_surface. v2: - Get correct group_bytes value from r600_screen - Stop setting unnecessary fields Reviewed-by: Marek Olšák <[email protected]>
* r600g: Add register field definitions for 028C70_RESOURCE_TYPETom Stellard2012-10-011-0/+7
| | | | Reviewed-by: Marek Olšák <[email protected]>
* gallium: remove resource_resolveMarek Olšák2012-09-301-152/+0
| | | | | | | The functionality is provided by the new blit function. Tested-by: Michel Dänzer <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* r600g: implement blitMarek Olšák2012-09-305-23/+140
| | | | | Tested-by: Michel Dänzer <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* gallium/u_blitter: add gallium blit implementationMarek Olšák2012-09-303-25/+17
| | | | | | | The original blit function is extended and the otAher functions reuse it. Tested-by: Michel Dänzer <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* gallium/u_blitter: add ability to disable and restore the render conditionMarek Olšák2012-09-302-14/+5
| | | | | Tested-by: Michel Dänzer <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* gallium: add PIPE_CAP_TEXTURE_MULTISAMPLEMarek Olšák2012-09-301-0/+1
| | | | | Tested-by: Michel Dänzer <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* r600g: add some members to radeon_llvm_contextVincent Lejeune2012-09-281-0/+5
| | | | Reviewed-by: Tom Stellard <[email protected]>
* r600g: tgsi-to-llvm path is taken after declarations have been parsedVincent Lejeune2012-09-281-26/+32
| | | | Reviewed-by: Tom Stellard <[email protected]>
* r600g: fix EXP on CaymanMarek Olšák2012-09-271-4/+2
| | | | NOTE: This is a candidate for the stable branches.
* r600g: fix RSQ of negative value on CaymanMarek Olšák2012-09-271-0/+5
| | | | NOTE: This is a candidate for the stable branches.
* r600g: fix instance divisor on CaymanMarek Olšák2012-09-271-19/+35
| | | | | | Not sure if this is the best way to fix it. NOTE: This is a candidate for the stable branches.
* r600g: flush FMASK and CMASK when changing colorbuffers on EvergreenMarek Olšák2012-09-276-1/+18
| | | | | | This fixes rare graphical corruption. NOTE: This is a candidate for the stable branches.
* r600g: use invalid DB hardware formats to disable depth/stencilMarek Olšák2012-09-273-2/+23
|
* radeon/llvm: improve select_cc lowering to generate CND* more oftenVincent Lejeune2012-09-271-0/+15
| | | | | | | | v2: - Simplify isZero() - Remove a unused function prototype - Clean whitespace trails Reviewed-by: Tom Stellard <[email protected]>
* gallium: Add PIPE_COMPUTE_CAP_MAX_MEM_ALLOC_SIZE v2Tom Stellard2012-09-251-0/+16
| | | | | | v2: - Add comment in screen.rst - Report OpenCL required minimum for r600g
* r600g: Handle multiple kernels in the same program v2Tom Stellard2012-09-255-21/+84
| | | | | v2: - Use pc parameter of launch_grid
* r600g: Set RADEON_FLUSH_KEEP_TILING_FLAGS when emitting compute csTom Stellard2012-09-241-1/+7
|
* r600g: Fix build with LLVM compilerTom Stellard2012-09-211-1/+1
|
* r600g: set QUANT_MODE on Cayman tooMarek Olšák2012-09-221-1/+2
| | | | | | This fixes piglit/fbo-blit-stretched. Reviewed-by: Alex Deucher <[email protected]>
* r600g: use CS helpers to emit streamout stateMarek Olšák2012-09-222-33/+14
| | | | Reviewed-by: Alex Deucher <[email protected]>
* r600g: remove initialization of unused loop register tablesMarek Olšák2012-09-222-38/+0
| | | | Reviewed-by: Alex Deucher <[email protected]>
* r600g: remove now-unused SURFACE_BASE_UPDATE logicMarek Olšák2012-09-223-9/+3
| | | | Reviewed-by: Alex Deucher <[email protected]>
* r600g: remove unused CB registers from register listsMarek Olšák2012-09-222-87/+0
| | | | Reviewed-by: Alex Deucher <[email protected]>
* r600g: atomize framebuffer stateMarek Olšák2012-09-2211-868/+664
| | | | | | Tested on RS880, Evergreen and Cayman. Reviewed-by: Alex Deucher <[email protected]>
* r600g: don't snoop context state while building shadersMarek Olšák2012-09-223-28/+43
| | | | | | Let's use the shader key describing the state. Reviewed-by: Alex Deucher <[email protected]>
* r600g/llvm: rs780/rs880 are r600 asicsAlex Deucher2012-09-201-2/+2
| | | | Signed-off-by: Alex Deucher <[email protected]>
* r600g: Invalidate texture cache when creating vertex buffers for compute v2Tom Stellard2012-09-191-1/+3
| | | | | | | | | | | Compute shaders fetch data from vertex buffers via the texture cache, so we need to make sure the texture cache is flushed. v2: - Fix rebase mistake - Fix spelling in comment Reviewed-by: Marek Olšák <[email protected]>
* r600g: Use LOOP_START_DX10 for loopsTom Stellard2012-09-193-2/+11
| | | | | | | | | | LOOP_START_DX10 ignores the LOOP_CONFIG* registers, so it is not limited to 4096 iterations like the other LOOP_* instructions. Compute shaders need to use this instruction, and since we aren't optimizing loops with the LOOP_CONFIG* registers for pixel and vertex shaders, it seems like we should just use it for everything. Reviewed-by: Marek Olšák <[email protected]>
* r600g: Set the correct value of COLOR*_DIM for RATsTom Stellard2012-09-191-2/+2
| | | | | | | | | For buffers (which is what is being used for RATs), the COLOR*_DIM.WIDTH_MASK field needs to be set to the low 16-bits of the buffer size, and the COLOR*_DIM.HEIEGHT_MAX needs to be set to the high bits. Reviewed-by: Marek Olšák <[email protected]>
* r600g: Make sure to initialize DB_DEPTH_CONTROL register for computeTom Stellard2012-09-191-1/+3
| | | | | | The kernel CS checker will fail if this register is not initialized. Reviewed-by: Marek Olšák <[email protected]>
* r600g: Add some comments and debug printfs to compute codeTom Stellard2012-09-192-5/+53
| | | | Reviewed-by: Marek Olšák <[email protected]>
* r600g: Add missing break to case statementTom Stellard2012-09-191-0/+1
|
* radeon/llvm: Emit ISA for ALU instructions in the R600 code emitterMichal Sciubidlo2012-09-195-28/+121
| | | | Signed-off-by: Tom Stellard <[email protected]>
* r600g: Close a memory leak of llvm byte streamsXinya Zhang2012-09-171-0/+1
| | | | | | | No regressions found in the tests of opencl-example/run_tests.sh. Signed-off-by: Xinya Zhang <[email protected]> Signed-off-by: Tom Stellard <[email protected]>