mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-02 22:29:16 +01:00
[dxvk] Fixed potentially problematic image barriers
This commit is contained in:
parent
a1a7bb9092
commit
f53ada57f9
@ -182,14 +182,14 @@ namespace dxvk {
|
|||||||
const VkImageSubresourceRange& subresources) {
|
const VkImageSubresourceRange& subresources) {
|
||||||
this->renderPassEnd();
|
this->renderPassEnd();
|
||||||
|
|
||||||
if (image->info().layout != VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) {
|
m_barriers.accessImage(image, subresources,
|
||||||
m_barriers.accessImage(image, subresources,
|
VK_IMAGE_LAYOUT_UNDEFINED,
|
||||||
VK_IMAGE_LAYOUT_UNDEFINED, 0, 0,
|
image->info().stages,
|
||||||
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
image->info().access,
|
||||||
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
||||||
VK_ACCESS_TRANSFER_WRITE_BIT);
|
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||||
m_barriers.recordCommands(m_cmd);
|
VK_ACCESS_TRANSFER_WRITE_BIT);
|
||||||
}
|
m_barriers.recordCommands(m_cmd);
|
||||||
|
|
||||||
m_cmd->cmdClearColorImage(image->handle(),
|
m_cmd->cmdClearColorImage(image->handle(),
|
||||||
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
||||||
@ -214,14 +214,14 @@ namespace dxvk {
|
|||||||
const VkImageSubresourceRange& subresources) {
|
const VkImageSubresourceRange& subresources) {
|
||||||
this->renderPassEnd();
|
this->renderPassEnd();
|
||||||
|
|
||||||
if (image->info().layout != VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) {
|
m_barriers.accessImage(image, subresources,
|
||||||
m_barriers.accessImage(image, subresources,
|
VK_IMAGE_LAYOUT_UNDEFINED,
|
||||||
VK_IMAGE_LAYOUT_UNDEFINED, 0, 0,
|
image->info().stages,
|
||||||
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
image->info().access,
|
||||||
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
||||||
VK_ACCESS_TRANSFER_WRITE_BIT);
|
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||||
m_barriers.recordCommands(m_cmd);
|
VK_ACCESS_TRANSFER_WRITE_BIT);
|
||||||
}
|
m_barriers.recordCommands(m_cmd);
|
||||||
|
|
||||||
m_cmd->cmdClearDepthStencilImage(image->handle(),
|
m_cmd->cmdClearDepthStencilImage(image->handle(),
|
||||||
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
||||||
@ -603,7 +603,8 @@ namespace dxvk {
|
|||||||
const Rc<DxvkImage>& image,
|
const Rc<DxvkImage>& image,
|
||||||
const VkImageSubresourceRange& subresources) {
|
const VkImageSubresourceRange& subresources) {
|
||||||
m_barriers.accessImage(image, subresources,
|
m_barriers.accessImage(image, subresources,
|
||||||
VK_IMAGE_LAYOUT_UNDEFINED, 0, 0,
|
VK_IMAGE_LAYOUT_UNDEFINED,
|
||||||
|
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, 0,
|
||||||
image->info().layout,
|
image->info().layout,
|
||||||
image->info().stages,
|
image->info().stages,
|
||||||
image->info().access);
|
image->info().access);
|
||||||
@ -782,7 +783,9 @@ namespace dxvk {
|
|||||||
// area, so we might as well discard its contents
|
// area, so we might as well discard its contents
|
||||||
m_barriers.accessImage(
|
m_barriers.accessImage(
|
||||||
dstImage, dstSubresourceRange,
|
dstImage, dstSubresourceRange,
|
||||||
VK_IMAGE_LAYOUT_UNDEFINED, 0, 0,
|
VK_IMAGE_LAYOUT_UNDEFINED,
|
||||||
|
dstImage->info().stages,
|
||||||
|
dstImage->info().access,
|
||||||
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
||||||
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||||
VK_ACCESS_TRANSFER_WRITE_BIT);
|
VK_ACCESS_TRANSFER_WRITE_BIT);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user