From 7b81db2c754ce4cfb314bd25f01ec47b1dd07920 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Mon, 4 May 2020 13:40:17 +0200 Subject: [PATCH] [dxvk] Pass device to sampler constructor --- src/dxvk/dxvk_device.cpp | 2 +- src/dxvk/dxvk_sampler.cpp | 7 ++++--- src/dxvk/dxvk_sampler.h | 4 +++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/dxvk/dxvk_device.cpp b/src/dxvk/dxvk_device.cpp index 151230d1..b1d52080 100644 --- a/src/dxvk/dxvk_device.cpp +++ b/src/dxvk/dxvk_device.cpp @@ -151,7 +151,7 @@ namespace dxvk { Rc DxvkDevice::createSampler( const DxvkSamplerCreateInfo& createInfo) { - return new DxvkSampler(m_vkd, createInfo); + return new DxvkSampler(this, createInfo); } diff --git a/src/dxvk/dxvk_sampler.cpp b/src/dxvk/dxvk_sampler.cpp index 34f913e5..99a01eab 100644 --- a/src/dxvk/dxvk_sampler.cpp +++ b/src/dxvk/dxvk_sampler.cpp @@ -1,11 +1,12 @@ #include "dxvk_sampler.h" +#include "dxvk_device.h" namespace dxvk { DxvkSampler::DxvkSampler( - const Rc& vkd, + DxvkDevice* device, const DxvkSamplerCreateInfo& info) - : m_vkd(vkd) { + : m_vkd(device->vkd()) { VkSamplerCreateInfo samplerInfo; samplerInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; samplerInfo.pNext = nullptr; @@ -30,7 +31,7 @@ namespace dxvk { || samplerInfo.addressModeV == VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER || samplerInfo.addressModeW == VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER) samplerInfo.borderColor = getBorderColor(info.compareToDepth, info.borderColor); - + if (m_vkd->vkCreateSampler(m_vkd->device(), &samplerInfo, nullptr, &m_sampler) != VK_SUCCESS) throw DxvkError("DxvkSampler::DxvkSampler: Failed to create sampler"); diff --git a/src/dxvk/dxvk_sampler.h b/src/dxvk/dxvk_sampler.h index a4574b5e..ee9f013b 100644 --- a/src/dxvk/dxvk_sampler.h +++ b/src/dxvk/dxvk_sampler.h @@ -3,6 +3,8 @@ #include "dxvk_resource.h" namespace dxvk { + + class DxvkDevice; /** * \brief Sampler properties @@ -51,7 +53,7 @@ namespace dxvk { public: DxvkSampler( - const Rc& vkd, + DxvkDevice* device, const DxvkSamplerCreateInfo& info); ~DxvkSampler();