From 456d7f3c5d4b5620ca79de3c9b0c4500332e52ca Mon Sep 17 00:00:00 2001 From: hunterk Date: Fri, 19 Apr 2019 15:52:09 -0500 Subject: [PATCH] move mame_hlsl port into crt directory; I guess it's as good as it's gonna get right now --- .../shaders/mame => crt}/mame_hlsl.slangp | 37 ++++---- .../mame_hlsl/resources}/aperture-grille.png | Bin .../mame_hlsl/resources}/shadow-mask.png | Bin .../resources}/slot-mask-aligned.png | Bin .../mame_hlsl/resources}/slot-mask.png | Bin .../mame_hlsl/shaders}/mame_bloom.slang | 86 +++++++++--------- .../mame_hlsl/shaders}/mame_chroma.slang | 0 .../mame_hlsl/shaders}/mame_color.slang | 6 +- .../mame_hlsl/shaders}/mame_deconverge.slang | 14 +-- .../mame_hlsl/shaders}/mame_distortion.slang | 16 ++-- .../mame_hlsl/shaders}/mame_downsample.slang | 8 +- .../mame_hlsl/shaders}/mame_focus.slang | 22 ++--- .../mame_hlsl/shaders}/mame_ntsc.slang | 2 +- .../mame_hlsl/shaders}/mame_parameters.inc | 77 ++++++++-------- .../mame_hlsl/shaders}/mame_phosphor.slang | 0 .../mame_hlsl/shaders}/mame_post.slang | 0 .../mame_hlsl/shaders}/mame_scanline.slang | 36 ++++---- .../mame_hlsl/shaders}/mame_vector.slang | 0 .../shaders/mame_hlsl/shaders}/primary.slang | 0 19 files changed, 153 insertions(+), 151 deletions(-) rename {test/nonfunctional/shaders/mame => crt}/mame_hlsl.slangp (55%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/resources}/aperture-grille.png (100%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/resources}/shadow-mask.png (100%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/resources}/slot-mask-aligned.png (100%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/resources}/slot-mask.png (100%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/mame_bloom.slang (72%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/mame_chroma.slang (100%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/mame_color.slang (91%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/mame_deconverge.slang (87%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/mame_distortion.slang (95%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/mame_downsample.slang (89%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/mame_focus.slang (85%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/mame_ntsc.slang (98%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/mame_parameters.inc (78%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/mame_phosphor.slang (100%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/mame_post.slang (100%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/mame_scanline.slang (76%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/mame_vector.slang (100%) rename {test/nonfunctional/shaders/mame => crt/shaders/mame_hlsl/shaders}/primary.slang (100%) diff --git a/test/nonfunctional/shaders/mame/mame_hlsl.slangp b/crt/mame_hlsl.slangp similarity index 55% rename from test/nonfunctional/shaders/mame/mame_hlsl.slangp rename to crt/mame_hlsl.slangp index d789f75..f84eabc 100644 --- a/test/nonfunctional/shaders/mame/mame_hlsl.slangp +++ b/crt/mame_hlsl.slangp @@ -1,73 +1,76 @@ # info on how the passes come together can be found in mame/src/osd/modules/render/d3d/d3dhlsl.cpp shaders = 12 -shader0 = mame_ntsc.slang +shader0 = shaders/mame_hlsl/shaders/mame_ntsc.slang filter_linear0 = true alias0 = NTSCPass scale_type0 = source scale0 = 1.0 -shader1 = mame_color.slang +shader1 = shaders/mame_hlsl/shaders/mame_color.slang alias1 = ColorPass scale_type1 = source scale1 = 1.0 filter_linear1 = true -shader2 = ../../../../retro/shaders/sharp-bilinear.slang +shader2 = ../retro/shaders/sharp-bilinear.slang alias2 = PrescalePass scale_type2 = source filter_linear2 = true scale2 = 4.0 -shader3 = mame_deconverge.slang +shader3 = shaders/mame_hlsl/shaders/mame_deconverge.slang alias3 = DeconvergePass filter_linear3 = true scale_type3 = source scale3 = 0.5 -shader4 = mame_scanline.slang +shader4 = shaders/mame_hlsl/shaders/mame_scanline.slang alias4 = ScanlinePass filter_linear4 = true scale_type4 = source scale4 = 2.0 -shader5 = mame_focus.slang +shader5 = shaders/mame_hlsl/shaders/mame_focus.slang alias5 = FocusPass filter_linear5 = true -shader6 = mame_phosphor.slang +shader6 = shaders/mame_hlsl/shaders/mame_phosphor.slang alias6 = PhosphorPass filter_linear6 = true -shader7 = mame_post.slang +shader7 = shaders/mame_hlsl/shaders/mame_post.slang alias7 = PostPass filter_linear7 = true +scale_type7 = viewport -shader8 = mame_chroma.slang +shader8 = shaders/mame_hlsl/shaders/mame_chroma.slang alias8 = ChromaPass filter_linear8 = true -scale_type8 = source +scale_type8 = viewport -shader9 = mame_downsample.slang +shader9 = shaders/mame_hlsl/shaders/mame_downsample.slang alias9 = DownsamplePass filter_linear9 = true -shader10 = mame_bloom.slang +shader10 = shaders/mame_hlsl/shaders/mame_bloom.slang alias10 = BloomPass filter_linear10 = true mipmap_input10 = true +scale_type10 = source -shader11 = mame_distortion.slang +shader11 = shaders/mame_hlsl/shaders/mame_distortion.slang alias11 = DistortionPass filter_linear11 = true -shader12 = mame_vector.slang -alias12 = VectorPass -filter_linear12 = true +# doesn't work, so commenting +# shader12 = shaders/mame_hlsl/shaders/mame_vector.slang +# alias12 = VectorPass +# filter_linear12 = true # mame's textures are available here: https://github.com/mamedev/mame/tree/master/artwork textures = "MaskTexture" -MaskTexture = aperture-grille.png +MaskTexture = shaders/mame_hlsl/resources/aperture-grille.png parameters = "AUTO_PRESCALE;chromaa_x;chromaa_y;chromab_x;chromab_y;chromac_x;chromac_y;ygain_r;ygain_g;ygain_b" chromaa_x = "0.630" diff --git a/test/nonfunctional/shaders/mame/aperture-grille.png b/crt/shaders/mame_hlsl/resources/aperture-grille.png similarity index 100% rename from test/nonfunctional/shaders/mame/aperture-grille.png rename to crt/shaders/mame_hlsl/resources/aperture-grille.png diff --git a/test/nonfunctional/shaders/mame/shadow-mask.png b/crt/shaders/mame_hlsl/resources/shadow-mask.png similarity index 100% rename from test/nonfunctional/shaders/mame/shadow-mask.png rename to crt/shaders/mame_hlsl/resources/shadow-mask.png diff --git a/test/nonfunctional/shaders/mame/slot-mask-aligned.png b/crt/shaders/mame_hlsl/resources/slot-mask-aligned.png similarity index 100% rename from test/nonfunctional/shaders/mame/slot-mask-aligned.png rename to crt/shaders/mame_hlsl/resources/slot-mask-aligned.png diff --git a/test/nonfunctional/shaders/mame/slot-mask.png b/crt/shaders/mame_hlsl/resources/slot-mask.png similarity index 100% rename from test/nonfunctional/shaders/mame/slot-mask.png rename to crt/shaders/mame_hlsl/resources/slot-mask.png diff --git a/test/nonfunctional/shaders/mame/mame_bloom.slang b/crt/shaders/mame_hlsl/shaders/mame_bloom.slang similarity index 72% rename from test/nonfunctional/shaders/mame/mame_bloom.slang rename to crt/shaders/mame_hlsl/shaders/mame_bloom.slang index e9d5a74..353f087 100644 --- a/test/nonfunctional/shaders/mame/mame_bloom.slang +++ b/crt/shaders/mame_hlsl/shaders/mame_bloom.slang @@ -96,9 +96,9 @@ vec3 GetNoiseFactor(vec3 n, float random) { // smaller n become more noisy vec3 NoiseFactor; - NoiseFactor.x = 1.0f + random * max(0.0f, 0.25f * pow(E, -8. * n.x)); - NoiseFactor.y = 1.0f + random * max(0.0f, 0.25f * pow(E, -8. * n.y)); - NoiseFactor.z = 1.0f + random * max(0.0f, 0.25f * pow(E, -8. * n.z)); + NoiseFactor.x = 1.0 + random * max(0.0, 0.25 * pow(E, -8. * n.x)); + NoiseFactor.y = 1.0 + random * max(0.0, 0.25 * pow(E, -8. * n.y)); + NoiseFactor.z = 1.0 + random * max(0.0, 0.25 * pow(E, -8. * n.z)); return NoiseFactor; } @@ -111,36 +111,36 @@ void main() } else { - vec3 texel = textureLod(DiffuseSampler, vTexCoord, 0.0).rgb; + vec3 texel = texture(DiffuseSampler, vTexCoord).rgb; - vec3 texelA = textureLod(BloomSamplerA, BloomCoord.xy, 1.0).rgb; - vec3 texelB = textureLod(BloomSamplerB, BloomCoord.xy, 2.0).rgb; - vec3 texelC = textureLod(BloomSamplerC, BloomCoord.xy, 3.0).rgb; - vec3 texelD = textureLod(BloomSamplerD, BloomCoord.xy, 4.0).rgb; - vec3 texelE = textureLod(BloomSamplerE, BloomCoord.xy, 5.0).rgb; - vec3 texelF = textureLod(BloomSamplerF, BloomCoord.xy, 6.0).rgb; - vec3 texelG = textureLod(BloomSamplerG, BloomCoord.xy, 7.0).rgb; - vec3 texelH = textureLod(BloomSamplerH, BloomCoord.xy, 8.0).rgb; + vec3 texelA = texture(BloomSamplerA, BloomCoord.xy).rgb; + vec3 texelB = texture(BloomSamplerB, BloomCoord.xy).rgb; + vec3 texelC = texture(BloomSamplerC, BloomCoord.xy).rgb; + vec3 texelD = texture(BloomSamplerD, BloomCoord.xy).rgb; + vec3 texelE = texture(BloomSamplerE, BloomCoord.xy).rgb; + vec3 texelF = texture(BloomSamplerF, BloomCoord.xy).rgb; + vec3 texelG = texture(BloomSamplerG, BloomCoord.xy).rgb; + vec3 texelH = texture(BloomSamplerH, BloomCoord.xy).rgb; - vec3 texelI = vec3(0.0f, 0.0f, 0.0f); - vec3 texelJ = vec3(0.0f, 0.0f, 0.0f); - vec3 texelK = vec3(0.0f, 0.0f, 0.0f); - vec3 texelL = vec3(0.0f, 0.0f, 0.0f); - vec3 texelM = vec3(0.0f, 0.0f, 0.0f); - vec3 texelN = vec3(0.0f, 0.0f, 0.0f); - vec3 texelO = vec3(0.0f, 0.0f, 0.0f); + vec3 texelI = vec3(0.0, 0.0, 0.0); + vec3 texelJ = vec3(0.0, 0.0, 0.0); + vec3 texelK = vec3(0.0, 0.0, 0.0); + vec3 texelL = vec3(0.0, 0.0, 0.0); + vec3 texelM = vec3(0.0, 0.0, 0.0); + vec3 texelN = vec3(0.0, 0.0, 0.0); + vec3 texelO = vec3(0.0, 0.0, 0.0); // vector screen uses twice -1 as many bloom levels if (VectorScreen) { - texelI = textureLod(BloomSamplerI, BloomCoord.xy, 1.0).rgb; - texelJ = textureLod(BloomSamplerJ, BloomCoord.xy, 1.0).rgb; - texelK = textureLod(BloomSamplerK, BloomCoord.xy, 1.0).rgb; - texelL = textureLod(BloomSamplerL, BloomCoord.xy, 1.0).rgb; - texelM = textureLod(BloomSamplerM, BloomCoord.xy, 1.0).rgb; - texelN = textureLod(BloomSamplerN, BloomCoord.xy, 1.0).rgb; - texelO = textureLod(BloomSamplerO, BloomCoord.xy, 1.0).rgb; + texelI = texture(BloomSamplerI, BloomCoord.xy).rgb; + texelJ = texture(BloomSamplerJ, BloomCoord.xy).rgb; + texelK = texture(BloomSamplerK, BloomCoord.xy).rgb; + texelL = texture(BloomSamplerL, BloomCoord.xy).rgb; + texelM = texture(BloomSamplerM, BloomCoord.xy).rgb; + texelN = texture(BloomSamplerN, BloomCoord.xy).rgb; + texelO = texture(BloomSamplerO, BloomCoord.xy).rgb; } vec3 blend; @@ -148,7 +148,7 @@ void main() // brighten if (BloomBlendMode < 0.5) { - vec3 bloom = vec3(0.0f, 0.0f, 0.0f); + vec3 bloom = vec3(0.0, 0.0, 0.0); texel *= Level0Weight; @@ -167,35 +167,35 @@ void main() else { bloom += texelA * (Level1Weight); - bloom += texelB * (Level1Weight + Level2Weight) * 0.5f; + bloom += texelB * (Level1Weight + Level2Weight) * 0.5; bloom += texelC * (Level2Weight); - bloom += texelD * (Level2Weight + Level3Weight) * 0.5f; + bloom += texelD * (Level2Weight + Level3Weight) * 0.5; bloom += texelE * (Level3Weight); - bloom += texelF * (Level3Weight + Level4Weight) * 0.5f; + bloom += texelF * (Level3Weight + Level4Weight) * 0.5; bloom += texelG * (Level4Weight); - bloom += texelH * (Level4Weight + Level5Weight) * 0.5f; + bloom += texelH * (Level4Weight + Level5Weight) * 0.5; bloom += texelI * (Level5Weight); - bloom += texelJ * (Level5Weight + Level6Weight) * 0.5f; + bloom += texelJ * (Level5Weight + Level6Weight) * 0.5; bloom += texelK * (Level6Weight); - bloom += texelL * (Level6Weight + Level7Weight) * 0.5f; + bloom += texelL * (Level6Weight + Level7Weight) * 0.5; bloom += texelM * (Level7Weight); - bloom += texelN * (Level7Weight + Level8Weight) * 0.5f; + bloom += texelN * (Level7Weight + Level8Weight) * 0.5; bloom += texelO * (Level8Weight); } bloom *= BloomScale; vec3 bloomOverdrive; - bloomOverdrive.r = max(0.0f, texel.r + bloom.r - 1.0f) * BloomOverdrive.r; - bloomOverdrive.g = max(0.0f, texel.g + bloom.g - 1.0f) * BloomOverdrive.g; - bloomOverdrive.b = max(0.0f, texel.b + bloom.b - 1.0f) * BloomOverdrive.b; + bloomOverdrive.r = max(0.0, texel.r + bloom.r - 1.0) * BloomOverdrive.r; + bloomOverdrive.g = max(0.0, texel.g + bloom.g - 1.0) * BloomOverdrive.g; + bloomOverdrive.b = max(0.0, texel.b + bloom.b - 1.0) * BloomOverdrive.b; - bloom.r += bloomOverdrive.g * 0.5f; - bloom.r += bloomOverdrive.b * 0.5f; - bloom.g += bloomOverdrive.r * 0.5f; - bloom.g += bloomOverdrive.b * 0.5f; - bloom.b += bloomOverdrive.r * 0.5f; - bloom.b += bloomOverdrive.g * 0.5f; + bloom.r += bloomOverdrive.g * 0.5; + bloom.r += bloomOverdrive.b * 0.5; + bloom.g += bloomOverdrive.r * 0.5; + bloom.g += bloomOverdrive.b * 0.5; + bloom.b += bloomOverdrive.r * 0.5; + bloom.b += bloomOverdrive.g * 0.5; vec2 NoiseCoord = vTexCoord; vec3 NoiseFactor = GetNoiseFactor(bloom, random(NoiseCoord)); diff --git a/test/nonfunctional/shaders/mame/mame_chroma.slang b/crt/shaders/mame_hlsl/shaders/mame_chroma.slang similarity index 100% rename from test/nonfunctional/shaders/mame/mame_chroma.slang rename to crt/shaders/mame_hlsl/shaders/mame_chroma.slang diff --git a/test/nonfunctional/shaders/mame/mame_color.slang b/crt/shaders/mame_hlsl/shaders/mame_color.slang similarity index 91% rename from test/nonfunctional/shaders/mame/mame_color.slang rename to crt/shaders/mame_hlsl/shaders/mame_color.slang index 3a50e9d..31263dc 100644 --- a/test/nonfunctional/shaders/mame/mame_color.slang +++ b/crt/shaders/mame_hlsl/shaders/mame_color.slang @@ -34,9 +34,9 @@ layout(set = 0, binding = 2) uniform sampler2D Source; #define DiffuseSampler Source -vec3 RedRatios = vec3(global.col_red, 0.0f, 0.0f); -vec3 GrnRatios = vec3(0.0f, global.col_grn, 0.0f); -vec3 BluRatios = vec3(0.0f, 0.0f, global.col_blu); +vec3 RedRatios = vec3(global.col_red, 0.0, 0.0); +vec3 GrnRatios = vec3(0.0, global.col_grn, 0.0); +vec3 BluRatios = vec3(0.0, 0.0, global.col_blu); vec3 Offset = vec3(global.col_offset_x, global.col_offset_y, global.col_offset_z); vec3 Scale = vec3(global.col_scale_x, global.col_scale_y, global.col_scale_z); float Saturation = global.col_saturation; diff --git a/test/nonfunctional/shaders/mame/mame_deconverge.slang b/crt/shaders/mame_hlsl/shaders/mame_deconverge.slang similarity index 87% rename from test/nonfunctional/shaders/mame/mame_deconverge.slang rename to crt/shaders/mame_hlsl/shaders/mame_deconverge.slang index e3a3905..b9c44f1 100644 --- a/test/nonfunctional/shaders/mame/mame_deconverge.slang +++ b/crt/shaders/mame_hlsl/shaders/mame_deconverge.slang @@ -33,25 +33,25 @@ void main() gl_Position = global.MVP * Position; // imaginary texel dimensions independed from screen dimension, but ratio - vec2 TexelDims = vec2(1.0f / 1024.); + vec2 TexelDims = vec2(1.0 / 1024.); TexCoordX = TexCoord.xxx; TexCoordY = TexCoord.yyy; // center coordinates - TexCoordX -= 0.5f; - TexCoordY -= 0.5f; + TexCoordX -= 0.5; + TexCoordY -= 0.5; // radial converge offset to "translate" the most outer pixel as thay would be translated by the linar converge with the same amount vec2 radialConvergeOffset = vec2(2.0); // radial converge - TexCoordX *= 1.0f + RadialConvergeX * TexelDims.xxx * radialConvergeOffset.xxx; - TexCoordY *= 1.0f + RadialConvergeY * TexelDims.yyy * radialConvergeOffset.yyy; + TexCoordX *= 1.0 + RadialConvergeX * TexelDims.xxx * radialConvergeOffset.xxx; + TexCoordY *= 1.0 + RadialConvergeY * TexelDims.yyy * radialConvergeOffset.yyy; // un-center coordinates - TexCoordX += 0.5f; - TexCoordY += 0.5f; + TexCoordX += 0.5; + TexCoordY += 0.5; // linear converge TexCoordX += ConvergeX * TexelDims.xxx; diff --git a/test/nonfunctional/shaders/mame/mame_distortion.slang b/crt/shaders/mame_hlsl/shaders/mame_distortion.slang similarity index 95% rename from test/nonfunctional/shaders/mame/mame_distortion.slang rename to crt/shaders/mame_hlsl/shaders/mame_distortion.slang index 9f02b69..f210b9e 100644 --- a/test/nonfunctional/shaders/mame/mame_distortion.slang +++ b/crt/shaders/mame_hlsl/shaders/mame_distortion.slang @@ -25,11 +25,11 @@ const int ScreenCount = 1; // Constants //----------------------------------------------------------------------------- -const float Epsilon = 1.0e-7f; -const float PI = 3.1415927f; -const float E = 2.7182817f; -const float Gelfond = 23.140692f; // e^pi (Gelfond constant) -const float GelfondSchneider = 2.6651442f; // 2^sqrt(2) (Gelfond-Schneider constant) +const float Epsilon = 1.0e-7; +const float PI = 3.1415927; +const float E = 2.7182817; +const float Gelfond = 23.140692; // e^pi (Gelfond constant) +const float GelfondSchneider = 2.6651442; // 2^sqrt(2) (Gelfond-Schneider constant) //----------------------------------------------------------------------------- // Functions @@ -41,20 +41,20 @@ float random(vec2 seed) // irrationals for pseudo randomness vec2 i = vec2(Gelfond, GelfondSchneider); - return fract(cos(dot(seed, i)) * 123456.0f); + return fract(cos(dot(seed, i)) * 123456.0); } // www.dinodini.wordpress.com/2010/04/05/normalized-tunable-sigmoid-functions/ float normalizedSigmoid(float n, float k) { // valid for n and k in range of -1.0 and 1.0 - return (n - n * k) / (k - abs(n) * 2.0f * k + 1); + return (n - n * k) / (k - abs(n) * 2.0 * k + 1); } // www.iquilezles.org/www/articles/distfunctions/distfunctions.htm float roundBox(vec2 p, vec2 b, float r) { - return length(max(abs(p) - b + r, 0.0f)) - r; + return length(max(abs(p) - b + r, 0.0)) - r; } #pragma stage vertex diff --git a/test/nonfunctional/shaders/mame/mame_downsample.slang b/crt/shaders/mame_hlsl/shaders/mame_downsample.slang similarity index 89% rename from test/nonfunctional/shaders/mame/mame_downsample.slang rename to crt/shaders/mame_hlsl/shaders/mame_downsample.slang index 61db9b9..a6d22d1 100644 --- a/test/nonfunctional/shaders/mame/mame_downsample.slang +++ b/crt/shaders/mame_hlsl/shaders/mame_downsample.slang @@ -25,10 +25,10 @@ layout(location = 1) in vec2 TexCoord; layout(location = 0) out vec4 TexCoord01; layout(location = 1) out vec4 TexCoord23; -const vec2 Coord0Offset = vec2(-0.5f, -0.5f); -const vec2 Coord1Offset = vec2( 0.5f, -0.5f); -const vec2 Coord2Offset = vec2(-0.5f, 0.5f); -const vec2 Coord3Offset = vec2( 0.5f, 0.5f); +const vec2 Coord0Offset = vec2(-0.5, -0.5); +const vec2 Coord1Offset = vec2( 0.5, -0.5); +const vec2 Coord2Offset = vec2(-0.5, 0.5); +const vec2 Coord3Offset = vec2( 0.5, 0.5); void main() { diff --git a/test/nonfunctional/shaders/mame/mame_focus.slang b/crt/shaders/mame_hlsl/shaders/mame_focus.slang similarity index 85% rename from test/nonfunctional/shaders/mame/mame_focus.slang rename to crt/shaders/mame_hlsl/shaders/mame_focus.slang index d1ac42a..846673b 100644 --- a/test/nonfunctional/shaders/mame/mame_focus.slang +++ b/crt/shaders/mame_hlsl/shaders/mame_focus.slang @@ -41,30 +41,30 @@ vec2 Defocus = vec2(global.defocus_x, global.defocus_y); const vec2 CoordOffset8[8] = vec2[8]( // 0.075x² + 0.225x + 0.25 - vec2(-1.60f, 0.25f), - vec2(-1.00f, -0.55f), - vec2(-0.55f, 1.00f), - vec2(-0.25f, -1.60f), - vec2( 0.25f, 1.60f), - vec2( 0.55f, -1.00f), - vec2( 1.00f, 0.55f), - vec2( 1.60f, -0.25f) + vec2(-1.60, 0.25), + vec2(-1.00, -0.55), + vec2(-0.55, 1.00), + vec2(-0.25, -1.60), + vec2( 0.25, 1.60), + vec2( 0.55, -1.00), + vec2( 1.00, 0.55), + vec2( 1.60, -0.25) ); void main() { // imaginary texel dimensions independed from source and target dimension - vec2 TexelDims = vec2(1.0f / 1024.0f); + vec2 TexelDims = vec2(1.0 / 1024.0); vec2 DefocusTexelDims = Defocus * TexelDims; vec3 texel = texture(DiffuseSampler, vTexCoord).rgb; - float samples = 1.0f; + float samples = 1.0; for (int i = 0; i < 8; i++) { texel += texture(DiffuseSampler, vTexCoord + CoordOffset8[i] * DefocusTexelDims).rgb; - samples += 1.0f; + samples += 1.0; } FragColor = vec4(texel / samples, 1.0); diff --git a/test/nonfunctional/shaders/mame/mame_ntsc.slang b/crt/shaders/mame_hlsl/shaders/mame_ntsc.slang similarity index 98% rename from test/nonfunctional/shaders/mame/mame_ntsc.slang rename to crt/shaders/mame_hlsl/shaders/mame_ntsc.slang index dc1733d..8a1b3b2 100644 --- a/test/nonfunctional/shaders/mame/mame_ntsc.slang +++ b/crt/shaders/mame_hlsl/shaders/mame_ntsc.slang @@ -68,7 +68,7 @@ float YFreqResponse = global.yfreqresponse; float IFreqResponse = global.ifreqresponse; float QFreqResponse = global.qfreqresponse; -float SignalOffset = global.signaloffset; +float SignalOffset = (global.signaloffset != 0.0) ? float(mod(params.FrameCount, 119)) : global.signaloffset; vec4 GetCompositeYIQ(vec2 coord) { diff --git a/test/nonfunctional/shaders/mame/mame_parameters.inc b/crt/shaders/mame_hlsl/shaders/mame_parameters.inc similarity index 78% rename from test/nonfunctional/shaders/mame/mame_parameters.inc rename to crt/shaders/mame_hlsl/shaders/mame_parameters.inc index a38df12..df0b909 100644 --- a/test/nonfunctional/shaders/mame/mame_parameters.inc +++ b/crt/shaders/mame_hlsl/shaders/mame_parameters.inc @@ -163,13 +163,12 @@ vec2 ScreenOffset = vec2(global.screenoffset_x, global.screenoffset_y); bool SwapXY = bool(global.swapxy); // Bloom Pass -#pragma parameter bloomtoggle "Bloom Enable" 0.0 0.0 1.0 1.0 #pragma parameter bloomblendmode "Bloom Blend Mode" 0.0 0.0 1.0 1.0 -#pragma parameter bloomscale "Bloom Scale" 0.06 0.0 1.0 0.01 -#pragma parameter bloomoverdrive_r "Bloom Overdrive R" 1.0 0.0 1.0 0.01 -#pragma parameter bloomoverdrive_g "Bloom Overdrive G" 1.0 0.0 1.0 0.01 -#pragma parameter bloomoverdrive_b "Bloom Overdrive B" 1.0 0.0 1.0 0.01 -#pragma parameter level0weight "Bloom Level 0 Weight" 1.0 0.0 1.0 0.01 +#pragma parameter bloomscale "Bloom Scale" 0.33 0.0 1.0 0.01 +#pragma parameter bloomoverdrive_r "Bloom Overdrive R" 1.0 0.0 2.0 0.01 +#pragma parameter bloomoverdrive_g "Bloom Overdrive G" 1.0 0.0 2.0 0.01 +#pragma parameter bloomoverdrive_b "Bloom Overdrive B" 1.0 0.0 2.0 0.01 +#pragma parameter level0weight "Bloom Level 0 Weight" 0.64 0.0 1.0 0.01 #pragma parameter level1weight "Bloom Level 1 Weight" 0.64 0.0 1.0 0.01 #pragma parameter level2weight "Bloom Level 2 Weight" 0.32 0.0 1.0 0.01 #pragma parameter level3weight "Bloom Level 3 Weight" 0.16 0.0 1.0 0.01 @@ -207,43 +206,43 @@ bool SwapXY = bool(global.swapxy); #pragma parameter preparebloom "Prepare Bloom" 0.0 0.0 1.0 1.0 // NTSC Pass -#pragma parameter avalue "A Value" 0.5 0.0 1.0 0.01 -#pragma parameter bvalue "B Value" 0.5 0.0 1.0 0.01 -#pragma parameter ccvalue "CC Value" 3.5795454 0.0 5.0 0.1 -#pragma parameter ovalue "O Value" 0.0 -2.0 2.0 0.1 -#pragma parameter pvalue "P Value" 1.0 -2.0 3.0 0.1 -#pragma parameter scantime "Scan Time" 52.6 0.0 100.0 1.0 -#pragma parameter notchhalfwidth "Notch Half Width" 1.0 0.0 5.0 0.5 -#pragma parameter yfreqresponse "Y Freq Response" 6.0 0.0 10.0 0.1 -#pragma parameter ifreqresponse "I Freq Response" 1.2 0.0 10.0 0.1 -#pragma parameter qfreqresponse "Q Freq Response" 0.6 0.0 10.0 0.1 -#pragma parameter signaloffset "Signal Offset" 0.0 -5.0 5.0 0.01 +#pragma parameter avalue "A Value" 0.5 -1.0 1.0 0.01 +#pragma parameter bvalue "B Value" 0.5 -1.0 1.0 0.01 +#pragma parameter ccvalue "CC Value" 3.5795454 0.0 6.0 0.0005 +#pragma parameter ovalue "O Value" 0.0 -3.0 3.0 0.1 +#pragma parameter pvalue "P Value" 1.0 -3.0 3.0 0.1 +#pragma parameter scantime "Scan Time" 52.6 0.0 100.0 0.1 +#pragma parameter notchhalfwidth "Notch Half Width" 1.0 0.0 6.0 0.05 +#pragma parameter yfreqresponse "Y Freq Response" 6.0 0.0 6.0 0.05 +#pragma parameter ifreqresponse "I Freq Response" 1.2 0.0 6.0 0.05 +#pragma parameter qfreqresponse "Q Freq Response" 0.6 0.0 6.0 0.05 +#pragma parameter signaloffset "Signal Offset" 1.0 0.0 1.0 0.01 // Color Pass -#pragma parameter col_red "Red Shift" 1.0 0.0 1.0 0.01 -#pragma parameter col_grn "Green Shift" 1.0 0.0 1.0 0.01 -#pragma parameter col_blu "Blue Shift" 1.0 0.0 1.0 0.01 -#pragma parameter col_offset_x "Offset X" 0.0 0.0 1.0 0.01 -#pragma parameter col_offset_y "Offset Y" 0.0 0.0 1.0 0.01 -#pragma parameter col_offset_z "Offset Z" 0.0 0.0 1.0 0.01 -#pragma parameter col_scale_x "Scale X" 1.0 0.0 1.0 0.01 -#pragma parameter col_scale_y "Scale Y" 1.0 0.0 1.0 0.01 -#pragma parameter col_scale_z "Scale Z" 1.0 0.0 1.0 0.01 -#pragma parameter col_saturation "Saturation" 1.0 0.0 0.01 +#pragma parameter col_red "Red Shift" 1.0 0.0 2.0 0.01 +#pragma parameter col_grn "Green Shift" 1.0 0.0 2.0 0.01 +#pragma parameter col_blu "Blue Shift" 1.0 0.0 2.0 0.01 +#pragma parameter col_offset_x "Offset X" 0.0 -1.0 1.0 0.01 +#pragma parameter col_offset_y "Offset Y" 0.0 -1.0 1.0 0.01 +#pragma parameter col_offset_z "Offset Z" 0.0 -1.0 1.0 0.01 +#pragma parameter col_scale_x "Scale X" 1.0 0.0 2.0 0.01 +#pragma parameter col_scale_y "Scale Y" 1.0 0.0 2.0 0.01 +#pragma parameter col_scale_z "Scale Z" 1.0 0.0 2.0 0.01 +#pragma parameter col_saturation "Saturation" 1.0 0.0 5.0 0.01 // Deconverge Pass -#pragma parameter converge_x_r "Convergence X Red" 0.0 -100.0 100.0 0.5 -#pragma parameter converge_x_g "Convergence X Green" 0.0 -100.0 100.0 0.5 -#pragma parameter converge_x_b "Convergence X Blue" 0.0 -100.0 100.0 0.5 -#pragma parameter converge_y_r "Convergence Y Red" 0.0 -100.0 100.0 0.5 -#pragma parameter converge_y_g "Convergence Y Green" 0.0 -100.0 100.0 0.5 -#pragma parameter converge_y_b "Convergence Y Blue" 0.0 -100.0 100.0 0.5 -#pragma parameter radial_conv_x_r "Radial Conv X Red" 0.0 -100.0 100.0 0.5 -#pragma parameter radial_conv_x_g "Radial Conv X Green" 0.0 -100.0 100.0 0.5 -#pragma parameter radial_conv_x_b "Radial Conv X Blue" 0.0 -100.0 100.0 0.5 -#pragma parameter radial_conv_y_r "Radial Conv Y Red" 0.0 -100.0 100.0 0.5 -#pragma parameter radial_conv_y_g "Radial Conv Y Green" 0.0 -100.0 100.0 0.5 -#pragma parameter radial_conv_y_b "Radial Conv Y Blue" 0.0 -100.0 100.0 0.5 +#pragma parameter converge_x_r "Convergence X Red" 0.0 -10.0 10.0 0.05 +#pragma parameter converge_x_g "Convergence X Green" 0.0 -10.0 10.0 0.05 +#pragma parameter converge_x_b "Convergence X Blue" 0.0 -10.0 10.0 0.05 +#pragma parameter converge_y_r "Convergence Y Red" 0.0 -10.0 10.0 0.05 +#pragma parameter converge_y_g "Convergence Y Green" 0.0 -10.0 10.0 0.05 +#pragma parameter converge_y_b "Convergence Y Blue" 0.0 -10.0 10.0 0.05 +#pragma parameter radial_conv_x_r "Radial Conv X Red" 0.0 -10.0 10.0 0.05 +#pragma parameter radial_conv_x_g "Radial Conv X Green" 0.0 -10.0 10.0 0.05 +#pragma parameter radial_conv_x_b "Radial Conv X Blue" 0.0 -10.0 10.0 0.05 +#pragma parameter radial_conv_y_r "Radial Conv Y Red" 0.0 -10.0 10.0 0.05 +#pragma parameter radial_conv_y_g "Radial Conv Y Green" 0.0 -10.0 10.0 0.05 +#pragma parameter radial_conv_y_b "Radial Conv Y Blue" 0.0 -10.0 10.0 0.05 // Scanline Pass #pragma parameter scanlinealpha "Scanline Alpha" 0.5 0.0 1.0 0.01 diff --git a/test/nonfunctional/shaders/mame/mame_phosphor.slang b/crt/shaders/mame_hlsl/shaders/mame_phosphor.slang similarity index 100% rename from test/nonfunctional/shaders/mame/mame_phosphor.slang rename to crt/shaders/mame_hlsl/shaders/mame_phosphor.slang diff --git a/test/nonfunctional/shaders/mame/mame_post.slang b/crt/shaders/mame_hlsl/shaders/mame_post.slang similarity index 100% rename from test/nonfunctional/shaders/mame/mame_post.slang rename to crt/shaders/mame_hlsl/shaders/mame_post.slang diff --git a/test/nonfunctional/shaders/mame/mame_scanline.slang b/crt/shaders/mame_hlsl/shaders/mame_scanline.slang similarity index 76% rename from test/nonfunctional/shaders/mame/mame_scanline.slang rename to crt/shaders/mame_hlsl/shaders/mame_scanline.slang index f4fceba..2ea7ca6 100644 --- a/test/nonfunctional/shaders/mame/mame_scanline.slang +++ b/crt/shaders/mame_hlsl/shaders/mame_scanline.slang @@ -21,8 +21,8 @@ layout(push_constant) uniform Push // Constants //----------------------------------------------------------------------------- -const float PI = 3.1415927f; -const float HalfPI = PI * 0.5f; +const float PI = 3.1415927; +const float HalfPI = PI * 0.5; //----------------------------------------------------------------------------- // Scanline Pixel Shader @@ -42,13 +42,13 @@ vec2 SourceDims = params.OriginalSize.xy; vec2 GetAdjustedCoords(vec2 coord) { // center coordinates - coord -= 0.5f; + coord -= 0.5; // apply screen scale coord *= ScreenScale; // un-center coordinates - coord += 0.5f; + coord += 0.5; // apply screen offset coord += ScreenOffset; @@ -87,38 +87,38 @@ void main() // Color vec4 BaseColor = texture(DiffuseSampler, BaseCoord); - BaseColor.a = 1.0f; + BaseColor.a = 1.0; /* // clip border - if (BaseCoord.x < 0.0f || BaseCoord.y < 0.0f || - BaseCoord.x > 1.0f || BaseCoord.y > 1.0f) + if (BaseCoord.x < 0.0 || BaseCoord.y < 0.0 || + BaseCoord.x > 1.0 || BaseCoord.y > 1.0) { // we don't use the clip function, because we don't clear the render target before - return vec4(0.0f, 0.0f, 0.0f, 1.0f); + return vec4(0.0, 0.0, 0.0, 1.0); } */ float BrightnessOffset = (ScanlineBrightOffset * ScanlineAlpha); - float BrightnessScale = (ScanlineBrightScale * ScanlineAlpha) + (1.0f - ScanlineAlpha); + float BrightnessScale = (ScanlineBrightScale * ScanlineAlpha) + (1.0 - ScanlineAlpha); - float ColorBrightness = 0.299f * BaseColor.r + 0.587f * BaseColor.g + 0.114 * BaseColor.b; + float ColorBrightness = 0.299 * BaseColor.r + 0.587 * BaseColor.g + 0.114 * BaseColor.b; float ScanlineCoord = BaseCoord.y; ScanlineCoord += (SwapXY) - ? QuadDims.x <= SourceDims.x * 2.0f - ? 0.5f / QuadDims.x // uncenter scanlines if the quad is less than twice the size of the source - : 0.0f - : QuadDims.y <= SourceDims.y * 2.0f - ? 0.5f / QuadDims.y // uncenter scanlines if the quad is less than twice the size of the source - : 0.0f; + ? QuadDims.x <= SourceDims.x * 2.0 + ? 0.5 / QuadDims.x // uncenter scanlines if the quad is less than twice the size of the source + : 0.0 + : QuadDims.y <= SourceDims.y * 2.0 + ? 0.5 / QuadDims.y // uncenter scanlines if the quad is less than twice the size of the source + : 0.0; ScanlineCoord *= SourceDims.y * ScanlineScale * PI; float ScanlineCoordJitter = ScanlineOffset * HalfPI; float ScanlineSine = sin(ScanlineCoord + ScanlineCoordJitter); - float ScanlineWide = ScanlineHeight + ScanlineVariation * max(1.0f, ScanlineHeight) * (1.0f - ColorBrightness); + float ScanlineWide = ScanlineHeight + ScanlineVariation * max(1.0f, ScanlineHeight) * (1.0 - ColorBrightness); float ScanlineAmount = pow(ScanlineSine * ScanlineSine, ScanlineWide); float ScanlineBrightness = ScanlineAmount * BrightnessScale + BrightnessOffset * BrightnessScale; - BaseColor.rgb *= mix(1.0f, ScanlineBrightness, ScanlineAlpha); + BaseColor.rgb *= mix(1.0, ScanlineBrightness, ScanlineAlpha); FragColor = BaseColor; } diff --git a/test/nonfunctional/shaders/mame/mame_vector.slang b/crt/shaders/mame_hlsl/shaders/mame_vector.slang similarity index 100% rename from test/nonfunctional/shaders/mame/mame_vector.slang rename to crt/shaders/mame_hlsl/shaders/mame_vector.slang diff --git a/test/nonfunctional/shaders/mame/primary.slang b/crt/shaders/mame_hlsl/shaders/primary.slang similarity index 100% rename from test/nonfunctional/shaders/mame/primary.slang rename to crt/shaders/mame_hlsl/shaders/primary.slang