summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeon
Commit message (Collapse)AuthorAgeFilesLines
* radeonsi: program tile swizzle for color and FMASK surfaces for GFX & SDMAMarek Olšák2017-08-042-1/+4
| | | | | Reviewed-by: Dave Airlie <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: reallocate textures with non-zero tile_swizzle on exportMarek Olšák2017-08-041-1/+3
| | | | | Reviewed-by: Dave Airlie <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* ac/surface: add RADEON_SURF_SHAREABLEMarek Olšák2017-08-041-1/+3
| | | | | | | Shareable textures won't use tile swizzle. Reviewed-by: Dave Airlie <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: avoid redundant SET_PREDICATION packet with QBO workaroundNicolai Hähnle2017-08-021-4/+9
| | | | | | | | The QBO workaround compute grid launch emits the render condition atom when dirty, so install the render condition in the context only after launching the compute grid. This avoids a redundant SET_PREDICATION. Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: fix streamout overflow predication on VI+Nicolai Hähnle2017-08-022-18/+74
| | | | | | | | | | There is a firmware regression that causes failures. Work around it by using the compute shader for query_buffer_objects to summarize the query results. v2: rename to PREDICATION_OP_BOOL64 (consistent with sid.h) Reviewed-by: Marek Olšák <[email protected]>
* gallium/radeon: implement qbo for SO_OVERFLOW_PREDICATENicolai Hähnle2017-08-021-7/+37
| | | | | | v2: use R600_MAX_STREAMS instead of 4 (Marek) Reviewed-by: Marek Olšák <[email protected]>
* gallium/radeon: implement basic parts of PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATENicolai Hähnle2017-08-021-25/+73
| | | | | | v2: use R600_MAX_STREAMS instead of 4 (Marek) Reviewed-by: Marek Olšák <[email protected]>
* gallium/radeon: fix render predication by SO overflow predicateNicolai Hähnle2017-08-021-7/+6
| | | | | | | | | | The predication bits are "visible or no overflow" and "not visible or overflow", so we need to invert the check relative to the GL and Gallium interface semantics. Also, predication by the other streamout-related queries is not allowed. Reviewed-by: Marek Olšák <[email protected]>
* gallium/radeon: fix ARB_query_buffer_object conversion to booleanNicolai Hähnle2017-08-021-1/+2
| | | | | | | | | The issue here is that the immediate is treated as a 64-bit value, and fetching it does not work reliably with swizzles that are different from xy and zw. Cc: [email protected] Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: don't print AMD twice in the renderer string with the marketing nameMarek Olšák2017-08-011-1/+2
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: print CE IBs into ddebug reportsMarek Olšák2017-08-012-3/+6
| | | | | Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: enable R600_DEBUG=nir for vertex and fragment shadersNicolai Hähnle2017-07-312-1/+2
| | | | | | | | | Also, disable geometry and tessellation shaders. Mixing and matching NIR and TGSI shaders should work (and I've tested it for the VS/PS interface), but geometry and tessellation requires VS-as-ES/LS, which isn't implemented yet for NIR. Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: expose MRT-draw-calls to HUDMarek Olšák2017-07-313-0/+9
| | | | | Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: make S_FIXED function signed and move it to shared codeMarek Olšák2017-07-261-0/+5
| | | | | | | | | | | This fixes a bug uncovered by: 2412c4c81ea0488df865817a0de91ec46e359b72 util: Make CLAMP turn NaN into MIN. Cc: 17.2 <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi/gfx9: reduce max threads per block to 1024 on gfx9+Nicolai Hähnle2017-07-261-15/+24
| | | | | | | | | The number of supported waves per thread group has been reduced to 16 with gfx9. Trying to use 32 waves causes hangs, and barriers might not work correctly with > 16 waves. Cc: [email protected] Reviewed-by: Marek Olšák <[email protected]>
* radeon/vcn: move message buffer to vram for nowLeo Liu2017-07-251-1/+2
| | | | | | | To workaround an unknown bug. Signed-off-by: Leo Liu <[email protected]> Acked-by: Christian König <[email protected]>
* radeonsi/gfx9: don't read back non-existent register SRBM_STATUS2Marek Olšák2017-07-171-1/+1
| | | | | | It looks like there is no way to monitor SDMA busyness on GFX9. Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: reallocate suballocated buffers when exportedMarek Olšák2017-07-172-1/+28
| | | | | | This should fix exports of suballocated buffers. Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: flush the context after in-place texture realloc before exportMarek Olšák2017-07-171-0/+1
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium: use "ull" number suffix to keep the QtCreator parser happyMarek Olšák2017-07-101-22/+22
| | | | | | | It can't parse "llu". Reviewed-by: Thomas Helland <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* gallium/radeon: fix VDPAU breakage, need VRAM with WCMarek Olšák2017-07-051-1/+2
|
* gallium/radeon: attempt to fix a compiler failure in radeon_winsys.hMarek Olšák2017-07-041-1/+1
| | | | trivial.
* gallium/radeon: allow suballocating texturesMarek Olšák2017-07-042-1/+15
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: generalize the function for in-place texture reallocationMarek Olšák2017-07-041-21/+43
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: add radeon_winsys::buffer_is_suballocatedMarek Olšák2017-07-041-0/+3
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: clean up pb_cache bucket/usage determinationMarek Olšák2017-07-041-0/+20
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: enable suballocations for VRAM with no CPU accessMarek Olšák2017-07-042-4/+15
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: clean up (domain, flags) <-> (slab heap) translationsMarek Olšák2017-07-041-0/+62
| | | | | | This is cleaner, and we are down to 4 slabs. Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: remove RADEON_FLAG_CPU_ACCESSMarek Olšák2017-07-042-8/+3
| | | | | | https://lists.freedesktop.org/archives/amd-gfx/2017-June/010591.html Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: clean up r600_texture_get_handleMarek Olšák2017-07-041-24/+23
| | | | | Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: rename RADEON_FLAG_HANDLE -> RADEON_FLAG_NO_SUBALLOCMarek Olšák2017-07-042-2/+2
| | | | | Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: fix a possible crash for buffer exportsMarek Olšák2017-07-041-9/+15
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: ignore PIPE_BIND_SHARED for buffersMarek Olšák2017-07-041-2/+0
| | | | | | BO exports can't be predicted this way. Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: add a HUD query for getting an average GFX BO list sizeMarek Olšák2017-07-043-0/+20
| | | | | Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* radeon/vcn: enable h264 decode entension supportLeo Liu2017-06-272-0/+3
| | | | | | | It's enabled through message buffer for UVD Signed-off-by: Leo Liu <[email protected]> Acked-by: Christian König <[email protected]>
* radeonsi: implement the workaround for Rocket League - postponed TGSI killMarek Olšák2017-06-232-0/+6
| | | | | | | | Do KILL at the end of shaders so as not to break WQM. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100070 Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: pass create_screen flags to r600_common_screen_initMarek Olšák2017-06-232-2/+2
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi/gfx9: enable DCC fast clearMarek Olšák2017-06-221-4/+0
| | | | | | It seems to work now. Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: fix DCC fast clear for luminance and alpha formatsMarek Olšák2017-06-221-1/+10
| | | | | | | | | | | I reproduced this bug on Polaris11 and Raven. I can't get this bug on Fiji. The reason might be that Fiji doesn't use 2D tiling for the test due to higher 2D tiling alignment requirements. Fixes piglit: spec@ext_framebuffer_object@fbo-fast-clear Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: add separate HUD counters for CB and DB cache flushesMarek Olšák2017-06-223-7/+16
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon/gfx9: fix PBO texture uploads to compressed texturesNicolai Hähnle2017-06-191-1/+6
| | | | | | | | | st/mesa creates a surface that reinterprets the compressed blocks as RGBA16UI or RGBA32UI. We have to adjust width0 & height0 accordingly to avoid out-of-bounds memory accesses by CB. Cc: 17.1 <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* gallium/radeon: add a new HUD query for the number of resident handlesSamuel Pitoiset2017-06-183-0/+9
| | | | | | | | | Useful for debugging performance issues when ARB_bindless_texture is enabled. This query doesn't make a distinction between texture and image handles. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* r600, radeon: move radeon_shader_binary_{init,clean} back to radeonEmil Velikov2017-06-172-0/+26
| | | | | | | | | | | | | Those are used by r600 and radeonsi, so moving them within the former was a bad idea. Fixes: d96a210842b ("r600g,compute: provide local copy of functions from ac_binary.c") Cc: Jan Vesely <[email protected]> Cc: Aaron Watry <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Tested-by: Bas Nieuwenhuizen <[email protected]>
* r600g,compute: provide local copy of functions from ac_binary.cJan Vesely2017-06-162-26/+0
| | | | | | | | | | | | | | This is a verbatim copy of the code. The functions can be cleaned up since r600 does not use all the stuff that gcn does. The symbol names have been changed since we still use ac_binary.h header (for struct definition) v2: Add ifdef guard around r600_binary_clean call (Aaron) Remove stray comment Signed-off-by: Jan Vesely <[email protected]> Tested-By: Aaron Watry <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* gallium/radeon: fix initialization of new resource bindless fieldsSamuel Pitoiset2017-06-151-0/+2
| | | | | | | r600_resource objects are not calloc'd. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: upload new descriptors when resident buffers are invalidatedSamuel Pitoiset2017-06-141-0/+4
| | | | | | | | | | | | | When texture buffers are invalidated the addr in the resident descriptor has to be updated but we can't create a new descriptor because the resident handle has to be the same. Instead, use the WRITE_DATA packet which allows to update memory directly but graphics/compute have to be idle in case the GPU is reading the descriptor. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* gallium/radeon: Include the family name in the renderer string if it's not ↵Henri Verbeet2017-06-131-14/+18
| | | | | | | | | | | equal to the marketing name. The "family" name is often more informative than the "marketing" name. More importantly, applications, like for example Wine, may recognise GPUs based on the existing "family" names. Reviewed-by: Marek Olšák <[email protected]> Signed-off-by: Henri Verbeet <[email protected]>
* radeonsi: pack si_framebuffer betterMarek Olšák2017-06-122-2/+2
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: don't allocate HTILE in a separate bufferMarek Olšák2017-06-082-33/+26
| | | | | Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: Use libdrm to get chipset nameSamuel Li2017-06-072-1/+12
| | | | | | | | v2: Add a func pointer to radeon_winsys to support radeon later. Change-Id: I614ea71424f9e5c97e4ae68654315d28c89eaa5f Signed-off-by: Samuel Li <[email protected]> Signed-off-by: Marek Olšák <[email protected]>