aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/r300_query.c
Commit message (Collapse)AuthorAgeFilesLines
* r300,r600,radeonsi: replace RADEON_FLUSH_* with PIPE_FLUSH_*Marek Olšák2017-11-291-1/+1
| | | | | | and handle PIPE_FLUSH_HINT_FINISH in r300. Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium: add PIPE_QUERY_OCCLUSION_PREDICATE_CONSERVATIVENicolai Hähnle2017-09-181-2/+5
| | | | | | | | | | | | | | | | | To be able to properly distinguish between GL_ANY_SAMPLES_PASSED and GL_ANY_SAMPLES_PASSED_CONSERVATIVE. This patch goes through all drivers, having them treat the two query types identically, except: 1. radeon incorrectly enabled conservative mode on PIPE_QUERY_OCCLUSION_PREDICATE. We now do it correctly, only on PIPE_QUERY_OCCLUSION_PREDICATE_CONSERVATIVE. 2. st/mesa uses the new query type. Fixes dEQP-GLES31.functional.fbo.no_attachments.* Reviewed-by: Marek Olšák <[email protected]>
* gallium: s/uint/enum pipe_render_cond_flag/ for set_render_condition()Brian Paul2017-03-081-1/+1
| | | | Reviewed-by: Edward O'Callaghan <[email protected]>
* gallium/radeon: use gart_page_size instead of hardcoded 4096Marek Olšák2016-05-101-1/+3
| | | | | Reviewed-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* winsys/radeon: remove use_reusable_pool parameter from buffer_createNicolai Hähnle2016-04-271-1/+1
| | | | | | All callers set this parameter to true. Reviewed-by: Marek Olšák <[email protected]>
* gallium: add bool return to pipe_context::end_queryNicolai Hähnle2016-04-211-3/+5
| | | | | | | | | Even when begin_query succeeds, there can still be failures in query handling. For example for radeon, additional buffers may have to be allocated when queries span multiple command buffers. Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* gallium: add pipe_context::set_active_query_state for pausing queriesMarek Olšák2016-04-121-0/+6
| | | | | Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: remove radeon_winsys_cs_handleMarek Olšák2015-12-111-3/+1
| | | | | | | | "radeon_winsys_cs_handle *cs_buf" is now equivalent to "pb_buffer *buf". Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* gallium/radeon: unify buffer_wait and buffer_is_busy in the winsys interfaceMarek Olšák2015-08-071-2/+3
| | | | | | The timeout parameter covers both cases. Reviewed-by: Alex Deucher <[email protected]>
* gallium/radeon: remove buffer_unmap calls that can potentially decrease perfMarek Olšák2015-07-231-2/+0
| | | | | | | | | | | | | buffer_unmap is currently a no-op on radeon and done correctly on amdgpu. I plan to fix it for radeon, but before that, all occurences of buffer_unmap that can negatively affect performance in the future must be removed. There are 2 reasons for removing buffer_unmap calls: - There is a likelihood that buffer_map will be called again, so we don't want to unmap yet. - The buffer is being released, which automatically unmaps it. Reviewed-by: Michel Dänzer <[email protected]>
* gallium: make pipe_context::begin_query return a booleanSamuel Pitoiset2015-05-061-4/+5
| | | | | | | | | GL_AMD_performance_monitor must return an error when a monitoring session cannot be started. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Martin Peres <[email protected]>
* gallium: Replace u_simple_list.h with util/simple_list.hEric Anholt2015-01-281-1/+1
| | | | | | | The code was exactly the same, except util/ has c++ guards and a struct simple_node declaration. Reviewed-by: Marek Olšák <[email protected]>
* r600g/radeonsi: Use write-combined CPU mappings of some BOs in GTTMichel Dänzer2014-07-231-1/+1
| | | | Reviewed-by: Marek Olšák <[email protected]>
* gallium: add an index argument to create_queryIlia Mirkin2014-07-011-1/+2
| | | | | | Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* gallium: add condition parameter to render_conditionRoland Scheidegger2013-06-181-3/+4
| | | | | | | | | | | | | 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 <[email protected]>
* radeon/winsys: move radeon family/class identification to winsysJerome Glisse2013-01-071-1/+1
| | | | | | | | Upcoming async dma support rely on winsys knowing about GPU families. Signed-off-by: Jerome Glisse <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* winsys/radeon: don't use BIND flags, add a flag for the cache bufmgr insteadMarek Olšák2012-12-121-2/+2
|
* winsys/radeon: simplify buffer map/unmap functionsMarek Olšák2012-04-291-2/+2
| | | | | The idea is not to use pb_map and pb_unmap wrappers, calling straight into the winsys.
* r300g: cleanup after get_query_result changeMarek Olšák2012-03-301-10/+13
|
* gallium: adapt to get_query_result interface changeMarek Olšák2012-03-301-2/+2
| | | | Reviewed-by: Brian Paul <[email protected]>
* winsys/radeon: move managing GEM domains back to driversMarek Olšák2011-12-241-1/+1
| | | | | | | | This partially reverts commit 363ff844753c46ac9c13866627e096b091ea81f8. It caused severe performance drops in Nexuiz. Reported by Phoronix. Tested by me on r300g and by IRC people on r600g.
* 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
|
* r300g: Fix queries on big endian hosts.Michel Dänzer2011-11-021-1/+2
| | | | | Signed-off-by: Michel Dänzer <[email protected]> Reviewed-by: Corbin Simpson <[email protected]>
* r300g: remove useless codeMarek Olšák2011-10-281-5/+1
|
* winsys/radeon: move GEM domains out of the drivers into winsysMarek Olšák2011-09-301-2/+1
| | | | | | | | | | | | | | | The drivers don't need to care about the domains. All they need to set are the bind and usage flags. This simplifies the winsys too. This also fixes on r600g: - fbo-depth-GL_DEPTH_COMPONENT32F-copypixels - fbo-depth-GL_DEPTH_COMPONENT16-copypixels - fbo-depth-GL_DEPTH_COMPONENT24-copypixels - fbo-depth-GL_DEPTH_COMPONENT32-copypixels - fbo-depth-GL_DEPTH24_STENCIL8-copypixels I can't explain it. Reviewed-by: Alex Deucher <[email protected]>
* winsys/radeon: remove usage parameter from buffer_createMarek Olšák2011-07-251-2/+1
|
* winsys/radeon: simplify how value queries workMarek Olšák2011-07-251-2/+2
| | | | | This drops the get_value query and adds a function query_info, which returns all the values in one nice structure.
* r300g: cleanup render_condition a bitMarek Olšák2011-05-291-5/+3
|
* r300g: remove fake occlusion queries (debug option)Marek Olšák2011-05-291-56/+6
|
* r300g/winsys: rename r300->radeon and do a little cleanupMarek Olšák2011-04-181-3/+2
| | | | | Renaming a few files, types, and functions. Also make the winsys independent of r300g.
* r300g: do not track whether occlusion queries have been flushedMarek Olšák2011-02-141-9/+5
| | | | The winsys takes care of flushing automatically.
* r300g: import the last bits of libdrm and cleanup the whole thingMarek Olšák2011-02-111-5/+4
| | | | | | | | | | | | | | Based on Dave's branch. The majority of this commit is a cleanup, mainly renaming things. There wasn't much code to import, just ioctl calls. Also done: - implemented unsynchronized bo_map (important optimization!) - radeon_bo_is_referenced_by_cs is no longer a refcount hack - dropped the libdrm_radeon dependency I'm surprised that this has resulted in less code in the end.
* r300g: simplify WRITE_RELOC API and cleanupMarek Olšák2011-02-101-5/+5
|
* r300g: optimize looping over atomsMarek Olšák2010-12-051-1/+1
| | | | This also removes DBG_STATS (the stats can be obtained with valgrind instead).
* r300g: use internal BO handle for add_buffer and write_relocMarek Olšák2010-12-031-0/+1
| | | | | | | Small perf improvement in ipers. radeon_drm_get_cs_handle is exactly what this commit tries to avoid in every write_reloc.
* r300g: fix conditional rendering in non-wait pathMarek Olšák2010-09-301-3/+3
| | | | NOTE: This is a candidate for the 7.9 branch.
* r300g: rebuild winsys and command submission to support multiple contextsMarek Olšák2010-07-161-2/+4
|
* glhd: Add query protection.Corbin Simpson2010-06-221-1/+3
| | | | Not quite copied from r300g. This is slightly more API-compliant.
* r300g: debug option for fake occlusion queriesMarek Olšák2010-06-181-6/+56
|
* r300g: rewrite occlusion queriesMarek Olšák2010-06-141-65/+44
| | | | | | | | The previous implementation had issues with queries spanning over several command streams as well as using a very large number of queries. This fixes flickering in Enemy Territory: Quake Wars. The driver now renders everything correctly in this game and the graphics is awesome.
* gallium: adjust the query interface to support custom typesZack Rusin2010-06-081-1/+2
| | | | we need to change it to support composite types
* r300g/swtcl: avoid an infinite loop if an occl. query doesn't return anythingMarek Olšák2010-05-281-2/+6
|
* r300g: remove r300_query.hMarek Olšák2010-05-251-1/+0
|
* r300g: remove unused r300_query::activeMarek Olšák2010-05-151-2/+0
|
* r300g: fix BO space accounting for occlusion queriesMarek Olšák2010-05-151-2/+0
|
* r300g: forbid overlapping queries and print error messagesMarek Olšák2010-05-151-1/+13
|
* r300g: Remove unnecessary headers.Vinson Lee2010-04-181-2/+0
|
* r300g: atomize beginning occlusion queryMarek Olšák2010-04-141-1/+1
|