diff options
| -rw-r--r-- | shaders/tone_mapping.frag | 6 | ||||
| -rw-r--r-- | src/VkChess.cs | 17 | ||||
| -rw-r--r-- | src/deferredPbrRendererBase.cs | 2 |
3 files changed, 12 insertions, 13 deletions
diff --git a/shaders/tone_mapping.frag b/shaders/tone_mapping.frag index 664bb91..5a858c8 100644 --- a/shaders/tone_mapping.frag +++ b/shaders/tone_mapping.frag @@ -45,14 +45,16 @@ layout (constant_id = 0) const float NEAR_PLANE = 0.1f; layout (constant_id = 1) const float FAR_PLANE = 32.0f; layout (set = 0, binding = 0) uniform sampler2D uiImage; -layout (set = 0, binding = 1) uniform sampler2D samplerHDR; +layout (set = 0, binding = 1) uniform sampler2DMS samplerHDR; layout (location = 0) in vec2 inUV; layout (location = 0) out vec4 outColor; void main() { - vec4 hdrColor = texture(samplerHDR, inUV); + //vec4 hdrColor = texture(samplerHDR, inUV); + vec4 hdrColor = texelFetch (samplerHDR, ivec2(gl_FragCoord.xy), gl_SampleID); + vec4 uiColor = texture(uiImage, inUV); outColor = tonemap(hdrColor, exposure, gamma); outColor = vec4(outColor.rgb * (1 - uiColor.a) + uiColor.rgb * uiColor.a, 1); diff --git a/src/VkChess.cs b/src/VkChess.cs index 088c418..3c8cb11 100644 --- a/src/VkChess.cs +++ b/src/VkChess.cs @@ -82,14 +82,11 @@ namespace vkChess enabled_features.samplerAnisotropy = available_features.samplerAnisotropy; enabled_features.sampleRateShading = available_features.sampleRateShading; enabled_features.geometryShader = available_features.geometryShader; - //enabled_features.tessellationShader = available_features.tessellationShader; enabled_features.textureCompressionBC = available_features.textureCompressionBC; #if PIPELINE_STATS enabled_features.pipelineStatisticsQuery = available_features.pipelineStatisticsQuery; #endif - if (!available_features.tessellationShader) - EnableTesselation = false; - enabled_features.tessellationShader = EnableTesselation; + enabled_features.tessellationShader = EnableTesselation & available_features.tessellationShader; } #if PIPELINE_STATS @@ -147,11 +144,6 @@ namespace vkChess DeferredPbrRendererBase.HDR_FORMAT = gbuffFormat; - VkSampleCountFlags maxSamples = maxSampleCount; - if (SampleCount > maxSamples) - SampleCount = maxSamples; - DeferredPbrRendererBase.NUM_SAMPLES = SampleCount; - #if DEBUG /*dbgmsg = new vke.DebugUtils.Messenger (instance, VkDebugUtilsMessageTypeFlagsEXT.PerformanceEXT | VkDebugUtilsMessageTypeFlagsEXT.ValidationEXT | VkDebugUtilsMessageTypeFlagsEXT.GeneralEXT, VkDebugUtilsMessageSeverityFlagsEXT.InfoEXT | @@ -214,6 +206,11 @@ namespace vkChess #region VKCrowWindow pipeline overrides protected override void CreateRenderPass () { + VkSampleCountFlags maxSamples = maxSampleCount; + if (SampleCount > maxSamples) + SampleCount = maxSamples; + DeferredPbrRendererBase.NUM_SAMPLES = SampleCount; + renderPass = new RenderPass (dev, swapChain.ColorFormat, DeferredPbrRendererBase.NUM_SAMPLES); } protected override void CreateAndAllocateDescriptors () { @@ -229,7 +226,7 @@ namespace vkChess using (GraphicPipelineConfig cfg = GraphicPipelineConfig.CreateDefault (VkPrimitiveTopology.TriangleList, DeferredPbrRendererBase.NUM_SAMPLES)) { if (DeferredPbrRendererBase.NUM_SAMPLES != VkSampleCountFlags.SampleCount1) { cfg.multisampleState.sampleShadingEnable = true; - cfg.multisampleState.minSampleShading = 0.5f; + cfg.multisampleState.minSampleShading = 1.0f; } dslToneMap = new DescriptorSetLayout (dev, 0, new VkDescriptorSetLayoutBinding (0, VkShaderStageFlags.Fragment, VkDescriptorType.CombinedImageSampler), diff --git a/src/deferredPbrRendererBase.cs b/src/deferredPbrRendererBase.cs index 9bfa612..6ad1b23 100644 --- a/src/deferredPbrRendererBase.cs +++ b/src/deferredPbrRendererBase.cs @@ -232,7 +232,7 @@ namespace vkChess if (NUM_SAMPLES != VkSampleCountFlags.SampleCount1) { cfg.multisampleState.sampleShadingEnable = true; - cfg.multisampleState.minSampleShading = 0.5f; + cfg.multisampleState.minSampleShading = 1.0f; } cfg.Cache = pipelineCache; cfg.Layout = new PipelineLayout (dev, |