[Vulkan] Fix a couple validation errors

This commit is contained in:
DrChat 2018-02-19 11:18:10 -06:00
parent 103ecbab7e
commit 16cf9883ca
3 changed files with 9 additions and 5 deletions

View File

@ -147,10 +147,10 @@ VkResult xe::gpu::vulkan::BufferCache::CreateVertexDescriptorPool() {
std::vector<VkDescriptorPoolSize> pool_sizes;
pool_sizes.push_back({
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
32768,
65536,
});
vertex_descriptor_pool_ =
std::make_unique<ui::vulkan::DescriptorPool>(*device_, 32768, pool_sizes);
std::make_unique<ui::vulkan::DescriptorPool>(*device_, 65536, pool_sizes);
// 32 storage buffers available to vertex shader.
// TODO(DrChat): In the future, this could hold memexport staging data.
@ -599,6 +599,8 @@ VkDescriptorSet BufferCache::PrepareVertexSet(
// This may not be possible (with indexed vfetch).
uint32_t source_length = fetch->size * 4;
uint32_t physical_address = fetch->address << 2;
// TODO(DrChat): This needs to be put in gpu::CommandProcessor
// trace_writer_.WriteMemoryRead(physical_address, source_length);
// Upload (or get a cached copy of) the buffer.

View File

@ -689,7 +689,7 @@ bool VulkanCommandProcessor::IssueDraw(PrimitiveType primitive_type,
}
// Upload and bind all vertex buffer data.
if (!PopulateVertexBuffers(command_buffer, vertex_shader)) {
if (!PopulateVertexBuffers(command_buffer, setup_buffer, vertex_shader)) {
return false;
}
@ -810,7 +810,8 @@ bool VulkanCommandProcessor::PopulateIndexBuffer(
}
bool VulkanCommandProcessor::PopulateVertexBuffers(
VkCommandBuffer command_buffer, VulkanShader* vertex_shader) {
VkCommandBuffer command_buffer, VkCommandBuffer setup_buffer,
VulkanShader* vertex_shader) {
auto& regs = *register_file_;
#if FINE_GRAINED_DRAW_SCOPES
@ -825,7 +826,7 @@ bool VulkanCommandProcessor::PopulateVertexBuffers(
assert_true(vertex_bindings.size() <= 32);
auto descriptor_set = buffer_cache_->PrepareVertexSet(
command_buffer, current_batch_fence_, vertex_bindings);
setup_buffer, current_batch_fence_, vertex_bindings);
vkCmdBindDescriptorSets(command_buffer, VK_PIPELINE_BIND_POINT_GRAPHICS,
pipeline_cache_->pipeline_layout(), 2, 1,

View File

@ -86,6 +86,7 @@ class VulkanCommandProcessor : public CommandProcessor {
bool PopulateIndexBuffer(VkCommandBuffer command_buffer,
IndexBufferInfo* index_buffer_info);
bool PopulateVertexBuffers(VkCommandBuffer command_buffer,
VkCommandBuffer setup_buffer,
VulkanShader* vertex_shader);
bool PopulateSamplers(VkCommandBuffer command_buffer,
VkCommandBuffer setup_buffer,