diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 6ef6ae52fd0..2fb55334829 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -103,7 +103,10 @@ fill_state_base_addr(struct anv_cmd_buffer *cmd_buffer, sba->GeneralStateBaseAddress = (struct anv_address) { NULL, 0 }; sba->GeneralStateMOCS = mocs; - sba->GeneralStateBufferSize = 0xfffff; + sba->GeneralStateBufferSize = DIV_ROUND_UP( + device->physical->va.first_2mb.size + + device->physical->va.general_state_pool.size + + device->physical->va.low_heap.size, 4096); sba->GeneralStateBaseAddressModifyEnable = true; sba->GeneralStateBufferSizeModifyEnable = true; diff --git a/src/intel/vulkan/genX_init_state.c b/src/intel/vulkan/genX_init_state.c index 9b2fc8ca9a3..f647d4f1713 100644 --- a/src/intel/vulkan/genX_init_state.c +++ b/src/intel/vulkan/genX_init_state.c @@ -248,7 +248,10 @@ init_common_queue_state(struct anv_queue *queue, struct anv_batch *batch) uint32_t mocs = device->isl_dev.mocs.internal; anv_batch_emit(batch, GENX(STATE_BASE_ADDRESS), sba) { sba.GeneralStateBaseAddress = (struct anv_address) { NULL, 0 }; - sba.GeneralStateBufferSize = 0xfffff; + sba.GeneralStateBufferSize = DIV_ROUND_UP( + device->physical->va.first_2mb.size + + device->physical->va.general_state_pool.size + + device->physical->va.low_heap.size, 4096); sba.GeneralStateMOCS = mocs; sba.GeneralStateBaseAddressModifyEnable = true; sba.GeneralStateBufferSizeModifyEnable = true;