From 01a7457a6f498301641d7ac444b3e9887900254d Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Sat, 28 Sep 2024 00:02:17 +0200 Subject: [PATCH] [dxvk] Remove createImageView function Use the image's method instead, like we already do for buffers. --- src/d3d11/d3d11_context.cpp | 2 +- src/d3d11/d3d11_swapchain.cpp | 2 +- src/d3d11/d3d11_video.cpp | 5 ++--- src/d3d11/d3d11_view_dsv.cpp | 3 +-- src/d3d11/d3d11_view_rtv.cpp | 2 +- src/d3d11/d3d11_view_srv.cpp | 2 +- src/d3d11/d3d11_view_uav.cpp | 3 +-- src/d3d9/d3d9_common_texture.cpp | 2 +- src/d3d9/d3d9_format_helpers.cpp | 2 +- src/dxvk/dxvk_context.cpp | 2 +- src/dxvk/dxvk_device.cpp | 7 ------- src/dxvk/dxvk_device.h | 11 ----------- src/dxvk/dxvk_swapchain_blitter.cpp | 4 ++-- src/dxvk/hud/dxvk_hud_renderer.cpp | 2 +- 14 files changed, 14 insertions(+), 35 deletions(-) diff --git a/src/d3d11/d3d11_context.cpp b/src/d3d11/d3d11_context.cpp index 293d66dd713..c2f0db13033 100644 --- a/src/d3d11/d3d11_context.cpp +++ b/src/d3d11/d3d11_context.cpp @@ -526,7 +526,7 @@ namespace dxvk { DxvkImageViewCreateInfo info = imageView->info(); info.format = rawFormat; - imageView = m_device->createImageView(imageView->image(), info); + imageView = imageView->image()->createView(info); } EmitCs([ diff --git a/src/d3d11/d3d11_swapchain.cpp b/src/d3d11/d3d11_swapchain.cpp index 8fe0ee65479..2b7ce6d5e08 100644 --- a/src/d3d11/d3d11_swapchain.cpp +++ b/src/d3d11/d3d11_swapchain.cpp @@ -617,7 +617,7 @@ namespace dxvk { viewInfo.numLevels = 1; viewInfo.minLayer = 0; viewInfo.numLayers = 1; - m_swapImageView = m_device->createImageView(m_swapImage, viewInfo); + m_swapImageView = m_swapImage->createView(viewInfo); // Initialize the image so that we can use it. Clearing // to black prevents garbled output for the first frame. diff --git a/src/d3d11/d3d11_video.cpp b/src/d3d11/d3d11_video.cpp index cc46267c4f5..e538d8b5db0 100644 --- a/src/d3d11/d3d11_video.cpp +++ b/src/d3d11/d3d11_video.cpp @@ -219,7 +219,7 @@ namespace dxvk { if (viewInfo.aspect != VK_IMAGE_ASPECT_COLOR_BIT) viewInfo.format = formatFamily.Formats[i]; - m_views[i] = pDevice->GetDXVKDevice()->createImageView(dxvkImage, viewInfo); + m_views[i] = dxvkImage->createView(viewInfo); } m_isYCbCr = IsYCbCrFormat(resourceDesc.Format); @@ -314,8 +314,7 @@ namespace dxvk { throw DxvkError("Invalid view dimension"); } - m_view = pDevice->GetDXVKDevice()->createImageView( - GetCommonTexture(pResource)->GetImage(), viewInfo); + m_view = GetCommonTexture(pResource)->GetImage()->createView(viewInfo); } diff --git a/src/d3d11/d3d11_view_dsv.cpp b/src/d3d11/d3d11_view_dsv.cpp index e76d8895c28..ae42dbeb87b 100644 --- a/src/d3d11/d3d11_view_dsv.cpp +++ b/src/d3d11/d3d11_view_dsv.cpp @@ -99,8 +99,7 @@ namespace dxvk { m_info.Image.Aspects &= ~VK_IMAGE_ASPECT_STENCIL_BIT; // Create the underlying image view object - m_view = pDevice->GetDXVKDevice()->createImageView( - GetCommonTexture(pResource)->GetImage(), viewInfo); + m_view = GetCommonTexture(pResource)->GetImage()->createView(viewInfo); } diff --git a/src/d3d11/d3d11_view_rtv.cpp b/src/d3d11/d3d11_view_rtv.cpp index 471f4b41ac8..25413245948 100644 --- a/src/d3d11/d3d11_view_rtv.cpp +++ b/src/d3d11/d3d11_view_rtv.cpp @@ -110,7 +110,7 @@ namespace dxvk { m_info.Image.NumLayers = viewInfo.numLayers; // Create the underlying image view object - m_view = pDevice->GetDXVKDevice()->createImageView(texture->GetImage(), viewInfo); + m_view = texture->GetImage()->createView(viewInfo); } diff --git a/src/d3d11/d3d11_view_srv.cpp b/src/d3d11/d3d11_view_srv.cpp index 9d118bfbbf1..117cb368c5d 100644 --- a/src/d3d11/d3d11_view_srv.cpp +++ b/src/d3d11/d3d11_view_srv.cpp @@ -176,7 +176,7 @@ namespace dxvk { m_info.Image.NumLayers = viewInfo.numLayers; // Create the underlying image view object - m_imageView = pDevice->GetDXVKDevice()->createImageView(texture->GetImage(), viewInfo); + m_imageView = texture->GetImage()->createView(viewInfo); } } diff --git a/src/d3d11/d3d11_view_uav.cpp b/src/d3d11/d3d11_view_uav.cpp index b12199006ab..3464859b85c 100644 --- a/src/d3d11/d3d11_view_uav.cpp +++ b/src/d3d11/d3d11_view_uav.cpp @@ -121,8 +121,7 @@ namespace dxvk { m_info.Image.NumLevels = viewInfo.numLevels; m_info.Image.NumLayers = viewInfo.numLayers; - m_imageView = pDevice->GetDXVKDevice()->createImageView( - GetCommonTexture(pResource)->GetImage(), viewInfo); + m_imageView = GetCommonTexture(pResource)->GetImage()->createView(viewInfo); } } diff --git a/src/d3d9/d3d9_common_texture.cpp b/src/d3d9/d3d9_common_texture.cpp index 4d367327d36..04c0ba4a29e 100644 --- a/src/d3d9/d3d9_common_texture.cpp +++ b/src/d3d9/d3d9_common_texture.cpp @@ -663,7 +663,7 @@ namespace dxvk { VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY }; // Create the underlying image view object - return m_device->GetDXVKDevice()->createImageView(GetImage(), viewInfo); + return GetImage()->createView(viewInfo); } diff --git a/src/d3d9/d3d9_format_helpers.cpp b/src/d3d9/d3d9_format_helpers.cpp index dfbdd345674..4bd645cc6b6 100644 --- a/src/d3d9/d3d9_format_helpers.cpp +++ b/src/d3d9/d3d9_format_helpers.cpp @@ -85,7 +85,7 @@ namespace dxvk { imageViewInfo.numLevels = 1; imageViewInfo.minLayer = dstSubresource.baseArrayLayer; imageViewInfo.numLayers = dstSubresource.layerCount; - auto tmpImageView = m_device->createImageView(dstImage, imageViewInfo); + auto tmpImageView = dstImage->createView(imageViewInfo); VkExtent3D imageExtent = dstImage->mipLevelExtent(dstSubresource.mipLevel); imageExtent = VkExtent3D{ imageExtent.width / macroPixelRun.width, diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index 681d18b5243..44bee8661dd 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -3919,7 +3919,7 @@ namespace dxvk { if (dstImage->mipLevelExtent(dstSubresource.mipLevel) != dstExtent) return false; - auto view = m_device->createImageView(dstImage, viewInfo); + auto view = dstImage->createView(viewInfo); this->deferClear(view, srcSubresource.aspectMask, clear->clearValue); return true; } diff --git a/src/dxvk/dxvk_device.cpp b/src/dxvk/dxvk_device.cpp index 0c6ec0fd7dd..8581294c134 100644 --- a/src/dxvk/dxvk_device.cpp +++ b/src/dxvk/dxvk_device.cpp @@ -171,13 +171,6 @@ namespace dxvk { } - Rc DxvkDevice::createImageView( - const Rc& image, - const DxvkImageViewCreateInfo& createInfo) { - return image->createView(createInfo); - } - - Rc DxvkDevice::createSampler( const DxvkSamplerCreateInfo& createInfo) { return new DxvkSampler(this, createInfo); diff --git a/src/dxvk/dxvk_device.h b/src/dxvk/dxvk_device.h index 131e7f60d54..49a519725f8 100644 --- a/src/dxvk/dxvk_device.h +++ b/src/dxvk/dxvk_device.h @@ -322,17 +322,6 @@ namespace dxvk { Rc createImage( const DxvkImageCreateInfo& createInfo, VkMemoryPropertyFlags memoryType); - - /** - * \brief Creates an image view - * - * \param [in] image The image to create a view for - * \param [in] createInfo Image view create info - * \returns The image view - */ - Rc createImageView( - const Rc& image, - const DxvkImageViewCreateInfo& createInfo); /** * \brief Creates a sampler object diff --git a/src/dxvk/dxvk_swapchain_blitter.cpp b/src/dxvk/dxvk_swapchain_blitter.cpp index b08eb5dcdc9..1d131252c76 100644 --- a/src/dxvk/dxvk_swapchain_blitter.cpp +++ b/src/dxvk/dxvk_swapchain_blitter.cpp @@ -267,7 +267,7 @@ namespace dxvk { viewInfo.minLayer = 0; viewInfo.numLayers = 1; - m_gammaView = m_device->createImageView(m_gammaImage, viewInfo); + m_gammaView = m_gammaImage->createView(viewInfo); } ctx->invalidateBuffer(m_gammaBuffer, std::move(m_gammaSlice)); @@ -380,7 +380,7 @@ namespace dxvk { viewInfo.numLevels = 1; viewInfo.minLayer = 0; viewInfo.numLayers = 1; - m_resolveView = m_device->createImageView(m_resolveImage, viewInfo); + m_resolveView = m_resolveImage->createView(viewInfo); } diff --git a/src/dxvk/hud/dxvk_hud_renderer.cpp b/src/dxvk/hud/dxvk_hud_renderer.cpp index 229b752571a..d9c9a9361ab 100644 --- a/src/dxvk/hud/dxvk_hud_renderer.cpp +++ b/src/dxvk/hud/dxvk_hud_renderer.cpp @@ -316,7 +316,7 @@ namespace dxvk::hud { info.minLayer = 0; info.numLayers = 1; - return m_device->createImageView(m_fontImage, info); + return m_fontImage->createView(info); }