summaryrefslogtreecommitdiff
path: root/src/window.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-01-30 16:25:49 -0500
committerJonathan Bradley <jcb@pikum.xyz>2025-01-30 16:25:49 -0500
commitf6fca8225d98f79ee245596e1ff4b1b2309cdb12 (patch)
tree2acfb82b8869e59df159d3ad927e8f82d50c8820 /src/window.cpp
parenta13b4a8296a8623cb50a4ec5d23a1e39b3e019c0 (diff)
pke: consolidate duplicated vulkan sampler
Diffstat (limited to 'src/window.cpp')
-rw-r--r--src/window.cpp34
1 files changed, 5 insertions, 29 deletions
diff --git a/src/window.cpp b/src/window.cpp
index 923ff99..1c9b070 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -692,7 +692,7 @@ void InitVulkan() {
}
}
- // generic present sampler
+ // generic sampler
VkSamplerCreateInfo samplerCreateInfo;
samplerCreateInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
samplerCreateInfo.pNext = nullptr;
@@ -704,10 +704,10 @@ void InitVulkan() {
samplerCreateInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
samplerCreateInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
samplerCreateInfo.mipLodBias = 0.0f;
- samplerCreateInfo.anisotropyEnable = VK_FALSE;
+ samplerCreateInfo.anisotropyEnable = VK_TRUE;
samplerCreateInfo.maxAnisotropy = 1.0f;
- samplerCreateInfo.compareEnable = VK_FALSE;
- samplerCreateInfo.compareOp = {};
+ samplerCreateInfo.compareEnable = VK_TRUE;
+ samplerCreateInfo.compareOp = VK_COMPARE_OP_LESS;
samplerCreateInfo.minLod = 0.0f;
samplerCreateInfo.maxLod = 1.0f;
samplerCreateInfo.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE;
@@ -1650,28 +1650,6 @@ void CreateGraphicsPipelines() {
.pPushConstantRanges = nullptr,
};
vkCreatePipelineLayout(vkDevice, &vkPipelineLayoutCreateInfo, vkAllocator, pkePipelines.pipe_layouts.arr);
-
- VkSamplerCreateInfo vkSamplerCreateInfo;
- vkSamplerCreateInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
- vkSamplerCreateInfo.pNext = nullptr;
- vkSamplerCreateInfo.flags = 0;
- vkSamplerCreateInfo.magFilter = VK_FILTER_NEAREST;
- vkSamplerCreateInfo.minFilter = VK_FILTER_NEAREST;
- vkSamplerCreateInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR;
- vkSamplerCreateInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_REPEAT;
- vkSamplerCreateInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_REPEAT;
- vkSamplerCreateInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_REPEAT;
- vkSamplerCreateInfo.mipLodBias = 0.0f;
- vkSamplerCreateInfo.anisotropyEnable = VK_TRUE;
- vkSamplerCreateInfo.maxAnisotropy = vkPhysicalDeviceProperties.limits.maxSamplerAnisotropy;
- vkSamplerCreateInfo.compareEnable = VK_FALSE;
- vkSamplerCreateInfo.compareOp = VK_COMPARE_OP_ALWAYS;
- vkSamplerCreateInfo.minLod = 0.0f;
- // TODO MipMap
- vkSamplerCreateInfo.maxLod = 1;
- vkSamplerCreateInfo.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK;
- vkSamplerCreateInfo.unnormalizedCoordinates = VK_FALSE;
- vkCreateSampler(vkDevice, &vkSamplerCreateInfo, vkAllocator, &pkePipelines.vkSampler_Texture);
}
// pipelines
@@ -2363,7 +2341,7 @@ void UpdateDebugGraphicsPipeline() {
}
VkDescriptorImageInfo textureDescriptorInfo;
- textureDescriptorInfo.sampler = pkePipelines.vkSampler_Texture;
+ textureDescriptorInfo.sampler = global_sampler;
textureDescriptorInfo.imageView = pkeDebugHitbox.vkImageView;
textureDescriptorInfo.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
@@ -2846,8 +2824,6 @@ void DestroyWindow() {
vkDestroyImage(vkDevice, pkeDebugHitbox.vkImage, vkAllocator);
vkFreeMemory(vkDevice, pkeDebugHitbox.textureMemory, vkAllocator);
- if (pkePipelines.vkSampler_Texture != VK_NULL_HANDLE)
- vkDestroySampler(vkDevice, pkePipelines.vkSampler_Texture, vkAllocator);
for (long i = 0; i < 3; ++i) {
if (pkePipelines.pipelines.arr[i] != VK_NULL_HANDLE)
vkDestroyPipeline(vkDevice, pkePipelines.pipelines.arr[i], vkAllocator);