X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fintel%2Fvulkan%2Fanv_cmd_buffer.c;h=33687920a38e5ac1372d1492fba66f745439f330;hb=f270a0973741724d5bdddd30e4b241caa12a1c29;hp=d703d7a8335ecc10eb67c80506637964d4909d7c;hpb=75a4802060095da87283e6de8239cdb03147c8d8;p=mesa.git diff --git a/src/intel/vulkan/anv_cmd_buffer.c b/src/intel/vulkan/anv_cmd_buffer.c index d703d7a8335..33687920a38 100644 --- a/src/intel/vulkan/anv_cmd_buffer.c +++ b/src/intel/vulkan/anv_cmd_buffer.c @@ -119,6 +119,7 @@ anv_cmd_state_init(struct anv_cmd_buffer *cmd_buffer) memset(state, 0, sizeof(*state)); + state->current_pipeline = UINT32_MAX; state->restart_index = UINT32_MAX; state->gfx.dynamic = default_dynamic_state; } @@ -292,7 +293,6 @@ VkResult anv_cmd_buffer_reset(struct anv_cmd_buffer *cmd_buffer) { cmd_buffer->usage_flags = 0; - cmd_buffer->state.current_pipeline = UINT32_MAX; anv_cmd_buffer_reset_batch_bo_chain(cmd_buffer); anv_cmd_state_reset(cmd_buffer); @@ -314,24 +314,52 @@ VkResult anv_ResetCommandBuffer( return anv_cmd_buffer_reset(cmd_buffer); } +#define anv_genX_call(devinfo, func, ...) \ + switch ((devinfo)->gen) { \ + case 7: \ + if ((devinfo)->is_haswell) { \ + gen75_##func(__VA_ARGS__); \ + } else { \ + gen7_##func(__VA_ARGS__); \ + } \ + break; \ + case 8: \ + gen8_##func(__VA_ARGS__); \ + break; \ + case 9: \ + gen9_##func(__VA_ARGS__); \ + break; \ + case 10: \ + gen10_##func(__VA_ARGS__); \ + break; \ + case 11: \ + gen11_##func(__VA_ARGS__); \ + break; \ + default: \ + assert(!"Unknown hardware generation"); \ + } + void anv_cmd_buffer_emit_state_base_address(struct anv_cmd_buffer *cmd_buffer) { - switch (cmd_buffer->device->info.gen) { - case 7: - if (cmd_buffer->device->info.is_haswell) - return gen75_cmd_buffer_emit_state_base_address(cmd_buffer); - else - return gen7_cmd_buffer_emit_state_base_address(cmd_buffer); - case 8: - return gen8_cmd_buffer_emit_state_base_address(cmd_buffer); - case 9: - return gen9_cmd_buffer_emit_state_base_address(cmd_buffer); - case 10: - return gen10_cmd_buffer_emit_state_base_address(cmd_buffer); - default: - unreachable("unsupported gen\n"); - } + anv_genX_call(&cmd_buffer->device->info, + cmd_buffer_emit_state_base_address, + cmd_buffer); +} + +void +anv_cmd_buffer_mark_image_written(struct anv_cmd_buffer *cmd_buffer, + const struct anv_image *image, + VkImageAspectFlagBits aspect, + enum isl_aux_usage aux_usage, + uint32_t level, + uint32_t base_layer, + uint32_t layer_count) +{ + anv_genX_call(&cmd_buffer->device->info, + cmd_buffer_mark_image_written, + cmd_buffer, image, aspect, aux_usage, + level, base_layer, layer_count); } void anv_CmdBindPipeline( @@ -663,6 +691,12 @@ anv_push_constant_value(struct anv_push_constants *data, uint32_t param) switch (param) { case BRW_PARAM_BUILTIN_ZERO: return 0; + case BRW_PARAM_BUILTIN_BASE_WORK_GROUP_ID_X: + return data->base_work_group_id[0]; + case BRW_PARAM_BUILTIN_BASE_WORK_GROUP_ID_Y: + return data->base_work_group_id[1]; + case BRW_PARAM_BUILTIN_BASE_WORK_GROUP_ID_Z: + return data->base_work_group_id[2]; default: unreachable("Invalid param builtin"); } @@ -850,10 +884,10 @@ VkResult anv_ResetCommandPool( return VK_SUCCESS; } -void anv_TrimCommandPoolKHR( +void anv_TrimCommandPool( VkDevice device, VkCommandPool commandPool, - VkCommandPoolTrimFlagsKHR flags) + VkCommandPoolTrimFlags flags) { /* Nothing for us to do here. Our pools stay pretty tidy. */ } @@ -1001,7 +1035,7 @@ void anv_CmdPushDescriptorSetKHR( void anv_CmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer, - VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout _layout, uint32_t _set, const void* pData) @@ -1037,3 +1071,10 @@ void anv_CmdPushDescriptorSetWithTemplateKHR( anv_cmd_buffer_bind_descriptor_set(cmd_buffer, template->bind_point, layout, _set, set, NULL, NULL); } + +void anv_CmdSetDeviceMask( + VkCommandBuffer commandBuffer, + uint32_t deviceMask) +{ + /* No-op */ +}