diff --git a/src/gallium/drivers/crocus/crocus_blorp.c b/src/gallium/drivers/crocus/crocus_blorp.c index abbd73edecc..fc68cd51848 100644 --- a/src/gallium/drivers/crocus/crocus_blorp.c +++ b/src/gallium/drivers/crocus/crocus_blorp.c @@ -190,6 +190,13 @@ blorp_alloc_binding_table(struct blorp_batch *blorp_batch, } } +static uint32_t +blorp_binding_table_offset_to_pointer(struct blorp_batch *batch, + uint32_t offset) +{ + return offset; +} + static void * blorp_alloc_vertex_buffer(struct blorp_batch *blorp_batch, uint32_t size, diff --git a/src/gallium/drivers/iris/iris_blorp.c b/src/gallium/drivers/iris/iris_blorp.c index bc465037488..b3198d8ecf8 100644 --- a/src/gallium/drivers/iris/iris_blorp.c +++ b/src/gallium/drivers/iris/iris_blorp.c @@ -177,6 +177,13 @@ blorp_alloc_binding_table(struct blorp_batch *blorp_batch, batch->screen->vtbl.update_surface_base_address(batch, binder); } +static uint32_t +blorp_binding_table_offset_to_pointer(struct blorp_batch *batch, + uint32_t offset) +{ + return offset; +} + static void * blorp_alloc_vertex_buffer(struct blorp_batch *blorp_batch, uint32_t size, diff --git a/src/intel/blorp/blorp_genX_exec.h b/src/intel/blorp/blorp_genX_exec.h index a19659c68be..365e7575129 100644 --- a/src/intel/blorp/blorp_genX_exec.h +++ b/src/intel/blorp/blorp_genX_exec.h @@ -90,6 +90,10 @@ blorp_alloc_binding_table(struct blorp_batch *batch, unsigned num_entries, uint32_t *bt_offset, uint32_t *surface_offsets, void **surface_maps); +static uint32_t +blorp_binding_table_offset_to_pointer(struct blorp_batch *batch, + uint32_t offset); + static void blorp_flush_range(struct blorp_batch *batch, void *start, size_t size); @@ -1662,16 +1666,19 @@ blorp_emit_btp(struct blorp_batch *batch, uint32_t bind_offset) blorp_emit(batch, GENX(3DSTATE_BINDING_TABLE_POINTERS_GS), bt); blorp_emit(batch, GENX(3DSTATE_BINDING_TABLE_POINTERS_PS), bt) { - bt.PointertoPSBindingTable = bind_offset; + bt.PointertoPSBindingTable = + blorp_binding_table_offset_to_pointer(batch, bind_offset); } #elif GFX_VER >= 6 blorp_emit(batch, GENX(3DSTATE_BINDING_TABLE_POINTERS), bt) { bt.PSBindingTableChange = true; - bt.PointertoPSBindingTable = bind_offset; + bt.PointertoPSBindingTable = + blorp_binding_table_offset_to_pointer(batch, bind_offset); } #else blorp_emit(batch, GENX(3DSTATE_BINDING_TABLE_POINTERS), bt) { - bt.PointertoPSBindingTable = bind_offset; + bt.PointertoPSBindingTable = + blorp_binding_table_offset_to_pointer(batch, bind_offset); } #endif } diff --git a/src/intel/vulkan/genX_blorp_exec.c b/src/intel/vulkan/genX_blorp_exec.c index 9d235afaaf3..9ac9f258051 100644 --- a/src/intel/vulkan/genX_blorp_exec.c +++ b/src/intel/vulkan/genX_blorp_exec.c @@ -195,6 +195,13 @@ blorp_alloc_binding_table(struct blorp_batch *batch, unsigned num_entries, } } +static uint32_t +blorp_binding_table_offset_to_pointer(struct blorp_batch *batch, + uint32_t offset) +{ + return offset; +} + static void * blorp_alloc_vertex_buffer(struct blorp_batch *batch, uint32_t size, struct blorp_address *addr)