state->restart_index = UINT32_MAX;
state->dynamic = default_dynamic_state;
state->need_query_wa = true;
+ state->pma_fix_enabled = false;
+ state->hiz_enabled = false;
if (state->attachments != NULL) {
vk_free(&cmd_buffer->pool->alloc, state->attachments);
break;
}
- if (result != VK_SUCCESS)
+ if (result != VK_SUCCESS) {
anv_FreeCommandBuffers(_device, pAllocateInfo->commandPool,
i, pCommandBuffers);
+ for (i = 0; i < pAllocateInfo->commandBufferCount; i++)
+ pCommandBuffers[i] = VK_NULL_HANDLE;
+ }
return result;
}
for (uint32_t i = 0; i < commandBufferCount; i++) {
ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, pCommandBuffers[i]);
+ if (!cmd_buffer)
+ continue;
+
anv_cmd_buffer_destroy(cmd_buffer);
}
}
memcpy(state.map, data, size);
if (!cmd_buffer->device->info.has_llc)
- anv_state_clflush(state);
+ anv_state_flush(state);
VG(VALGRIND_CHECK_MEM_IS_DEFINED(state.map, size));
p[i] = a[i] | b[i];
if (!cmd_buffer->device->info.has_llc)
- anv_state_clflush(state);
+ anv_state_flush(state);
VG(VALGRIND_CHECK_MEM_IS_DEFINED(p, dwords * 4));
}
if (!cmd_buffer->device->info.has_llc)
- anv_state_clflush(state);
+ anv_state_flush(state);
return state;
}
}
if (!cmd_buffer->device->info.has_llc)
- anv_state_clflush(state);
+ anv_state_flush(state);
return state;
}
ANV_FROM_HANDLE(anv_device, device, _device);
ANV_FROM_HANDLE(anv_cmd_pool, pool, commandPool);
+ if (!pool)
+ return;
+
list_for_each_entry_safe(struct anv_cmd_buffer, cmd_buffer,
&pool->cmd_buffers, pool_link) {
anv_cmd_buffer_destroy(cmd_buffer);
return VK_SUCCESS;
}
+void anv_TrimCommandPoolKHR(
+ VkDevice device,
+ VkCommandPool commandPool,
+ VkCommandPoolTrimFlagsKHR flags)
+{
+ /* Nothing for us to do here. Our pools stay pretty tidy. */
+}
+
/**
* Return NULL if the current subpass has no depthstencil attachment.
*/