aboutsummaryrefslogtreecommitdiffstatsci
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2022-12-23 19:20:35 +0100
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2022-12-23 19:20:35 +0100
commitb31d80d50c53a1c612dcc6405509b1c999b5f592 (patch)
tree57a1719534ff0fd15a893642c03e948e6289f0ec
parentda79f10bd1d01e751441847b3846e31497f2f206 (diff)
multisampling debug, no sample rate shading with radv?
-rw-r--r--shaders/tone_mapping.frag6
-rw-r--r--src/VkChess.cs17
-rw-r--r--src/deferredPbrRendererBase.cs2
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,