1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-20 19:54:19 +01:00

[dxvk] Add filter type to generateMipmaps

This commit is contained in:
Joshua Ashton 2020-05-27 09:08:23 +01:00 committed by Philip Rebohle
parent 3825d16a31
commit 7cd46e72e9
4 changed files with 8 additions and 5 deletions

View File

@ -1105,7 +1105,7 @@ namespace dxvk {
EmitCs([cDstImageView = view->GetImageView()]
(DxvkContext* ctx) {
ctx->generateMipmaps(cDstImageView);
ctx->generateMipmaps(cDstImageView, VK_FILTER_LINEAR);
});
}

View File

@ -4209,7 +4209,7 @@ namespace dxvk {
EmitCs([
cImageView = pResource->GetSampleView(false)
] (DxvkContext* ctx) {
ctx->generateMipmaps(cImageView);
ctx->generateMipmaps(cImageView, VK_FILTER_LINEAR);
});
}

View File

@ -1427,7 +1427,8 @@ namespace dxvk {
void DxvkContext::generateMipmaps(
const Rc<DxvkImageView>& imageView) {
const Rc<DxvkImageView>& imageView,
VkFilter filter) {
if (imageView->info().numLevels <= 1)
return;
@ -1442,7 +1443,7 @@ namespace dxvk {
// Common descriptor set properties that we use to
// bind the source image view to the fragment shader
VkDescriptorImageInfo descriptorImage;
descriptorImage.sampler = m_common->metaBlit().getSampler(VK_FILTER_LINEAR);
descriptorImage.sampler = m_common->metaBlit().getSampler(filter);
descriptorImage.imageView = VK_NULL_HANDLE;
descriptorImage.imageLayout = imageView->imageInfo().layout;

View File

@ -624,9 +624,11 @@ namespace dxvk {
* Uses blitting to generate lower mip levels from
* the top-most mip level passed to this method.
* \param [in] imageView The image to generate mips for
* \param [in] filter The filter to use for generation
*/
void generateMipmaps(
const Rc<DxvkImageView>& imageView);
const Rc<DxvkImageView>& imageView,
VkFilter filter);
/**
* \brief Initializes or invalidates an image