mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 22:49:13 +02:00
radeong: flush CS if a buffer being mapped is referenced by it
Also, overlapping occlusion queries seems to work now.
This commit is contained in:
parent
7679447b58
commit
042b524d48
2 changed files with 5 additions and 2 deletions
|
|
@ -382,8 +382,6 @@ static void r300_emit_query_start(struct r300_context *r300)
|
|||
if (!query)
|
||||
return;
|
||||
|
||||
/* XXX This will almost certainly not return good results
|
||||
* for overlapping queries. */
|
||||
BEGIN_CS(4);
|
||||
if (caps->family == CHIP_FAMILY_RV530) {
|
||||
OUT_CS_REG(RV530_FG_ZBREG_DEST, RV530_FG_ZBREG_DEST_PIPE_SELECT_ALL);
|
||||
|
|
|
|||
|
|
@ -140,10 +140,15 @@ static void *radeon_buffer_map(struct pipe_winsys *ws,
|
|||
struct pipe_buffer *buffer,
|
||||
unsigned flags)
|
||||
{
|
||||
struct radeon_winsys_priv *priv = ((struct radeon_winsys *)ws)->priv;
|
||||
struct radeon_pipe_buffer *radeon_buffer =
|
||||
(struct radeon_pipe_buffer*)buffer;
|
||||
int write = 0;
|
||||
|
||||
if (radeon_bo_is_referenced_by_cs(radeon_buffer->bo, priv->cs)) {
|
||||
priv->cs->space_flush_fn(priv->cs->space_flush_data);
|
||||
}
|
||||
|
||||
if (flags & PIPE_BUFFER_USAGE_DONTBLOCK) {
|
||||
uint32_t domain;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue