mirror of https://github.com/snes9xgit/snes9x.git
Fix a couple validation issues.
This commit is contained in:
parent
2c7d5f7a4d
commit
fd3a9dba14
|
@ -230,6 +230,15 @@ vk::CommandBuffer Context::begin_cmd_buffer()
|
||||||
return one_time_use_cmd;
|
return one_time_use_cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Context::hard_barrier(vk::CommandBuffer cmd)
|
||||||
|
{
|
||||||
|
vk::MemoryBarrier barrier(vk::AccessFlagBits::eMemoryRead | vk::AccessFlagBits::eMemoryWrite,
|
||||||
|
vk::AccessFlagBits::eMemoryRead | vk::AccessFlagBits::eMemoryWrite);
|
||||||
|
cmd.pipelineBarrier(vk::PipelineStageFlagBits::eAllCommands,
|
||||||
|
vk::PipelineStageFlagBits::eAllCommands,
|
||||||
|
{}, barrier, {}, {});
|
||||||
|
}
|
||||||
|
|
||||||
void Context::end_cmd_buffer()
|
void Context::end_cmd_buffer()
|
||||||
{
|
{
|
||||||
one_time_use_cmd.end();
|
one_time_use_cmd.end();
|
||||||
|
|
|
@ -32,6 +32,7 @@ class Context
|
||||||
void wait_idle();
|
void wait_idle();
|
||||||
vk::CommandBuffer begin_cmd_buffer();
|
vk::CommandBuffer begin_cmd_buffer();
|
||||||
void end_cmd_buffer();
|
void end_cmd_buffer();
|
||||||
|
void hard_barrier(vk::CommandBuffer cmd);
|
||||||
|
|
||||||
vma::Allocator allocator;
|
vma::Allocator allocator;
|
||||||
vk::Device device;
|
vk::Device device;
|
||||||
|
|
|
@ -279,6 +279,8 @@ bool ShaderChain::load_shader_preset(std::string filename)
|
||||||
current_frame_index = 0;
|
current_frame_index = 0;
|
||||||
last_frame_index = 2;
|
last_frame_index = 2;
|
||||||
|
|
||||||
|
context->wait_idle();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -393,6 +395,8 @@ void ShaderChain::do_frame(uint8_t *data, int width, int height, int stride, vk:
|
||||||
if (!context->swapchain->begin_frame())
|
if (!context->swapchain->begin_frame())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
current_frame_index = context->swapchain->get_current_frame();
|
||||||
|
|
||||||
auto cmd = context->swapchain->get_cmd();
|
auto cmd = context->swapchain->get_cmd();
|
||||||
|
|
||||||
update_and_propagate_sizes(width, height, viewport_width, viewport_height);
|
update_and_propagate_sizes(width, height, viewport_width, viewport_height);
|
||||||
|
@ -509,7 +513,6 @@ void ShaderChain::do_frame(uint8_t *data, int width, int height, int stride, vk:
|
||||||
context->swapchain->end_frame();
|
context->swapchain->end_frame();
|
||||||
|
|
||||||
last_frame_index = current_frame_index;
|
last_frame_index = current_frame_index;
|
||||||
current_frame_index = (current_frame_index + 1) % queue_size;
|
|
||||||
frame_count++;
|
frame_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -523,7 +526,7 @@ void ShaderChain::upload_original(vk::CommandBuffer cmd, uint8_t *data, int widt
|
||||||
format,
|
format,
|
||||||
wrap_mode_from_string(pipelines[0]->shader->wrap_mode),
|
wrap_mode_from_string(pipelines[0]->shader->wrap_mode),
|
||||||
pipelines[0]->shader->filter_linear,
|
pipelines[0]->shader->filter_linear,
|
||||||
true);
|
pipelines[0]->shader->mipmap_input);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (original.size() > original_history_size)
|
if (original.size() > original_history_size)
|
||||||
|
|
|
@ -108,11 +108,11 @@ void Texture::from_buffer(vk::CommandBuffer cmd,
|
||||||
.setImage(image)
|
.setImage(image)
|
||||||
.setOldLayout(vk::ImageLayout::eUndefined)
|
.setOldLayout(vk::ImageLayout::eUndefined)
|
||||||
.setNewLayout(vk::ImageLayout::eTransferDstOptimal)
|
.setNewLayout(vk::ImageLayout::eTransferDstOptimal)
|
||||||
.setSrcAccessMask(vk::AccessFlagBits::eNone)
|
.setSrcAccessMask(vk::AccessFlagBits::eShaderRead)
|
||||||
.setDstAccessMask(vk::AccessFlagBits::eTransferWrite)
|
.setDstAccessMask(vk::AccessFlagBits::eTransferWrite)
|
||||||
.setSubresourceRange(srr(0));
|
.setSubresourceRange(srr(0));
|
||||||
|
|
||||||
cmd.pipelineBarrier(vk::PipelineStageFlagBits::eTopOfPipe,
|
cmd.pipelineBarrier(vk::PipelineStageFlagBits::eFragmentShader,
|
||||||
vk::PipelineStageFlagBits::eTransfer,
|
vk::PipelineStageFlagBits::eTransfer,
|
||||||
{}, {}, {}, barrier);
|
{}, {}, {}, barrier);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue