mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[dxvk] Use new vulkan helpers to create VkImageSubresourceRange structs
This commit is contained in:
parent
a97073adb9
commit
963bd66fb3
@ -643,11 +643,8 @@ namespace dxvk {
|
|||||||
// but pipeline barriers need to have all aspect bits set
|
// but pipeline barriers need to have all aspect bits set
|
||||||
auto dstFormatInfo = dstImage->formatInfo();
|
auto dstFormatInfo = dstImage->formatInfo();
|
||||||
|
|
||||||
VkImageSubresourceRange dstSubresourceRange = {
|
auto dstSubresourceRange = vk::makeSubresourceRange(dstSubresource);
|
||||||
dstFormatInfo->aspectMask,
|
dstSubresourceRange.aspectMask = dstFormatInfo->aspectMask;
|
||||||
dstSubresource.mipLevel, 1,
|
|
||||||
dstSubresource.baseArrayLayer,
|
|
||||||
dstSubresource.layerCount };
|
|
||||||
|
|
||||||
if (m_barriers.isImageDirty(dstImage, dstSubresourceRange, DxvkAccess::Write)
|
if (m_barriers.isImageDirty(dstImage, dstSubresourceRange, DxvkAccess::Write)
|
||||||
|| m_barriers.isBufferDirty(srcSlice, DxvkAccess::Read))
|
|| m_barriers.isBufferDirty(srcSlice, DxvkAccess::Read))
|
||||||
@ -809,11 +806,8 @@ namespace dxvk {
|
|||||||
// but pipeline barriers need to have all aspect bits set
|
// but pipeline barriers need to have all aspect bits set
|
||||||
auto srcFormatInfo = srcImage->formatInfo();
|
auto srcFormatInfo = srcImage->formatInfo();
|
||||||
|
|
||||||
VkImageSubresourceRange srcSubresourceRange = {
|
auto srcSubresourceRange = vk::makeSubresourceRange(srcSubresource);
|
||||||
srcFormatInfo->aspectMask,
|
srcSubresourceRange.aspectMask = srcFormatInfo->aspectMask;
|
||||||
srcSubresource.mipLevel, 1,
|
|
||||||
srcSubresource.baseArrayLayer,
|
|
||||||
srcSubresource.layerCount };
|
|
||||||
|
|
||||||
if (m_barriers.isImageDirty(srcImage, srcSubresourceRange, DxvkAccess::Write)
|
if (m_barriers.isImageDirty(srcImage, srcSubresourceRange, DxvkAccess::Write)
|
||||||
|| m_barriers.isBufferDirty(dstSlice, DxvkAccess::Write))
|
|| m_barriers.isBufferDirty(dstSlice, DxvkAccess::Write))
|
||||||
@ -1343,12 +1337,8 @@ namespace dxvk {
|
|||||||
|
|
||||||
// Prepare the image layout. If the given extent covers
|
// Prepare the image layout. If the given extent covers
|
||||||
// the entire image, we may discard its previous contents.
|
// the entire image, we may discard its previous contents.
|
||||||
VkImageSubresourceRange subresourceRange;
|
auto subresourceRange = vk::makeSubresourceRange(subresources);
|
||||||
subresourceRange.aspectMask = formatInfo->aspectMask;
|
subresourceRange.aspectMask = formatInfo->aspectMask;
|
||||||
subresourceRange.baseMipLevel = subresources.mipLevel;
|
|
||||||
subresourceRange.levelCount = 1;
|
|
||||||
subresourceRange.baseArrayLayer = subresources.baseArrayLayer;
|
|
||||||
subresourceRange.layerCount = subresources.layerCount;
|
|
||||||
|
|
||||||
if (m_barriers.isImageDirty(image, subresourceRange, DxvkAccess::Write))
|
if (m_barriers.isImageDirty(image, subresourceRange, DxvkAccess::Write))
|
||||||
m_barriers.recordCommands(m_cmd);
|
m_barriers.recordCommands(m_cmd);
|
||||||
@ -1715,17 +1705,8 @@ namespace dxvk {
|
|||||||
VkImageSubresourceLayers srcSubresource,
|
VkImageSubresourceLayers srcSubresource,
|
||||||
VkOffset3D srcOffset,
|
VkOffset3D srcOffset,
|
||||||
VkExtent3D extent) {
|
VkExtent3D extent) {
|
||||||
VkImageSubresourceRange dstSubresourceRange = {
|
auto dstSubresourceRange = vk::makeSubresourceRange(dstSubresource);
|
||||||
dstSubresource.aspectMask,
|
auto srcSubresourceRange = vk::makeSubresourceRange(srcSubresource);
|
||||||
dstSubresource.mipLevel, 1,
|
|
||||||
dstSubresource.baseArrayLayer,
|
|
||||||
dstSubresource.layerCount };
|
|
||||||
|
|
||||||
VkImageSubresourceRange srcSubresourceRange = {
|
|
||||||
srcSubresource.aspectMask,
|
|
||||||
srcSubresource.mipLevel, 1,
|
|
||||||
srcSubresource.baseArrayLayer,
|
|
||||||
srcSubresource.layerCount };
|
|
||||||
|
|
||||||
if (m_barriers.isImageDirty(dstImage, dstSubresourceRange, DxvkAccess::Write)
|
if (m_barriers.isImageDirty(dstImage, dstSubresourceRange, DxvkAccess::Write)
|
||||||
|| m_barriers.isImageDirty(srcImage, srcSubresourceRange, DxvkAccess::Write))
|
|| m_barriers.isImageDirty(srcImage, srcSubresourceRange, DxvkAccess::Write))
|
||||||
@ -1801,11 +1782,7 @@ namespace dxvk {
|
|||||||
this->unbindGraphicsPipeline();
|
this->unbindGraphicsPipeline();
|
||||||
m_barriers.recordCommands(m_cmd);
|
m_barriers.recordCommands(m_cmd);
|
||||||
|
|
||||||
VkImageSubresourceRange srcSubresourceRange = {
|
auto srcSubresourceRange = vk::makeSubresourceRange(srcSubresource);
|
||||||
srcSubresource.aspectMask,
|
|
||||||
srcSubresource.mipLevel, 1,
|
|
||||||
srcSubresource.baseArrayLayer,
|
|
||||||
srcSubresource.layerCount };
|
|
||||||
|
|
||||||
// Source image needs to be readable
|
// Source image needs to be readable
|
||||||
if (!(srcImage->info().usage & VK_IMAGE_USAGE_SAMPLED_BIT)) {
|
if (!(srcImage->info().usage & VK_IMAGE_USAGE_SAMPLED_BIT)) {
|
||||||
@ -2010,17 +1987,8 @@ namespace dxvk {
|
|||||||
const VkImageSubresourceLayers& dstSubresources,
|
const VkImageSubresourceLayers& dstSubresources,
|
||||||
const Rc<DxvkImage>& srcImage,
|
const Rc<DxvkImage>& srcImage,
|
||||||
const VkImageSubresourceLayers& srcSubresources) {
|
const VkImageSubresourceLayers& srcSubresources) {
|
||||||
VkImageSubresourceRange dstSubresourceRange = {
|
auto dstSubresourceRange = vk::makeSubresourceRange(dstSubresources);
|
||||||
dstSubresources.aspectMask,
|
auto srcSubresourceRange = vk::makeSubresourceRange(srcSubresources);
|
||||||
dstSubresources.mipLevel, 1,
|
|
||||||
dstSubresources.baseArrayLayer,
|
|
||||||
dstSubresources.layerCount };
|
|
||||||
|
|
||||||
VkImageSubresourceRange srcSubresourceRange = {
|
|
||||||
srcSubresources.aspectMask,
|
|
||||||
srcSubresources.mipLevel, 1,
|
|
||||||
srcSubresources.baseArrayLayer,
|
|
||||||
srcSubresources.layerCount };
|
|
||||||
|
|
||||||
if (m_barriers.isImageDirty(dstImage, dstSubresourceRange, DxvkAccess::Write)
|
if (m_barriers.isImageDirty(dstImage, dstSubresourceRange, DxvkAccess::Write)
|
||||||
|| m_barriers.isImageDirty(srcImage, srcSubresourceRange, DxvkAccess::Write))
|
|| m_barriers.isImageDirty(srcImage, srcSubresourceRange, DxvkAccess::Write))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user