summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/entities.cpp2
-rw-r--r--src/font.cpp4
-rw-r--r--src/window.cpp34
-rw-r--r--src/window.hpp4
4 files changed, 10 insertions, 34 deletions
diff --git a/src/entities.cpp b/src/entities.cpp
index 446e80a..5c74f3e 100644
--- a/src/entities.cpp
+++ b/src/entities.cpp
@@ -645,7 +645,7 @@ void EntityType_LoadTexture(EntityType_LoadHelperStruct &helper, const int64_t i
}
VkDescriptorImageInfo textureDescriptorInfo;
- textureDescriptorInfo.sampler = pkePipelines.vkSampler_Texture;
+ textureDescriptorInfo.sampler = global_sampler;
textureDescriptorInfo.imageView = etdHelper.etd->textureImageView;
textureDescriptorInfo.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
diff --git a/src/font.cpp b/src/font.cpp
index f65866e..3162362 100644
--- a/src/font.cpp
+++ b/src/font.cpp
@@ -149,7 +149,7 @@ FontTypeIndex FontType_RegisterFont(pk_cstr title, AssetHandle fontTextureHandle
imageCreateInfo.extent.depth = 1;
imageCreateInfo.mipLevels = 1;
imageCreateInfo.arrayLayers = 1;
- imageCreateInfo.samples = renderSampleCount;
+ imageCreateInfo.samples = global_sample_count;
imageCreateInfo.tiling = VK_IMAGE_TILING_OPTIMAL;
imageCreateInfo.usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
imageCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
@@ -547,7 +547,7 @@ FontTypeIndex FontType_RegisterFont(pk_cstr title, AssetHandle fontTextureHandle
}
VkDescriptorImageInfo textureDescriptorInfo;
- textureDescriptorInfo.sampler = pkePipelines.vkSampler_Texture;
+ textureDescriptorInfo.sampler = global_sampler;
textureDescriptorInfo.imageView = ft->textureImageView;
textureDescriptorInfo.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
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);
diff --git a/src/window.hpp b/src/window.hpp
index 34398c4..5cb346f 100644
--- a/src/window.hpp
+++ b/src/window.hpp
@@ -30,7 +30,8 @@ extern unsigned int presentFamilyIndex;
extern unsigned int transferFamilyIndex;
extern VkRenderPass presentRenderPass;
extern VkRenderPass renderRenderPass;
-extern VkSampleCountFlagBits renderSampleCount;
+extern VkSampler global_sampler;
+extern VkSampleCountFlagBits global_sample_count;
struct UniformBufferObject {
glm::mat4 model;
@@ -60,7 +61,6 @@ struct DebugHitbox {
};
extern DebugHitbox pkeDebugHitbox;
struct ImplementedPipelines {
- VkSampler vkSampler_Texture = VK_NULL_HANDLE;
union {
VkDescriptorSetLayout arr[2] = { VK_NULL_HANDLE, VK_NULL_HANDLE };
struct ImplementedPipelineLayoutsByName {