anv/cmd_buffer: Add a helper for getting the surface state base address

This commit is contained in:
Jason Ekstrand
2015-09-22 10:58:34 -07:00
parent e1a7c721d3
commit bc17f9c9d7
4 changed files with 13 additions and 2 deletions

View File

@@ -395,6 +395,15 @@ anv_cmd_buffer_current_surface_relocs(struct anv_cmd_buffer *cmd_buffer)
return &anv_cmd_buffer_current_surface_bbo(cmd_buffer)->relocs; return &anv_cmd_buffer_current_surface_bbo(cmd_buffer)->relocs;
} }
struct anv_address
anv_cmd_buffer_surface_base_address(struct anv_cmd_buffer *cmd_buffer)
{
return (struct anv_address) {
.bo = anv_cmd_buffer_current_surface_bo(cmd_buffer),
.offset = 0,
};
}
static void static void
emit_batch_buffer_start(struct anv_batch *batch, struct anv_bo *bo, uint32_t offset) emit_batch_buffer_start(struct anv_batch *batch, struct anv_bo *bo, uint32_t offset)
{ {

View File

@@ -897,6 +897,8 @@ struct anv_bo *
anv_cmd_buffer_current_surface_bo(struct anv_cmd_buffer *cmd_buffer); anv_cmd_buffer_current_surface_bo(struct anv_cmd_buffer *cmd_buffer);
struct anv_reloc_list * struct anv_reloc_list *
anv_cmd_buffer_current_surface_relocs(struct anv_cmd_buffer *cmd_buffer); anv_cmd_buffer_current_surface_relocs(struct anv_cmd_buffer *cmd_buffer);
struct anv_address
anv_cmd_buffer_surface_base_address(struct anv_cmd_buffer *cmd_buffer);
struct anv_state struct anv_state
anv_cmd_buffer_alloc_surface_state(struct anv_cmd_buffer *cmd_buffer, anv_cmd_buffer_alloc_surface_state(struct anv_cmd_buffer *cmd_buffer,
uint32_t size, uint32_t alignment); uint32_t size, uint32_t alignment);

View File

@@ -48,7 +48,7 @@ gen7_cmd_buffer_emit_state_base_address(struct anv_cmd_buffer *cmd_buffer)
.GeneralStateAccessUpperBound = { scratch_bo, scratch_bo->size }, .GeneralStateAccessUpperBound = { scratch_bo, scratch_bo->size },
.GeneralStateAccessUpperBoundModifyEnable = true, .GeneralStateAccessUpperBoundModifyEnable = true,
.SurfaceStateBaseAddress = { anv_cmd_buffer_current_surface_bo(cmd_buffer), 0 }, .SurfaceStateBaseAddress = anv_cmd_buffer_surface_base_address(cmd_buffer),
.SurfaceStateMemoryObjectControlState = GEN7_MOCS, .SurfaceStateMemoryObjectControlState = GEN7_MOCS,
.SurfaceStateBaseAddressModifyEnable = true, .SurfaceStateBaseAddressModifyEnable = true,

View File

@@ -824,7 +824,7 @@ gen8_cmd_buffer_emit_state_base_address(struct anv_cmd_buffer *cmd_buffer)
.GeneralStateBufferSize = 0xfffff, .GeneralStateBufferSize = 0xfffff,
.GeneralStateBufferSizeModifyEnable = true, .GeneralStateBufferSizeModifyEnable = true,
.SurfaceStateBaseAddress = { anv_cmd_buffer_current_surface_bo(cmd_buffer), 0 }, .SurfaceStateBaseAddress = anv_cmd_buffer_surface_base_address(cmd_buffer),
.SurfaceStateMemoryObjectControlState = GEN8_MOCS, .SurfaceStateMemoryObjectControlState = GEN8_MOCS,
.SurfaceStateBaseAddressModifyEnable = true, .SurfaceStateBaseAddressModifyEnable = true,