diff options
author | Jordan Justen <[email protected]> | 2020-03-14 01:02:00 -0700 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-06-22 22:32:03 +0000 |
commit | c72832e83c6a811adc464c35285bdbb602e5f43b (patch) | |
tree | 992e688a26e6b0aa561dc2a001c16d29c2b2c0fa /src | |
parent | 8c36936832bb2af3edb5d4829e3a8d0a97812379 (diff) |
anv: Make use of devinfo has_aux_map field
Reworks:
* Use device rather than physical_device for info. (Lionel)
Signed-off-by: Jordan Justen <[email protected]>
Reviewed-by: Lionel Landwerlin <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5572>
Diffstat (limited to 'src')
-rw-r--r-- | src/intel/vulkan/anv_device.c | 6 | ||||
-rw-r--r-- | src/intel/vulkan/genX_cmd_buffer.c | 3 | ||||
-rw-r--r-- | src/intel/vulkan/genX_state.c | 20 |
3 files changed, 16 insertions, 13 deletions
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 13492e4d553..f25d89a9165 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -2902,7 +2902,7 @@ VkResult anv_CreateDevice( goto fail_surface_state_pool; } - if (device->info.gen >= 12) { + if (device->info.has_aux_map) { device->aux_map_ctx = gen_aux_map_init(device, &aux_map_allocator, &physical_device->info); if (!device->aux_map_ctx) @@ -3004,7 +3004,7 @@ VkResult anv_CreateDevice( fail_workaround_bo: anv_device_release_bo(device, device->workaround_bo); fail_surface_aux_map_pool: - if (device->info.gen >= 12) { + if (device->info.has_aux_map) { gen_aux_map_finish(device->aux_map_ctx); device->aux_map_ctx = NULL; } @@ -3076,7 +3076,7 @@ void anv_DestroyDevice( if (device->info.gen >= 10) anv_device_release_bo(device, device->hiz_clear_bo); - if (device->info.gen >= 12) { + if (device->info.has_aux_map) { gen_aux_map_finish(device->aux_map_ctx); device->aux_map_ctx = NULL; } diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 856ae2abf11..5eb05aae19e 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -1542,7 +1542,8 @@ genX(BeginCommandBuffer)( * ensured that we have the table even if this command buffer doesn't * initialize any images. */ - cmd_buffer->state.pending_pipe_bits |= ANV_PIPE_AUX_TABLE_INVALIDATE_BIT; + if (cmd_buffer->device->info.has_aux_map) + cmd_buffer->state.pending_pipe_bits |= ANV_PIPE_AUX_TABLE_INVALIDATE_BIT; /* We send an "Indirect State Pointers Disable" packet at * EndCommandBuffer, so all push contant packets are ignored during a diff --git a/src/intel/vulkan/genX_state.c b/src/intel/vulkan/genX_state.c index 316a56ab730..908c676a880 100644 --- a/src/intel/vulkan/genX_state.c +++ b/src/intel/vulkan/genX_state.c @@ -256,15 +256,17 @@ genX(init_device_state)(struct anv_device *device) #endif #if GEN_GEN == 12 - uint64_t aux_base_addr = gen_aux_map_get_base(device->aux_map_ctx); - assert(aux_base_addr % (32 * 1024) == 0); - anv_batch_emit(&batch, GENX(MI_LOAD_REGISTER_IMM), lri) { - lri.RegisterOffset = GENX(GFX_AUX_TABLE_BASE_ADDR_num); - lri.DataDWord = aux_base_addr & 0xffffffff; - } - anv_batch_emit(&batch, GENX(MI_LOAD_REGISTER_IMM), lri) { - lri.RegisterOffset = GENX(GFX_AUX_TABLE_BASE_ADDR_num) + 4; - lri.DataDWord = aux_base_addr >> 32; + if (device->info.has_aux_map) { + uint64_t aux_base_addr = gen_aux_map_get_base(device->aux_map_ctx); + assert(aux_base_addr % (32 * 1024) == 0); + anv_batch_emit(&batch, GENX(MI_LOAD_REGISTER_IMM), lri) { + lri.RegisterOffset = GENX(GFX_AUX_TABLE_BASE_ADDR_num); + lri.DataDWord = aux_base_addr & 0xffffffff; + } + anv_batch_emit(&batch, GENX(MI_LOAD_REGISTER_IMM), lri) { + lri.RegisterOffset = GENX(GFX_AUX_TABLE_BASE_ADDR_num) + 4; + lri.DataDWord = aux_base_addr >> 32; + } } #endif |