summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2017-02-17 12:55:24 +0100
committerMarek Olšák <[email protected]>2017-02-19 17:16:26 +0100
commitc8ef5123980f9f538c79e626b0092660a2256ae6 (patch)
tree491984bef34198d50c76e704df683aa5e75cea6c /src/gallium/drivers
parenta264fee6245856340fab9024e1a428626e966335 (diff)
gallium/u_index_modify: don't add PIPE_TRANSFER_UNSYNCHRONIZED unconditionally
It's OK for r300g (because r300g can't write to buffers via the GPU), but not later hardware. This issue was spotted randomly. Cc: [email protected] Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r--src/gallium/drivers/r300/r300_render_translate.c4
-rw-r--r--src/gallium/drivers/r600/r600_state_common.c2
-rw-r--r--src/gallium/drivers/radeonsi/si_state_draw.c2
3 files changed, 5 insertions, 3 deletions
diff --git a/src/gallium/drivers/r300/r300_render_translate.c b/src/gallium/drivers/r300/r300_render_translate.c
index 7221211deea..7800f6eea22 100644
--- a/src/gallium/drivers/r300/r300_render_translate.c
+++ b/src/gallium/drivers/r300/r300_render_translate.c
@@ -41,7 +41,7 @@ void r300_translate_index_buffer(struct r300_context *r300,
&out_offset, out_buffer, &ptr);
util_shorten_ubyte_elts_to_userptr(
- &r300->context, ib, index_offset,
+ &r300->context, ib, PIPE_TRANSFER_UNSYNCHRONIZED, index_offset,
*start, count, ptr);
*index_size = 2;
@@ -55,6 +55,7 @@ void r300_translate_index_buffer(struct r300_context *r300,
&out_offset, out_buffer, &ptr);
util_rebuild_ushort_elts_to_userptr(&r300->context, ib,
+ PIPE_TRANSFER_UNSYNCHRONIZED,
index_offset, *start,
count, ptr);
@@ -69,6 +70,7 @@ void r300_translate_index_buffer(struct r300_context *r300,
&out_offset, out_buffer, &ptr);
util_rebuild_uint_elts_to_userptr(&r300->context, ib,
+ PIPE_TRANSFER_UNSYNCHRONIZED,
index_offset, *start,
count, ptr);
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
index 9ff2364d875..1fbe39209de 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -1743,7 +1743,7 @@ static void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info
256, &out_offset, &out_buffer, &ptr);
util_shorten_ubyte_elts_to_userptr(
- &rctx->b.b, &ib, 0, ib.offset + start, count, ptr);
+ &rctx->b.b, &ib, 0, 0, ib.offset + start, count, ptr);
pipe_resource_reference(&ib.buffer, NULL);
ib.user_buffer = NULL;
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
index c463fef835c..141dd8f7526 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -1064,7 +1064,7 @@ void si_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info)
return;
}
- util_shorten_ubyte_elts_to_userptr(&sctx->b.b, &ib, 0,
+ util_shorten_ubyte_elts_to_userptr(&sctx->b.b, &ib, 0, 0,
ib.offset + start,
count, ptr);