summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_pipe.h
Commit message (Collapse)AuthorAgeFilesLines
* r600g/compute: Add a work-around for flushing issues on CaymanTom Stellard2013-11-211-0/+10
| | | | | | | | | Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> https://bugs.freedesktop.org/show_bug.cgi?id=69321 CC: "10.0" <mesa-stable@lists.freedesktop.org>
* r600g: properly unbind a DSA state being deleted in r600_delete_dsa_stateMarek Olšák2013-11-041-1/+1
| | | | Tested-by: Christian König <christian.koenig@amd.com>
* r600g,radeonsi: use fences provided by the winsysMarek Olšák2013-10-251-28/+0
|
* gallium: new, unified pipe_context::set_sampler_views() functionBrian Paul2013-10-231-0/+5
| | | | | | | | | | | | The new function replaces four old functions: set_fragment/vertex/ geometry/compute_sampler_views(). Note: at this time, it's expected that the 'start' parameter will always be zero. Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Tested-by: Emil Velikov <emil.l.velikov@gmail.com>
* Revert "r600g: only flush the caches that need to be flushed during CP DMA ↵Marek Olšák2013-10-061-2/+0
| | | | | | | | | | | | | | | | | operations" This reverts commit 7948ed1250cae78ae1b22dbce4ab23aceacc6159. It caused graphical corruption. I've got no idea why. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70042 https://bugs.freedesktop.org/show_bug.cgi?id=68451 Conflicts: src/gallium/drivers/r600/evergreen_hw_context.c src/gallium/drivers/r600/r600_hw_context.c src/gallium/drivers/r600/r600_pipe.h
* r600g,radeonsi: share r600_texture.cMarek Olšák2013-09-291-15/+1
| | | | | | | | | The function r600_choose_tiling is new and needs a review. The only change in functionality is that it enables 2D tiling for compressed textures on SI. It was probably accidentally turned off. v2: don't make scanout buffers linear
* r600g: move the low-level buffer functions for multiple rings to drivers/radeonMarek Olšák2013-09-291-6/+0
| | | | Also slightly optimize r600_buffer_map_sync_with_rings.
* r600g,radeonsi: consolidate tiling_info initializationMarek Olšák2013-09-291-7/+0
| | | | and the util_format_s3tc_init calls too.
* r600g: move aux_context and r600_screen_clear_buffer to drivers/radeonMarek Olšák2013-09-291-7/+0
| | | | This will be used in the next commit.
* r600g: move some debug options to drivers/radeonMarek Olšák2013-09-291-12/+1
|
* r600g,radeonsi: share the async dma interfaceMarek Olšák2013-09-291-23/+0
| | | | r600_texture.c is one step closer to r600g.
* r600g,radeonsi: remove unused codeMarek Olšák2013-09-291-3/+0
|
* r600g: move r600g-specific functions out of r600_texture.cMarek Olšák2013-09-291-12/+10
|
* r600g: fast color clears for single-sample buffersGrigori Goronzy2013-09-201-0/+2
| | | | | | | | | | | Allocate a CMASK on demand and use it to fast clear single-sample colorbuffers. Both FBOs and window system colorbuffers are fast cleared. Expand as needed when colorbuffers are mapped or displayed on screen. v2: cosmetics, move transfer expansion into dma_blit Signed-off-by: Marek Olšák <marek.olsak@amd.com>
* radeon/uvd: move more logic into the common filesChristian König2013-09-121-5/+0
| | | | | | | | Move the code back into the common UVD files since we now have base structures for R600 and radeonsi. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
* r600g: move streamout state to drivers/radeonMarek Olšák2013-08-311-188/+13
| | | | | | | | | | | | | | | | | | | | | | | | This streamout state code will be used by radeonsi. There are new structures r600_common_context and r600_common_screen. What is inherited by what is shown here: pipe_context -> r600_common_context -> r600_context pipe_screen -> r600_common_screen -> r600_screen The common structures reside in drivers/radeon. Currently they only contain enough functionality to be able to handle streamout. Eventually I'd like the whole pipe_screen implementation to be shared and some of the context stuff too. This is quite big, but most changes are because of the new structures and the fact r600_write_value is replaced by radeon_emit. Thanks to Tom Stellard for fixing the build for r600g/compute. Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Tested-by: Tom Stellard <thomas.stellard@amd.com>
* r600g,radeonsi: remove unused variablesMarek Olšák2013-08-311-3/+0
| | | | | | Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Tested-by: Tom Stellard <thomas.stellard@amd.com>
* r600g: enable SB backend by defaultVadim Girlin2013-08-301-1/+1
| | | | | | | Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com> Reviewed-by: Marek Olšák <maraeo@gmail.com> Reviewed-by: Tom Stellard <thomas.stellard@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
* vl: add entrypoint to get_video_paramChristian König2013-08-191-0/+1
| | | | Signed-off-by: Christian König <christian.koenig@amd.com>
* vl: rename pipe_video_decoder to pipe_video_codecChristian König2013-08-191-2/+2
| | | | Signed-off-by: Christian König <christian.koenig@amd.com>
* vl: use a template for create_video_decoderChristian König2013-08-191-5/+1
| | | | Signed-off-by: Christian König <christian.koenig@amd.com>
* r600g/sb: improve math optimizations v2Vadim Girlin2013-07-111-0/+1
| | | | | | | | | | | | | | | | This patch adds support for some math optimizations that are generally considered unsafe, that's why they are currently disabled for compute shaders. GL requirements are less strict, so they are enabled for for GL shaders by default. In case of any issues with applications that rely on higher precision than guaranteed by GL, 'sbsafemath' option in R600_DEBUG allows to disable them. v2 - always set proper src vector size for transformed instructions - check for clamp modifier in the expr_handler::fold_assoc Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
* r600g: improve the mechanism for recognizing an empty CSMarek Olšák2013-07-081-0/+1
| | | | Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
* r600g: only flush the caches that need to be flushed during CP DMA operationsMarek Olšák2013-07-081-0/+2
| | | | | | | This should increase performance if constant uploads are done with the CP DMA, because only the cache that needs to be flushed is flushed. Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
* r600g: split INVAL_READ_CACHES into vertex, tex, and const cache flagsMarek Olšák2013-07-081-10/+15
| | | | | | | also flushing any cache in evergreen_emit_cs_shader seems to be superfluous (we don't flush caches when changing the other shaders either) Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
* r600g: adjust flush flags (v3)Alex Deucher2013-07-081-0/+2
| | | | | | | | | | | | | 1. flush SH with read caches 2. add flag for DB flushes 3. add flag for CB flushes v2: flush all CBs, remove redundant emit_state variable. v3: Marek: also set the new flags in r600_context_flush, the CP dma functions, and texture_barrier, and rename them Signed-off-by: Marek Olšák <maraeo@gmail.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
* r600g: fix texture offset computation for mapped MSAA depth buffersMarek Olšák2013-07-081-2/+0
| | | | | | | | | It was wrong, because the offset shouldn't be applied to MSAA depth buffers. This small cleanup should prevent such issues in the future. This fixes a lockup in "piglit/fbo-depthstencil default_fb -samples=n". Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
* r600g/compute: Move compute_shader_create() function into evergreen_compute.cTom Stellard2013-06-281-4/+1
| | | | Tested-by: Aaron Watry <awatry@gmail.com>
* gallium: add condition parameter to render_conditionRoland Scheidegger2013-06-181-0/+1
| | | | | | | | | | | | | For conditional rendering this makes it possible to skip rendering if either the predicate is true or false, as supported by d3d10 (in fact previously it was sort of implied skip rendering if predicate is false for occlusion predicate, and true for so_overflow predicate). There's no cap bit for this as presumably all drivers could do it trivially (but this patch does not implement it for the drivers using true hw predicates, nvxx, r600, radeonsi, no change is expected for OpenGL functionality). Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
* r600g: cleanup MSAA texture support checkingMarek Olšák2013-05-151-19/+1
| | | | Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
* r600g: use old shader disassembler by defaultVadim Girlin2013-05-031-0/+1
| | | | | | | | | | | | | | New disassembler is not completely isolated yet from further processing in r600g/sb that is not required for printing the dump, so it has higher probability to fail in case of any unexpected features in the bytecode. This patch adds "sbdisasm" flag for R600_DEBUG that allows to use new disassembler in r600g/sb for shader dumps when shader optimization is not enabled. If shader optimization is enabled, new disassembler is used by default. Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
* r600g/sb: use source bytecode in case of optimization errorsVadim Girlin2013-04-301-0/+1
|
* r600g: plug in optimizing backendVadim Girlin2013-04-301-0/+7
| | | | | | Optimization is enabled with "R600_DEBUG=sb". Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
* r600/uvd: stop advertising MPEG4 on UVD 2.x chips v2Christian König2013-04-261-0/+3
| | | | | | | | | That is just not supported by the hardware. v2: fix compare Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
* winsys/radeon: consolidate tracing into winsys v2Jerome Glisse2013-04-251-9/+2
| | | | | | | | | | | | This move the tracing timeout and printing into winsys and add an debug environement variable for it (R600_DEBUG=trace_cs). Lot of file touched because of winsys API changes. v2: Do not write lockup file if ib uniq id does not match last one Signed-off-by: Jerome Glisse <jglisse@redhat.com> Reviewed-by: Marek Olšák <maraeo@gmail.com>
* r600g: Add evergreen_emit_cs_constant_buffers() v2Tom Stellard2013-04-251-1/+10
| | | | | | | | v2: - Bump R600_NUM_ATOMS Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Marek Olšák <maraeo@gmail.com>
* r600g: use CP DMA for buffer clears on evergreen+Alex Deucher2013-04-241-0/+3
| | | | | | | | | | Lighter weight then using streamout. Only evergreen and newer asics support embedded data as src with CP DMA. Reviewed-by: Jerome Glisse <jglisse@redhat.com> Reviewed-by: Marek Olšák <maraeo@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* r600g: initialize CMASK and HTILE with the GPU using streamoutMarek Olšák2013-04-231-0/+7
| | | | | | | | | | | | | This fixes a crash when a resource cannot be mapped to the CPU's address space because it's too big. This puts a global pipe_context in r600_screen, which is guarded by a mutex, so that we can use pipe_context when there isn't one around. Hopefully our multi-context support is solid. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> NOTE: This is a candidate for the 9.1 branch.
* r600g: implement pipeline statistics queryMarek Olšák2013-04-161-0/+1
|
* r600g: add a debug flag for printing virtual addresses of resourcesMarek Olšák2013-04-161-0/+1
|
* r600g: add a query returning the amount of time spent during bo_map sync.Marek Olšák2013-04-161-0/+1
|
* radeon/uvd: add UVD implementation v5Christian König2013-04-111-0/+12
| | | | | | | | | | | | | | Just everything you need for UVD with r600g and radeonsi. v2: move UVD code to radeon subdir, clean up build system additions, remove an unused SI function, disable tiling on SI for now. v3: some minor indentation fix and rebased v4: dpb size calculation fixed v5: implement proper fall-back in case the kernel doesn't support UVD, based on patches from Andreas Boll but cleaned up a bit more. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
* gallium: PIPE_COMPUTE_CAP_IR_TARGET - allow drivers to specify a processor v2Tom Stellard2013-04-051-0/+2
| | | | | | | | | | | | This target string now contains four values instead of three. The old processor field (which was really being interpreted as arch) has been split into two fields: processor and arch. This allows drivers to pass a more a more detailed description of the hardware to compiler frontends. v2: - Adapt to libclc changes Reviewed-by: Francisco Jerez <currojerez@riseup.net>
* r600g: add a driver query returning the amount of requested VRAM and GTT memoryMarek Olšák2013-03-261-0/+2
|
* r600g: add a driver query returning the number of draw_vbo callsMarek Olšák2013-03-261-0/+6
| | | | between begin_query and end_query
* r600g: add debug options disabling various copy-buffer-related featuresMarek Olšák2013-03-111-0/+3
| | | | This will be invaluable for debugging and bug reports.
* r600g: remove r600.h, move the stuff elsewhere (mostly to r600_pipe.h)Marek Olšák2013-03-111-6/+101
| | | | Reviewed-by: Jerome Glisse <jglisse@redhat.com>
* r600g: remove r600_hw_context_priv.h, move the stuff to r600_pipe.hMarek Olšák2013-03-111-0/+11
| | | | Reviewed-by: Jerome Glisse <jglisse@redhat.com>
* r600g: remove deprecated state management codeMarek Olšák2013-03-111-8/+0
| | | | | | It's nice to see so much code that did pretty much nothing go away. Reviewed-by: Jerome Glisse <jglisse@redhat.com>
* r600g: atomize pixel shaderMarek Olšák2013-03-111-1/+8
| | | | Reviewed-by: Jerome Glisse <jglisse@redhat.com>