diff --git a/deferred/deferred.cpp b/deferred/deferred.cpp index 3e00e2ff..35c5d61e 100644 --- a/deferred/deferred.cpp +++ b/deferred/deferred.cpp @@ -210,6 +210,25 @@ public: vkDestroySemaphore(device, offscreenSemaphore, nullptr); } + // Enable physical device features required for this example + virtual void getEnabledFeatures() + { + // Enable anisotropic filtering if supported + if (deviceFeatures.samplerAnisotropy) { + enabledFeatures.samplerAnisotropy = VK_TRUE; + } + // Enable texture compression + if (deviceFeatures.textureCompressionBC) { + enabledFeatures.textureCompressionBC = VK_TRUE; + } + else if (deviceFeatures.textureCompressionASTC_LDR) { + enabledFeatures.textureCompressionASTC_LDR = VK_TRUE; + } + else if (deviceFeatures.textureCompressionETC2) { + enabledFeatures.textureCompressionETC2 = VK_TRUE; + } + }; + // Create a frame buffer attachment void createAttachment( VkFormat format, @@ -407,7 +426,7 @@ public: sampler.addressModeV = sampler.addressModeU; sampler.addressModeW = sampler.addressModeU; sampler.mipLodBias = 0.0f; - sampler.maxAnisotropy = 0; + sampler.maxAnisotropy = 1.0f; sampler.minLod = 0.0f; sampler.maxLod = 1.0f; sampler.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE; diff --git a/deferredmultisampling/deferredmultisampling.cpp b/deferredmultisampling/deferredmultisampling.cpp index ee0db6a9..7b5cf169 100644 --- a/deferredmultisampling/deferredmultisampling.cpp +++ b/deferredmultisampling/deferredmultisampling.cpp @@ -214,6 +214,25 @@ public: vkDestroySemaphore(device, offscreenSemaphore, nullptr); } + // Enable physical device features required for this example + virtual void getEnabledFeatures() + { + // Enable anisotropic filtering if supported + if (deviceFeatures.samplerAnisotropy) { + enabledFeatures.samplerAnisotropy = VK_TRUE; + } + // Enable texture compression + if (deviceFeatures.textureCompressionBC) { + enabledFeatures.textureCompressionBC = VK_TRUE; + } + else if (deviceFeatures.textureCompressionASTC_LDR) { + enabledFeatures.textureCompressionASTC_LDR = VK_TRUE; + } + else if (deviceFeatures.textureCompressionETC2) { + enabledFeatures.textureCompressionETC2 = VK_TRUE; + } + }; + // Create a frame buffer attachment void createAttachment( VkFormat format, @@ -427,7 +446,7 @@ public: sampler.addressModeV = sampler.addressModeU; sampler.addressModeW = sampler.addressModeU; sampler.mipLodBias = 0.0f; - sampler.maxAnisotropy = 0; + sampler.maxAnisotropy = 1.0f; sampler.minLod = 0.0f; sampler.maxLod = 1.0f; sampler.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE; diff --git a/deferredshadows/deferredshadows.cpp b/deferredshadows/deferredshadows.cpp index 6e3a63fb..ebc77881 100644 --- a/deferredshadows/deferredshadows.cpp +++ b/deferredshadows/deferredshadows.cpp @@ -240,6 +240,20 @@ public: else { vks::tools::exitFatal("Selected GPU does not support geometry shaders!", "Feature not supported"); } + // Enable anisotropic filtering if supported + if (deviceFeatures.samplerAnisotropy) { + enabledFeatures.samplerAnisotropy = VK_TRUE; + } + // Enable texture compression + if (deviceFeatures.textureCompressionBC) { + enabledFeatures.textureCompressionBC = VK_TRUE; + } + else if (deviceFeatures.textureCompressionASTC_LDR) { + enabledFeatures.textureCompressionASTC_LDR = VK_TRUE; + } + else if (deviceFeatures.textureCompressionETC2) { + enabledFeatures.textureCompressionETC2 = VK_TRUE; + } } // Prepare a layered shadow map with each layer containing depth from a light's point of view diff --git a/indirectdraw/indirectdraw.cpp b/indirectdraw/indirectdraw.cpp index 9460e401..77bede2b 100644 --- a/indirectdraw/indirectdraw.cpp +++ b/indirectdraw/indirectdraw.cpp @@ -152,14 +152,25 @@ public: // Enable physical device features required for this example virtual void getEnabledFeatures() { - // Example uses multi draw indirect (if available) + // Example uses multi draw indirect if available if (deviceFeatures.multiDrawIndirect) { enabledFeatures.multiDrawIndirect = VK_TRUE; } - else { - std::cout << "MultiDrawIndirect not supported" << std::endl; + // Enable anisotropic filtering if supported + if (deviceFeatures.samplerAnisotropy) { + enabledFeatures.samplerAnisotropy = VK_TRUE; } - } + // Enable texture compression + if (deviceFeatures.textureCompressionBC) { + enabledFeatures.textureCompressionBC = VK_TRUE; + } + else if (deviceFeatures.textureCompressionASTC_LDR) { + enabledFeatures.textureCompressionASTC_LDR = VK_TRUE; + } + else if (deviceFeatures.textureCompressionETC2) { + enabledFeatures.textureCompressionETC2 = VK_TRUE; + } + }; void buildCommandBuffers() { diff --git a/subpasses/subpasses.cpp b/subpasses/subpasses.cpp index 8c18da94..54d2c34e 100644 --- a/subpasses/subpasses.cpp +++ b/subpasses/subpasses.cpp @@ -161,6 +161,25 @@ public: uniformBuffers.lights.destroy(); } + // Enable physical device features required for this example + virtual void getEnabledFeatures() + { + // Enable anisotropic filtering if supported + if (deviceFeatures.samplerAnisotropy) { + enabledFeatures.samplerAnisotropy = VK_TRUE; + } + // Enable texture compression + if (deviceFeatures.textureCompressionBC) { + enabledFeatures.textureCompressionBC = VK_TRUE; + } + else if (deviceFeatures.textureCompressionASTC_LDR) { + enabledFeatures.textureCompressionASTC_LDR = VK_TRUE; + } + else if (deviceFeatures.textureCompressionETC2) { + enabledFeatures.textureCompressionETC2 = VK_TRUE; + } + }; + // Create a frame buffer attachment void createAttachment(VkFormat format, VkImageUsageFlags usage, FrameBufferAttachment *attachment) {