diff --git a/cel/MMJ_Cel_Shader_MP.slangp b/cel/MMJ_Cel_Shader_MP.slangp index d30cad9f..766e4d91 100644 --- a/cel/MMJ_Cel_Shader_MP.slangp +++ b/cel/MMJ_Cel_Shader_MP.slangp @@ -1,13 +1,16 @@ -shaders = 4 +shaders = 5 -shader0 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Blur_H.slang -alias0 = MMJ_BlurPass_H +shader0 = ../stock.slang +alias0 = MMJ_MP_refpass -shader1 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Blur_V.slang -alias1 = MMJ_BlurPass_V +shader1 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Blur_H.slang +alias1 = MMJ_BlurPass_H -shader2 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Outline.slang -alias2 = MMJ_OutlinePass +shader2 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Blur_V.slang +alias2 = MMJ_BlurPass_V -shader3 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Color.slang -alias3 = MMJ_ColorPass +shader3 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Outline.slang +alias3 = MMJ_OutlinePass + +shader4 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Color.slang +alias4 = MMJ_ColorPass diff --git a/cel/shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Color.slang b/cel/shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Color.slang index b24cb184..5c70c93a 100644 --- a/cel/shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Color.slang +++ b/cel/shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Color.slang @@ -56,7 +56,7 @@ void main() #pragma stage fragment layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; -layout(set = 0, binding = 2) uniform sampler2D Original; +layout(set = 0, binding = 2) uniform sampler2D MMJ_MP_refpass; layout(set = 0, binding = 3) uniform sampler2D MMJ_OutlinePass; vec3 RGB2HSL(vec3 cRGB) @@ -143,10 +143,10 @@ vec3 colorAdjust(vec3 cRGB) void main() { - vec3 cOriginal = texture(Original, vTexCoord).rgb; + vec3 cOriginal = texture(MMJ_MP_refpass, vTexCoord).rgb; vec3 cOutline = texture(MMJ_OutlinePass, vTexCoord).rgb; vec3 cNew = cOriginal; cNew = min(vec3(1.0), min(cNew, cNew + dot(vec3(1.0), cNew))); FragColor.rgb = mix(cOriginal * cOutline, colorAdjust(cNew * cOutline), ColorWeight); -} \ No newline at end of file +} diff --git a/crt/crt-interlaced-halation.slangp b/crt/crt-interlaced-halation.slangp index 22a4b413..8f5aea00 100644 --- a/crt/crt-interlaced-halation.slangp +++ b/crt/crt-interlaced-halation.slangp @@ -1,26 +1,33 @@ -shaders = "4" -shader0 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass0.slang -filter_linear0 = "false" -float_framebuffer0 = "false" -scale_type_x0 = "source" -scale_x0 = "1.000000" -scale_type_y0 = "source" -scale_y0 = "1.000000" -shader1 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass1.slang +shaders = "5" + +shader0 = ../stock.slang +alias0 = crt_interlaced_halation_refpass + +shader1 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass0.slang filter_linear1 = "false" float_framebuffer1 = "false" scale_type_x1 = "source" scale_x1 = "1.000000" scale_type_y1 = "source" scale_y1 = "1.000000" -shader2 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass2.slang + +shader2 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass1.slang filter_linear2 = "false" float_framebuffer2 = "false" scale_type_x2 = "source" -scale_x2 = "3.000000" +scale_x2 = "1.000000" scale_type_y2 = "source" -scale_y2 = "3.000000" -shader3 = ../stock.slang -filter_linear3 = "true" -float_framebuffer3 = "false" +scale_y2 = "1.000000" + +shader3 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass2.slang +filter_linear3 = "false" +float_framebuffer3 = "false" +scale_type_x3 = "source" +scale_x3 = "3.000000" +scale_type_y3 = "source" +scale_y3 = "3.000000" + +shader4 = ../stock.slang +filter_linear4 = "true" +float_framebuffer4 = "false" diff --git a/crt/crt-lottes-multipass-glow.slangp b/crt/crt-lottes-multipass-glow.slangp index babe4532..cbf9a552 100644 --- a/crt/crt-lottes-multipass-glow.slangp +++ b/crt/crt-lottes-multipass-glow.slangp @@ -1,23 +1,18 @@ -shaders = "6" +shaders = "7" -shader0 = "shaders/crt-easymode-halation/linearize.slang" -filter_linear0 = "true" -srgb_framebuffer0 = "true" -scale_type_x0 = "source" -scale_x0 = "1.000000" -scale_type_y0 = "source" -scale_y0 = "1.000000" -alias0 = ORIG_LINEARIZED +shader0 = ../stock.slang +alias0 = glow_trails_refpass -shader1 = "shaders/crt-easymode-halation/blur_horiz.slang" -filter_linear1 = "false" +shader1 = "shaders/crt-easymode-halation/linearize.slang" +filter_linear1 = "true" srgb_framebuffer1 = "true" scale_type_x1 = "source" scale_x1 = "1.000000" scale_type_y1 = "source" scale_y1 = "1.000000" +alias1 = ORIG_LINEARIZED -shader2 = "shaders/crt-easymode-halation/blur_vert.slang" +shader2 = "shaders/crt-easymode-halation/blur_horiz.slang" filter_linear2 = "false" srgb_framebuffer2 = "true" scale_type_x2 = "source" @@ -25,19 +20,27 @@ scale_x2 = "1.000000" scale_type_y2 = "source" scale_y2 = "1.000000" -shader3 = "shaders/crt-easymode-halation/threshold.slang" +shader3 = "shaders/crt-easymode-halation/blur_vert.slang" filter_linear3 = "false" srgb_framebuffer3 = "true" scale_type_x3 = "source" scale_x3 = "1.000000" scale_type_y3 = "source" scale_y3 = "1.000000" -alias3 = GlowPass -shader4 = "shaders/crt-lottes-multipass/bloompass.slang" -filter_linear4 = "true" -alias4 = BloomPass -srgb_framebuffer4 = true +shader4 = "shaders/crt-easymode-halation/threshold.slang" +filter_linear4 = "false" +srgb_framebuffer4 = "true" +scale_type_x4 = "source" +scale_x4 = "1.000000" +scale_type_y4 = "source" +scale_y4 = "1.000000" +alias4 = GlowPass -shader5 = "shaders/crt-lottes-multipass/scanpass-glow.slang" +shader5 = "shaders/crt-lottes-multipass/bloompass.slang" filter_linear5 = "true" +alias5 = BloomPass +srgb_framebuffer5 = true + +shader6 = "shaders/crt-lottes-multipass/scanpass-glow.slang" +filter_linear6 = "true" diff --git a/crt/crt-maximus-royale-fast-mode.slangp b/crt/crt-maximus-royale-fast-mode.slangp index 03570cef..ab5fd127 100644 --- a/crt/crt-maximus-royale-fast-mode.slangp +++ b/crt/crt-maximus-royale-fast-mode.slangp @@ -1,165 +1,168 @@ -shaders = "20" +shaders = "21" -shader0 = "shaders/crt-maximus-royale/src/H_blur.slang" -filter_linear0 = "false" -srgb_framebuffer0 = "true" -scale_type0 = "source" -scale0 = "1.0" +shader0 = ../stock.slang +alias0 = maximus_refpass -shader1 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang" -filter_linear1 = "true" -wrap_mode1 = "clamp_to_border" -alias1 = "ORIG_LINEARIZED" +shader1 = "shaders/crt-maximus-royale/src/H_blur.slang" +filter_linear1 = "false" srgb_framebuffer1 = "true" scale_type1 = "source" scale1 = "1.0" -shader2 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang" +shader2 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang" filter_linear2 = "true" wrap_mode2 = "clamp_to_border" +alias2 = "ORIG_LINEARIZED" srgb_framebuffer2 = "true" -scale_type_x2 = "source" -scale_type_y2 = "source" -scale_x2 = "1.0" -scale_y2 = "3.0" +scale_type2 = "source" +scale2 = "1.0" -shader3 = "shaders/crt-maximus-royale/src/resize.slang" +shader3 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang" filter_linear3 = "true" -alias3 = "VERTICAL_SCANLINES" +wrap_mode3 = "clamp_to_border" srgb_framebuffer3 = "true" scale_type_x3 = "source" -scale_type_y3 = "viewport" +scale_type_y3 = "source" scale_x3 = "1.0" -scale_y3 = "1.95" +scale_y3 = "3.0" -shader4 = "shaders/crt-royale/src/crt-royale-bloom-approx.slang" +shader4 = "shaders/crt-maximus-royale/src/resize.slang" filter_linear4 = "true" -wrap_mode4 = "clamp_to_border" +alias4 = "VERTICAL_SCANLINES" srgb_framebuffer4 = "true" -scale_type_x4 = "absolute" -scale_type_y4 = "absolute" -scale_x4 = "320" -scale_y4 = "240" +scale_type_x4 = "source" +scale_type_y4 = "viewport" +scale_x4 = "1.0" +scale_y4 = "1.95" -shader5 = "shaders/crt-maximus-royale/src/resize.slang" +shader5 = "shaders/crt-royale/src/crt-royale-bloom-approx.slang" filter_linear5 = "true" -alias5 = "BLOOM_APPROX" +wrap_mode5 = "clamp_to_border" srgb_framebuffer5 = "true" -scale_type5 = "source" -scale5 = "1.0" +scale_type_x5 = "absolute" +scale_type_y5 = "absolute" +scale_x5 = "320" +scale_y5 = "240" -shader6 = "../blurs/shaders/royale/blur9fast-vertical.slang" +shader6 = "shaders/crt-maximus-royale/src/resize.slang" filter_linear6 = "true" -wrap_mode6 = "clamp_to_border" +alias6 = "BLOOM_APPROX" srgb_framebuffer6 = "true" scale_type6 = "source" scale6 = "1.0" -shader7 = "../blurs/shaders/royale/blur9fast-horizontal.slang" +shader7 = "../blurs/shaders/royale/blur9fast-vertical.slang" filter_linear7 = "true" wrap_mode7 = "clamp_to_border" -alias7 = "HALATION_BLUR" srgb_framebuffer7 = "true" scale_type7 = "source" scale7 = "1.0" -shader8 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang" +shader8 = "../blurs/shaders/royale/blur9fast-horizontal.slang" filter_linear8 = "true" wrap_mode8 = "clamp_to_border" -srgb_framebuffer8 = "false" -scale_type_x8 = "absolute" -scale_type_y8 = "viewport" -scale_x8 = "128" -scale_y8 = "0.975" +alias8 = "HALATION_BLUR" +srgb_framebuffer8 = "true" +scale_type8 = "source" +scale8 = "1.0" -shader9 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang" -filter_linear9 = "false" +shader9 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang" +filter_linear9 = "true" wrap_mode9 = "clamp_to_border" -alias9 = "MASK_RESIZE" -srgb_framebuffer9 = "true" -scale_type_x9 = "viewport" -scale_type_y9 = "source" -scale_x9 = "0.73125" -scale_y9 = "1.0" +srgb_framebuffer9 = "false" +scale_type_x9 = "absolute" +scale_type_y9 = "viewport" +scale_x9 = "128" +scale_y9 = "0.975" -shader10 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang" -filter_linear10 = "true" -wrap_mode10 = "clamp_to_edge" -alias10 = "MASKED_SCANLINES" +shader10 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang" +filter_linear10 = "false" +wrap_mode10 = "clamp_to_border" +alias10 = "MASK_RESIZE" srgb_framebuffer10 = "true" -scale_type10 = "source" -scale10 = "1.0" +scale_type_x10 = "viewport" +scale_type_y10 = "source" +scale_x10 = "0.73125" +scale_y10 = "1.0" -shader11 = "shaders/crt-royale/src/crt-royale-brightpass.slang" +shader11 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang" filter_linear11 = "true" -wrap_mode11 = "clamp_to_border" -alias11 = "BRIGHTPASS" +wrap_mode11 = "clamp_to_edge" +alias11 = "MASKED_SCANLINES" srgb_framebuffer11 = "true" scale_type11 = "source" scale11 = "1.0" -shader12 = "shaders/crt-royale/src/crt-royale-bloom-vertical.slang" +shader12 = "shaders/crt-royale/src/crt-royale-brightpass.slang" filter_linear12 = "true" wrap_mode12 = "clamp_to_border" +alias12 = "BRIGHTPASS" srgb_framebuffer12 = "true" scale_type12 = "source" scale12 = "1.0" -shader13 = "shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang" +shader13 = "shaders/crt-royale/src/crt-royale-bloom-vertical.slang" filter_linear13 = "true" wrap_mode13 = "clamp_to_border" srgb_framebuffer13 = "true" scale_type13 = "source" scale13 = "1.0" -shader14 = "shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang" +shader14 = "shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang" filter_linear14 = "true" -alias14 = "LAST_PASS" -mipmap_input14 = "true" +wrap_mode14 = "clamp_to_border" srgb_framebuffer14 = "true" scale_type14 = "source" scale14 = "1.0" -shader15 = "shaders/crt-maximus-royale/src/crt_reflect.slang" +shader15 = "shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang" filter_linear15 = "true" -alias15 = "BORDER_REFLECTION" -wrap_mode15 = "clamp_to_border" -srgb_framebuffer15 = "false" -scale_type_x15 = "absolute" -scale_type_y15 = "absolute" -scale_x15 = "160" -scale_y15 = "120" +alias15 = "LAST_PASS" +mipmap_input15 = "true" +srgb_framebuffer15 = "true" +scale_type15 = "source" +scale15 = "1.0" -shader16 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang" -filter_linear16 = "false" +shader16 = "shaders/crt-maximus-royale/src/crt_reflect.slang" +filter_linear16 = "true" +alias16 = "BORDER_REFLECTION" wrap_mode16 = "clamp_to_border" -alias16 = "BGPASS1" srgb_framebuffer16 = "false" scale_type_x16 = "absolute" scale_type_y16 = "absolute" -scale_x16 = "1.0" -scale_y16 = "100.0" +scale_x16 = "160" +scale_y16 = "120" -shader17 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang" +shader17 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang" filter_linear17 = "false" wrap_mode17 = "clamp_to_border" -alias17 = "BGPASS2" +alias17 = "BGPASS1" srgb_framebuffer17 = "false" -scale_type17 = "absolute" -scale17 = "1.0" +scale_type_x17 = "absolute" +scale_type_y17 = "absolute" +scale_x17 = "1.0" +scale_y17 = "100.0" -shader18 = "shaders/crt-maximus-royale/src/imgborder.slang" -filter_linear18 = "true" +shader18 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang" +filter_linear18 = "false" wrap_mode18 = "clamp_to_border" -scale_type18 = "viewport" +alias18 = "BGPASS2" +srgb_framebuffer18 = "false" +scale_type18 = "absolute" scale18 = "1.0" -shader19 = "shaders/crt-maximus-royale/src/tv_reflection.slang" +shader19 = "shaders/crt-maximus-royale/src/imgborder.slang" filter_linear19 = "true" wrap_mode19 = "clamp_to_border" -scale_type19 = "source" +scale_type19 = "viewport" scale19 = "1.0" +shader20 = "shaders/crt-maximus-royale/src/tv_reflection.slang" +filter_linear20 = "true" +wrap_mode20 = "clamp_to_border" +scale_type20 = "source" +scale20 = "1.0" + crt_gamma = "1.7" lcd_gamma = "1.2" diffusion_weight = "0.3" @@ -213,4 +216,4 @@ mask_grille_texture_large = "shaders/crt-maximus-royale/TilePhosphorTextures/Til mask_slot_texture_small = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorMatrix128px.png" mask_slot_texture_large = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorMatrix512px.png" mask_shadow_texture_small = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorDots128px.png" -mask_shadow_texture_large = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorDots512px.png" \ No newline at end of file +mask_shadow_texture_large = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorDots512px.png" diff --git a/crt/crt-maximus-royale-half-res-mode.slangp b/crt/crt-maximus-royale-half-res-mode.slangp index 9a4bfce1..e64ed3f4 100644 --- a/crt/crt-maximus-royale-half-res-mode.slangp +++ b/crt/crt-maximus-royale-half-res-mode.slangp @@ -1,165 +1,168 @@ -shaders = "20" +shaders = "21" -shader0 = "shaders/crt-maximus-royale/src/H_blur.slang" -filter_linear0 = "false" -srgb_framebuffer0 = "true" -scale_type0 = "source" -scale0 = "0.5" +shader0 = ../stock.slang +alias0 = maximus_refpass -shader1 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang" -filter_linear1 = "true" -wrap_mode1 = "clamp_to_border" -alias1 = "ORIG_LINEARIZED" +shader1 = "shaders/crt-maximus-royale/src/H_blur.slang" +filter_linear1 = "false" srgb_framebuffer1 = "true" scale_type1 = "source" -scale1 = "1.0" +scale1 = "0.5" -shader2 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang" +shader2 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang" filter_linear2 = "true" wrap_mode2 = "clamp_to_border" +alias2 = "ORIG_LINEARIZED" srgb_framebuffer2 = "true" -scale_type_x2 = "source" -scale_type_y2 = "source" -scale_x2 = "1.0" -scale_y2 = "3.0" +scale_type2 = "source" +scale2 = "1.0" -shader3 = "shaders/crt-maximus-royale/src/resize.slang" +shader3 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang" filter_linear3 = "true" -alias3 = "VERTICAL_SCANLINES" +wrap_mode3 = "clamp_to_border" srgb_framebuffer3 = "true" scale_type_x3 = "source" -scale_type_y3 = "viewport" +scale_type_y3 = "source" scale_x3 = "1.0" -scale_y3 = "1.95" +scale_y3 = "3.0" -shader4 = "shaders/crt-royale/src/crt-royale-bloom-approx.slang" +shader4 = "shaders/crt-maximus-royale/src/resize.slang" filter_linear4 = "true" -wrap_mode4 = "clamp_to_border" +alias4 = "VERTICAL_SCANLINES" srgb_framebuffer4 = "true" -scale_type_x4 = "absolute" -scale_type_y4 = "absolute" -scale_x4 = "320" -scale_y4 = "240" +scale_type_x4 = "source" +scale_type_y4 = "viewport" +scale_x4 = "1.0" +scale_y4 = "1.95" -shader5 = "shaders/crt-maximus-royale/src/resize.slang" +shader5 = "shaders/crt-royale/src/crt-royale-bloom-approx.slang" filter_linear5 = "true" -alias5 = "BLOOM_APPROX" +wrap_mode5 = "clamp_to_border" srgb_framebuffer5 = "true" -scale_type5 = "source" -scale5 = "1.0" +scale_type_x5 = "absolute" +scale_type_y5 = "absolute" +scale_x5 = "320" +scale_y5 = "240" -shader6 = "../blurs/shaders/royale/blur9fast-vertical.slang" +shader6 = "shaders/crt-maximus-royale/src/resize.slang" filter_linear6 = "true" -wrap_mode6 = "clamp_to_border" +alias6 = "BLOOM_APPROX" srgb_framebuffer6 = "true" scale_type6 = "source" scale6 = "1.0" -shader7 = "../blurs/shaders/royale/blur9fast-horizontal.slang" +shader7 = "../blurs/shaders/royale/blur9fast-vertical.slang" filter_linear7 = "true" wrap_mode7 = "clamp_to_border" -alias7 = "HALATION_BLUR" srgb_framebuffer7 = "true" scale_type7 = "source" scale7 = "1.0" -shader8 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang" +shader8 = "../blurs/shaders/royale/blur9fast-horizontal.slang" filter_linear8 = "true" wrap_mode8 = "clamp_to_border" -srgb_framebuffer8 = "false" -scale_type_x8 = "absolute" -scale_type_y8 = "viewport" -scale_x8 = "128" -scale_y8 = "0.975" +alias8 = "HALATION_BLUR" +srgb_framebuffer8 = "true" +scale_type8 = "source" +scale8 = "1.0" -shader9 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang" -filter_linear9 = "false" +shader9 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang" +filter_linear9 = "true" wrap_mode9 = "clamp_to_border" -alias9 = "MASK_RESIZE" -srgb_framebuffer9 = "true" -scale_type_x9 = "viewport" -scale_type_y9 = "source" -scale_x9 = "0.73125" -scale_y9 = "1.0" +srgb_framebuffer9 = "false" +scale_type_x9 = "absolute" +scale_type_y9 = "viewport" +scale_x9 = "128" +scale_y9 = "0.975" -shader10 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang" -filter_linear10 = "true" -wrap_mode10 = "clamp_to_edge" -alias10 = "MASKED_SCANLINES" +shader10 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang" +filter_linear10 = "false" +wrap_mode10 = "clamp_to_border" +alias10 = "MASK_RESIZE" srgb_framebuffer10 = "true" -scale_type10 = "source" -scale10 = "1.0" +scale_type_x10 = "viewport" +scale_type_y10 = "source" +scale_x10 = "0.73125" +scale_y10 = "1.0" -shader11 = "shaders/crt-royale/src/crt-royale-brightpass.slang" +shader11 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang" filter_linear11 = "true" -wrap_mode11 = "clamp_to_border" -alias11 = "BRIGHTPASS" +wrap_mode11 = "clamp_to_edge" +alias11 = "MASKED_SCANLINES" srgb_framebuffer11 = "true" scale_type11 = "source" scale11 = "1.0" -shader12 = "shaders/crt-royale/src/crt-royale-bloom-vertical.slang" +shader12 = "shaders/crt-royale/src/crt-royale-brightpass.slang" filter_linear12 = "true" wrap_mode12 = "clamp_to_border" +alias12 = "BRIGHTPASS" srgb_framebuffer12 = "true" scale_type12 = "source" scale12 = "1.0" -shader13 = "shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang" +shader13 = "shaders/crt-royale/src/crt-royale-bloom-vertical.slang" filter_linear13 = "true" wrap_mode13 = "clamp_to_border" srgb_framebuffer13 = "true" scale_type13 = "source" scale13 = "1.0" -shader14 = "shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang" +shader14 = "shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang" filter_linear14 = "true" -alias14 = "LAST_PASS" -mipmap_input14 = "true" +wrap_mode14 = "clamp_to_border" srgb_framebuffer14 = "true" scale_type14 = "source" scale14 = "1.0" -shader15 = "shaders/crt-maximus-royale/src/crt_reflect.slang" +shader15 = "shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang" filter_linear15 = "true" -alias15 = "BORDER_REFLECTION" -wrap_mode15 = "clamp_to_border" -srgb_framebuffer15 = "false" -scale_type_x15 = "absolute" -scale_type_y15 = "absolute" -scale_x15 = "160" -scale_y15 = "120" +alias15 = "LAST_PASS" +mipmap_input15 = "true" +srgb_framebuffer15 = "true" +scale_type15 = "source" +scale15 = "1.0" -shader16 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang" -filter_linear16 = "false" +shader16 = "shaders/crt-maximus-royale/src/crt_reflect.slang" +filter_linear16 = "true" +alias16 = "BORDER_REFLECTION" wrap_mode16 = "clamp_to_border" -alias16 = "BGPASS1" srgb_framebuffer16 = "false" scale_type_x16 = "absolute" scale_type_y16 = "absolute" -scale_x16 = "1.0" -scale_y16 = "100.0" +scale_x16 = "160" +scale_y16 = "120" -shader17 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang" +shader17 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang" filter_linear17 = "false" wrap_mode17 = "clamp_to_border" -alias17 = "BGPASS2" +alias17 = "BGPASS1" srgb_framebuffer17 = "false" -scale_type17 = "absolute" -scale17 = "1.0" +scale_type_x17 = "absolute" +scale_type_y17 = "absolute" +scale_x17 = "1.0" +scale_y17 = "100.0" -shader18 = "shaders/crt-maximus-royale/src/imgborder.slang" -filter_linear18 = "true" +shader18 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang" +filter_linear18 = "false" wrap_mode18 = "clamp_to_border" -scale_type18 = "viewport" +alias18 = "BGPASS2" +srgb_framebuffer18 = "false" +scale_type18 = "absolute" scale18 = "1.0" -shader19 = "shaders/crt-maximus-royale/src/tv_reflection.slang" +shader19 = "shaders/crt-maximus-royale/src/imgborder.slang" filter_linear19 = "true" wrap_mode19 = "clamp_to_border" -scale_type19 = "source" +scale_type19 = "viewport" scale19 = "1.0" +shader20 = "shaders/crt-maximus-royale/src/tv_reflection.slang" +filter_linear20 = "true" +wrap_mode20 = "clamp_to_border" +scale_type20 = "source" +scale20 = "1.0" + crt_gamma = "1.7" lcd_gamma = "1.2" diffusion_weight = "0.3" @@ -213,4 +216,4 @@ mask_grille_texture_large = "shaders/crt-maximus-royale/TilePhosphorTextures/Til mask_slot_texture_small = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorMatrix128px.png" mask_slot_texture_large = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorMatrix512px.png" mask_shadow_texture_small = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorDots128px.png" -mask_shadow_texture_large = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorDots512px.png" \ No newline at end of file +mask_shadow_texture_large = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorDots512px.png" diff --git a/crt/crt-maximus-royale.slangp b/crt/crt-maximus-royale.slangp index 5471664c..44278cff 100644 --- a/crt/crt-maximus-royale.slangp +++ b/crt/crt-maximus-royale.slangp @@ -1,191 +1,194 @@ -shaders = "23" +shaders = "24" -shader0 = "shaders/crt-maximus-royale/src/horizontal_ringing.slang" -filter_linear0 = "false" -srgb_framebuffer0 = "true" -scale_type0 = "source" -scale_x0 = "4.0" -scale_y0 = "1.0" +shader0 = ../stock.slang +alias0 = maximus_refpass -shader1 = "shaders/crt-maximus-royale/src/ntsc_pass1.slang" +shader1 = "shaders/crt-maximus-royale/src/horizontal_ringing.slang" filter_linear1 = "false" -frame_count_mod1 = "2" -float_framebuffer1 = "true" -scale_type_x1 = "source" -scale_type_y1 = "source" +srgb_framebuffer1 = "true" +scale_type1 = "source" scale_x1 = "4.0" scale_y1 = "1.0" -shader2 = "shaders/crt-maximus-royale/src/ntsc_pass2.slang" +shader2 = "shaders/crt-maximus-royale/src/ntsc_pass1.slang" filter_linear2 = "false" +frame_count_mod2 = "2" +float_framebuffer2 = "true" scale_type_x2 = "source" scale_type_y2 = "source" -scale_x2 = "0.25" +scale_x2 = "4.0" scale_y2 = "1.0" -shader3 = "shaders/crt-maximus-royale/src/H_blur.slang" +shader3 = "shaders/crt-maximus-royale/src/ntsc_pass2.slang" filter_linear3 = "false" -srgb_framebuffer3 = "true" -scale_type3 = "source" -scale3 = "1.0" +scale_type_x3 = "source" +scale_type_y3 = "source" +scale_x3 = "0.25" +scale_y3 = "1.0" -shader4 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang" -filter_linear4 = "true" -wrap_mode4 = "clamp_to_border" -alias4 = "ORIG_LINEARIZED" +shader4 = "shaders/crt-maximus-royale/src/H_blur.slang" +filter_linear4 = "false" srgb_framebuffer4 = "true" scale_type4 = "source" scale4 = "1.0" -shader5 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang" +shader5 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang" filter_linear5 = "true" wrap_mode5 = "clamp_to_border" +alias5 = "ORIG_LINEARIZED" srgb_framebuffer5 = "true" -scale_type_x5 = "source" -scale_type_y5 = "source" -scale_x5 = "1.0" -scale_y5 = "6.0" +scale_type5 = "source" +scale5 = "1.0" -shader6 = "shaders/crt-maximus-royale/src/resize.slang" +shader6 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang" filter_linear6 = "true" -alias6 = "VERTICAL_SCANLINES" +wrap_mode6 = "clamp_to_border" srgb_framebuffer6 = "true" scale_type_x6 = "source" -scale_type_y6 = "viewport" +scale_type_y6 = "source" scale_x6 = "1.0" -scale_y6 = "1.95" +scale_y6 = "6.0" -shader7 = "shaders/crt-royale/src/crt-royale-bloom-approx.slang" +shader7 = "shaders/crt-maximus-royale/src/resize.slang" filter_linear7 = "true" -wrap_mode7 = "clamp_to_border" +alias7 = "VERTICAL_SCANLINES" srgb_framebuffer7 = "true" -scale_type_x7 = "absolute" -scale_type_y7 = "absolute" -scale_x7 = "320" -scale_y7 = "240" +scale_type_x7 = "source" +scale_type_y7 = "viewport" +scale_x7 = "1.0" +scale_y7 = "1.95" -shader8 = "shaders/crt-maximus-royale/src/resize.slang" +shader8 = "shaders/crt-royale/src/crt-royale-bloom-approx.slang" filter_linear8 = "true" -alias8 = "BLOOM_APPROX" wrap_mode8 = "clamp_to_border" srgb_framebuffer8 = "true" -scale_type8 = "source" -scale8 = "1.0" +scale_type_x8 = "absolute" +scale_type_y8 = "absolute" +scale_x8 = "320" +scale_y8 = "240" -shader9 = "../blurs/shaders/royale/blur9fast-vertical.slang" +shader9 = "shaders/crt-maximus-royale/src/resize.slang" filter_linear9 = "true" +alias9 = "BLOOM_APPROX" wrap_mode9 = "clamp_to_border" srgb_framebuffer9 = "true" scale_type9 = "source" scale9 = "1.0" -shader10 = "../blurs/shaders/royale/blur9fast-horizontal.slang" +shader10 = "../blurs/shaders/royale/blur9fast-vertical.slang" filter_linear10 = "true" wrap_mode10 = "clamp_to_border" -alias10 = "HALATION_BLUR" -srgb_framebuffer10 = "false" +srgb_framebuffer10 = "true" scale_type10 = "source" scale10 = "1.0" -shader11 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang" +shader11 = "../blurs/shaders/royale/blur9fast-horizontal.slang" filter_linear11 = "true" wrap_mode11 = "clamp_to_border" +alias11 = "HALATION_BLUR" srgb_framebuffer11 = "false" -scale_type_x11 = "absolute" -scale_type_y11 = "viewport" -scale_x11 = "128" -scale_y11 = "0.975" +scale_type11 = "source" +scale11 = "1.0" -shader12 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang" -filter_linear12 = "false" +shader12 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang" +filter_linear12 = "true" wrap_mode12 = "clamp_to_border" -alias12 = "MASK_RESIZE" -srgb_framebuffer12 = "true" -scale_type_x12 = "viewport" -scale_type_y12 = "source" -scale_x12 = "0.73125" -scale_y12 = "2.0" +srgb_framebuffer12 = "false" +scale_type_x12 = "absolute" +scale_type_y12 = "viewport" +scale_x12 = "128" +scale_y12 = "0.975" -shader13 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang" -filter_linear13 = "true" -wrap_mode13 = "clamp_to_edge" -alias13 = "MASKED_SCANLINES" +shader13 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang" +filter_linear13 = "false" +wrap_mode13 = "clamp_to_border" +alias13 = "MASK_RESIZE" srgb_framebuffer13 = "true" -scale_type13 = "source" -scale13 = "1.0" +scale_type_x13 = "viewport" +scale_type_y13 = "source" +scale_x13 = "0.73125" +scale_y13 = "2.0" -shader14 = "shaders/crt-royale/src/crt-royale-brightpass.slang" +shader14 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang" filter_linear14 = "true" -wrap_mode14 = "clamp_to_border" -alias14 = "BRIGHTPASS" +wrap_mode14 = "clamp_to_edge" +alias14 = "MASKED_SCANLINES" srgb_framebuffer14 = "true" scale_type14 = "source" scale14 = "1.0" -shader15 = "shaders/crt-royale/src/crt-royale-bloom-vertical.slang" +shader15 = "shaders/crt-royale/src/crt-royale-brightpass.slang" filter_linear15 = "true" wrap_mode15 = "clamp_to_border" +alias15 = "BRIGHTPASS" srgb_framebuffer15 = "true" scale_type15 = "source" scale15 = "1.0" -shader16 = "shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang" +shader16 = "shaders/crt-royale/src/crt-royale-bloom-vertical.slang" filter_linear16 = "true" wrap_mode16 = "clamp_to_border" srgb_framebuffer16 = "true" scale_type16 = "source" scale16 = "1.0" -shader17 = "shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang" +shader17 = "shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang" filter_linear17 = "true" -alias17 = "LAST_PASS" -mipmap_input17 = "false" +wrap_mode17 = "clamp_to_border" srgb_framebuffer17 = "true" -scale_type_x17 = "source" -scale_type_y17 = "source" -scale_x17 = "1.0" -scale_y17 = "0.5" +scale_type17 = "source" +scale17 = "1.0" -shader18 = "shaders/crt-maximus-royale/src/crt_reflect.slang" +shader18 = "shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang" filter_linear18 = "true" -alias18 = "BORDER_REFLECTION" -wrap_mode18 = "clamp_to_border" -srgb_framebuffer18 = "false" -scale_type_x18 = "absolute" -scale_type_y18 = "absolute" -scale_x18 = "160" -scale_y18 = "120" +alias18 = "LAST_PASS" +mipmap_input18 = "false" +srgb_framebuffer18 = "true" +scale_type_x18 = "source" +scale_type_y18 = "source" +scale_x18 = "1.0" +scale_y18 = "0.5" -shader19 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang" -filter_linear19 = "false" +shader19 = "shaders/crt-maximus-royale/src/crt_reflect.slang" +filter_linear19 = "true" +alias19 = "BORDER_REFLECTION" wrap_mode19 = "clamp_to_border" -alias19 = "BGPASS1" srgb_framebuffer19 = "false" scale_type_x19 = "absolute" scale_type_y19 = "absolute" -scale_x19 = "1.0" -scale_y19 = "100.0" +scale_x19 = "160" +scale_y19 = "120" -shader20 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang" +shader20 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang" filter_linear20 = "false" wrap_mode20 = "clamp_to_border" -alias20 = "BGPASS2" +alias20 = "BGPASS1" srgb_framebuffer20 = "false" -scale_type20 = "absolute" -scale20 = "1.0" +scale_type_x20 = "absolute" +scale_type_y20 = "absolute" +scale_x20 = "1.0" +scale_y20 = "100.0" -shader21 = "shaders/crt-maximus-royale/src/imgborder.slang" -filter_linear21 = "true" +shader21 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang" +filter_linear21 = "false" wrap_mode21 = "clamp_to_border" -scale_type21 = "viewport" +alias21 = "BGPASS2" +srgb_framebuffer21 = "false" +scale_type21 = "absolute" scale21 = "1.0" -shader22 = "shaders/crt-maximus-royale/src/tv_reflection.slang" +shader22 = "shaders/crt-maximus-royale/src/imgborder.slang" filter_linear22 = "true" wrap_mode22 = "clamp_to_border" -scale_type22 = "source" +scale_type22 = "viewport" scale22 = "1.0" +shader23 = "shaders/crt-maximus-royale/src/tv_reflection.slang" +filter_linear23 = "true" +wrap_mode23 = "clamp_to_border" +scale_type23 = "source" +scale23 = "1.0" + crt_gamma = "1.7" lcd_gamma = "1.2" diffusion_weight = "0.3" @@ -239,4 +242,4 @@ mask_grille_texture_large = "shaders/crt-maximus-royale/TilePhosphorTextures/Til mask_slot_texture_small = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorMatrix128pxH.png" mask_slot_texture_large = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorMatrix512pxH.png" mask_shadow_texture_small = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorDots128pxH.png" -mask_shadow_texture_large = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorDots512pxH.png" \ No newline at end of file +mask_shadow_texture_large = "shaders/crt-maximus-royale/TilePhosphorTextures/TilePhosphorDots512pxH.png" diff --git a/crt/shaders/crt-interlaced-halation/crt-interlaced-halation-pass2.slang b/crt/shaders/crt-interlaced-halation/crt-interlaced-halation-pass2.slang index 425b11b8..0b739b23 100644 --- a/crt/shaders/crt-interlaced-halation/crt-interlaced-halation-pass2.slang +++ b/crt/shaders/crt-interlaced-halation/crt-interlaced-halation-pass2.slang @@ -27,7 +27,7 @@ layout(push_constant) uniform Push { vec4 SourceSize; - vec4 OriginalSize; + vec4 crt_interlaced_halation_refpassSize; vec4 OutputSize; uint FrameCount; } params; @@ -66,9 +66,9 @@ layout(std140, set = 0, binding = 0) uniform UBO #define PI 3.141592653589 #ifdef LINEAR_PROCESSING - # define TEX2D(c) pow(texture(Original, (c)), vec4(CRTgamma)) + # define TEX2D(c) pow(texture(crt_interlaced_halation_refpass, (c)), vec4(CRTgamma)) #else - # define TEX2D(c) texture(Original, (c)) + # define TEX2D(c) texture(crt_interlaced_halation_refpass, (c)) #endif @@ -204,10 +204,10 @@ void main() #endif // The size of one texel, in texture-coordinates. - one = ilfac / params.OriginalSize.xy; + one = ilfac / params.crt_interlaced_halation_refpassSize.xy; // Resulting X pixel-coordinate of the pixel we're drawing. - mod_factor = vTexCoord.x * params.OriginalSize.x * params.OutputSize.x / params.OriginalSize.x; + mod_factor = vTexCoord.x * params.crt_interlaced_halation_refpassSize.x * params.OutputSize.x / params.crt_interlaced_halation_refpassSize.x; } #pragma stage fragment @@ -220,7 +220,7 @@ layout(location = 5) in vec2 sinangle; layout(location = 6) in vec2 cosangle; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D crt_interlaced_halation_refpass; #define mul(a, b) (b * a) @@ -359,4 +359,4 @@ void main() // Color the texel. FragColor = vec4(mul_res, 1.0); -} \ No newline at end of file +} diff --git a/crt/shaders/crt-maximus-royale/src/BGcolor_pass1.slang b/crt/shaders/crt-maximus-royale/src/BGcolor_pass1.slang index ae45139a..c122b600 100644 --- a/crt/shaders/crt-maximus-royale/src/BGcolor_pass1.slang +++ b/crt/shaders/crt-maximus-royale/src/BGcolor_pass1.slang @@ -48,11 +48,11 @@ void main() #pragma stage fragment layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; -layout(set = 0, binding = 2) uniform sampler2D Original; +layout(set = 0, binding = 2) uniform sampler2D maximus_refpass; void main() { vec3 BColor = vec3(0.0).rgb; - if ((params.bgMode > 1.0) || (params.ledMode == 3.0)) for (float i = 0.02; i <= 1.0; i += 0.02) BColor += texture(Original, vec2(i,vTexCoord.y)).rgb; + if ((params.bgMode > 1.0) || (params.ledMode == 3.0)) for (float i = 0.02; i <= 1.0; i += 0.02) BColor += texture(maximus_refpass, vec2(i,vTexCoord.y)).rgb; FragColor = vec4(BColor/50, 1.0).rgba; } diff --git a/crt/shaders/crt-maximus-royale/src/crt_reflect.slang b/crt/shaders/crt-maximus-royale/src/crt_reflect.slang index 0da26346..c9089e04 100644 --- a/crt/shaders/crt-maximus-royale/src/crt_reflect.slang +++ b/crt/shaders/crt-maximus-royale/src/crt_reflect.slang @@ -59,7 +59,7 @@ layout(location = 1) in vec2 screen_coord; layout(location = 2) in vec2 resize_coord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D maximus_refpass; void main() { @@ -126,7 +126,7 @@ if (LightsCoordScale.x > -0.05 && LightsCoordScale.x < 1.05 && LightsCoordScale. if (LightsCoord.x > 0.0 && LightsCoord.x < 1.0 && LightsCoord.y > 0.0 && LightsCoord.y < 1.0) { newLightsCoord = LightsCoordScale; } -vec4 lightSource = texture(Original, newLightsCoord).rgba; +vec4 lightSource = texture(maximus_refpass, newLightsCoord).rgba; FragColor = lightSource; //final output -} \ No newline at end of file +} diff --git a/crt/shaders/glow-trails/glow-trails1.slang b/crt/shaders/glow-trails/glow-trails1.slang index f9534f5c..9fe43721 100644 --- a/crt/shaders/glow-trails/glow-trails1.slang +++ b/crt/shaders/glow-trails/glow-trails1.slang @@ -37,11 +37,11 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D glow_trails_refpass; void main() { vec4 trails = texture(Source, vTexCoord).rgba; - vec4 current = pow(texture(Original, vTexCoord).rgba, vec4(2.2)); + vec4 current = pow(texture(glow_trails_refpass, vTexCoord).rgba, vec4(2.2)); FragColor = vec4(pow(current + vec4(clamp(trails.r - current.r, 0.0, 1.0) * params.trail_bright), vec4(1.0 / 2.2))); -} \ No newline at end of file +} diff --git a/crt/shaders/vt220/vt220.slang b/crt/shaders/vt220/vt220.slang index 614fc027..5a58741b 100644 --- a/crt/shaders/vt220/vt220.slang +++ b/crt/shaders/vt220/vt220.slang @@ -52,7 +52,7 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D vt220_refpass; #define iTime (float(params.FrameCount) / 60.0) const vec3 iMouse = vec3(0.0); @@ -294,10 +294,10 @@ void main() vec2 uvC, uvS, uvE; uvC = getCurves(fragCoord, uvC, uvS, uvE); - vec3 sample_image = (global.ntsc_toggle > 0.5) ? texture(Source, vec2(uvC.x, 1.0-uvC.y)).rgb : texture(Original, vec2(uvC.x, 1.0-uvC.y)).rgb; + vec3 sample_image = (global.ntsc_toggle > 0.5) ? texture(Source, vec2(uvC.x, 1.0-uvC.y)).rgb : texture(vt220_refpass, vec2(uvC.x, 1.0-uvC.y)).rgb; vec4 image = vec4(sample_image * corner(uvC) * mask_weights(gl_FragCoord.xy, global.mask_strength, mask_picker), 1.0); image.rgb = pow(image.rgb, vec3(2.5/2.2)); //CRT-like gamma correction image.rgb = scanline(image.rgb, uvC.xy); //apply scanlines - FragColor = (global.ntsc_toggle > 0.5) ? bezelGen(Source, fragCoord.xy, image) : bezelGen(Original, fragCoord.xy, image); //apply bezel -} \ No newline at end of file + FragColor = (global.ntsc_toggle > 0.5) ? bezelGen(Source, fragCoord.xy, image) : bezelGen(vt220_refpass, fragCoord.xy, image); //apply bezel +} diff --git a/crt/vt220.slangp b/crt/vt220.slangp index b9d2cac2..ce89b895 100644 --- a/crt/vt220.slangp +++ b/crt/vt220.slangp @@ -1,21 +1,24 @@ -shaders = 3 +shaders = 4 -shader0 = ../ntsc/shaders/ntsc-adaptive/ntsc-pass1.slang -scale_type0 = source -scale_x0 = 4.0 -filter_linear0 = false -scale_y0 = 1.0 -float_framebuffer0 = true +shader0 = ../stock.slang +alias0 = vt220_refpass -shader1 = ../ntsc/shaders/ntsc-adaptive/ntsc-pass2.slang +shader1 = ../ntsc/shaders/ntsc-adaptive/ntsc-pass1.slang scale_type1 = source -scale_x1 = 0.5 -scale_y1 = 1.0 +scale_x1 = 4.0 filter_linear1 = false +scale_y1 = 1.0 +float_framebuffer1 = true -shader2 = shaders/vt220/vt220.slang -mipmap_input2 = true -wrap_mode2 = mirrored_repeat +shader2 = ../ntsc/shaders/ntsc-adaptive/ntsc-pass2.slang +scale_type2 = source +scale_x2 = 0.5 +scale_y2 = 1.0 +filter_linear2 = false + +shader3 = shaders/vt220/vt220.slang +mipmap_input3 = true +wrap_mode3 = mirrored_repeat parameters = "quality" quality = 1.0 diff --git a/dithering/mdapt.slangp b/dithering/mdapt.slangp index 8f373570..c895ef8a 100644 --- a/dithering/mdapt.slangp +++ b/dithering/mdapt.slangp @@ -1,26 +1,29 @@ -shaders = 5 +shaders = 6 -shader0 = shaders/mdapt/passes/mdapt-pass0.slang -filter_linear0 = false -scale_type0 = source -scale0 = 1.0 +shader0 = ../stock.slang +alias0 = mdapt_refpass -shader1 = shaders/mdapt/passes/mdapt-pass1.slang +shader1 = shaders/mdapt/passes/mdapt-pass0.slang filter_linear1 = false scale_type1 = source scale1 = 1.0 -shader2 = shaders/mdapt/passes/mdapt-pass2.slang +shader2 = shaders/mdapt/passes/mdapt-pass1.slang filter_linear2 = false scale_type2 = source scale2 = 1.0 -shader3 = shaders/mdapt/passes/mdapt-pass3.slang +shader3 = shaders/mdapt/passes/mdapt-pass2.slang filter_linear3 = false scale_type3 = source scale3 = 1.0 -shader4 = shaders/mdapt/passes/mdapt-pass4.slang +shader4 = shaders/mdapt/passes/mdapt-pass3.slang filter_linear4 = false scale_type4 = source scale4 = 1.0 + +shader5 = shaders/mdapt/passes/mdapt-pass4.slang +filter_linear5 = false +scale_type5 = source +scale5 = 1.0 diff --git a/dithering/shaders/mdapt/passes/mdapt-pass3.slang b/dithering/shaders/mdapt/passes/mdapt-pass3.slang index bfab7082..a464082e 100644 --- a/dithering/shaders/mdapt/passes/mdapt-pass3.slang +++ b/dithering/shaders/mdapt/passes/mdapt-pass3.slang @@ -22,7 +22,7 @@ layout(std140, set = 0, binding = 0) uniform UBO } global; #define TEX(dx,dy) texture(Source, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw) -#define TEXt0(dx,dy) texture(Original, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw) +#define TEXt0(dx,dy) texture(mdapt_refpass, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw) bool eq(vec3 A, vec3 B){ return (A == B); @@ -63,7 +63,7 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D mdapt_refpass; void main() { @@ -90,4 +90,4 @@ void main() C.y = or_(C.y, min(U.y, float(eq(c,u))), min(D.y, float(eq(c,d))), min(L.y, float(eq(c,l))), min(R.y, float(eq(c,r))), min(UL, float(eq(c,ul))), min(UR, float(eq(c,ur))), min(DL, float(eq(c,dl))), min(DR, float(eq(c,dr)))); FragColor = vec4(C); -} \ No newline at end of file +} diff --git a/dithering/shaders/mdapt/passes/mdapt-pass4.slang b/dithering/shaders/mdapt/passes/mdapt-pass4.slang index 59540798..c61d3eb4 100644 --- a/dithering/shaders/mdapt/passes/mdapt-pass4.slang +++ b/dithering/shaders/mdapt/passes/mdapt-pass4.slang @@ -45,10 +45,10 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D mdapt_refpass; //#define TEX(dx,dy) texture(Source, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw) -//#define TEXt0(dx,dy) texture(Original, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw) +//#define TEXt0(dx,dy) texture(mdapt_refpass, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw) vec4 TEX(float dx, float dy){ if(params.linear_gamma > 0.5) return pow(texture(Source, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw), vec4(2.2)); @@ -56,8 +56,8 @@ vec4 TEX(float dx, float dy){ } vec4 TEXt0(float dx, float dy){ - if(params.linear_gamma > 0.5) return pow(texture(Original, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw), vec4(2.2)); - else return texture(Original, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw); + if(params.linear_gamma > 0.5) return pow(texture(mdapt_refpass, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw), vec4(2.2)); + else return texture(mdapt_refpass, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw); } bool eq(vec3 A, vec3 B){ diff --git a/handheld/ds-hybrid-sabr.slangp b/handheld/ds-hybrid-sabr.slangp index 2f7430fe..579889ac 100644 --- a/handheld/ds-hybrid-sabr.slangp +++ b/handheld/ds-hybrid-sabr.slangp @@ -1,13 +1,16 @@ # This shader requires 16:9 aspect ratio # and integer scaling OFF -shaders = 2 +shaders = 3 -shader0 = ../sabr/shaders/sabr-v3.0.slang -filter_linear0 = false -scale_type0 = source -scale0 = 2.0 -alias0 = Ref +shader0 = ../stock.slang +alias0 = ds_hybrid_view_refpass -shader1 = shaders/ds-hybrid-view.slang -filter_linear1 = true +shader1 = ../sabr/shaders/sabr-v3.0.slang +filter_linear1 = false +scale_type1 = source +scale1 = 2.0 +alias1 = Ref + +shader2 = shaders/ds-hybrid-view.slang +filter_linear2 = true diff --git a/handheld/ds-hybrid-scalefx.slangp b/handheld/ds-hybrid-scalefx.slangp index 23b7836f..266591d8 100644 --- a/handheld/ds-hybrid-scalefx.slangp +++ b/handheld/ds-hybrid-scalefx.slangp @@ -34,7 +34,7 @@ shader5 = ../scalefx/shaders/scalefx-pass4.slang filter_linear5 = false scale_type5 = source scale5 = 3.0 -alias5 = Ref +alias5 = ds_hybrid_view_refpass shader6 = shaders/ds-hybrid-view.slang filter_linear6 = true diff --git a/handheld/shaders/ds-hybrid-view.slang b/handheld/shaders/ds-hybrid-view.slang index 2e815f07..7224d11f 100755 --- a/handheld/shaders/ds-hybrid-view.slang +++ b/handheld/shaders/ds-hybrid-view.slang @@ -14,7 +14,7 @@ layout(push_constant) uniform Push { - vec4 OriginalSize; + vec4 ds_hybrid_view_refpassSize; vec4 OutputSize; float screen_toggle; float show_both_screens; @@ -43,9 +43,9 @@ void main() { gl_Position = (global.MVP * Position); // screen gap setting increases fb size; modulo at original res to compensate - float screen_gap = mod(params.OriginalSize.y, 192.0); - ScaledScreenGap = screen_gap * params.OriginalSize.w; - HalfScaledScreenGap = (screen_gap * 0.5) * params.OriginalSize.w; + float screen_gap = mod(params.ds_hybrid_view_refpassSize.y, 192.0); + ScaledScreenGap = screen_gap * params.ds_hybrid_view_refpassSize.w; + HalfScaledScreenGap = (screen_gap * 0.5) * params.ds_hybrid_view_refpassSize.w; VerticalAlignmentAdjustment = -0.25 + ((screen_gap * 0.5) * params.OutputSize.w); vTexCoord = TexCoord * 1.00001; vTexCoord *= vec2(1.333, 0.5 - HalfScaledScreenGap); @@ -57,7 +57,7 @@ layout(location = 1) in float ScaledScreenGap; layout(location = 2) in float HalfScaledScreenGap; layout(location = 3) in float VerticalAlignmentAdjustment; layout(location = 0) out vec4 FragColor; -layout(set = 0, binding = 2) uniform sampler2D Original; +layout(set = 0, binding = 2) uniform sampler2D ds_hybrid_view_refpass; layout(set = 0, binding = 3) uniform sampler2D Source; vec2 ignoreScreenGap(vec2 coord) @@ -75,5 +75,5 @@ void main() vec2 bigCoord = vTexCoord + vec2(0., (params.screen_toggle > 0.5) ? 0.5 + HalfScaledScreenGap : 0.); vec2 smallCoord = vTexCoord * vec2(3.) + vec2(-3., VerticalAlignmentAdjustment); FragColor = texture(Source, bigCoord); - FragColor += ((params.filter_small > 0.5) ? texture(Source, ignoreScreenGap(smallCoord)) : texture(Original, ignoreScreenGap(smallCoord))) * vec4(showWhichScreens(smallCoord.y)); + FragColor += ((params.filter_small > 0.5) ? texture(Source, ignoreScreenGap(smallCoord)) : texture(ds_hybrid_view_refpass, ignoreScreenGap(smallCoord))) * vec4(showWhichScreens(smallCoord.y)); } diff --git a/hqx/hq2x-halphon.slangp b/hqx/hq2x-halphon.slangp index a6c39c03..dc270924 100644 --- a/hqx/hq2x-halphon.slangp +++ b/hqx/hq2x-halphon.slangp @@ -1,7 +1,11 @@ -shaders = 2 -shader0 = shader-files/hq2x-halphon.slang -shader1 = ../stock.slang +shaders = 3 -filter_linear0 = false -scale_type0 = source -scale0 = 2.0 +shader0 = ../stock.slang +alias0 = hqx_refpass + +shader1 = shaders/hq2x-halphon.slang +shader2 = ../stock.slang + +filter_linear1 = false +scale_type1 = source +scale1 = 2.0 diff --git a/hqx/hq2x.slangp b/hqx/hq2x.slangp index 2c2b91ef..873d0ad8 100644 --- a/hqx/hq2x.slangp +++ b/hqx/hq2x.slangp @@ -1,23 +1,26 @@ -shaders = 4 -shader0 = shader-files/pass1.slang -shader1 = shader-files/hq2x.slang +shaders = 5 -filter_linear0 = false -scale_type0 = source -scale0 = 1.0 +shader0 = ../stock.slang +alias0 = hqx_refpass +shader1 = shaders/pass1.slang +shader2 = shaders/hq2x.slang filter_linear1 = false scale_type1 = source -scale1 = 2.0 +scale1 = 1.0 -shader2 = ../cubic/shaders/bicubic-x.slang filter_linear2 = false -scale_type_x2 = viewport -scale_type_y2 = source -scale2 = 1.0 +scale_type2 = source +scale2 = 2.0 -shader3 = ../cubic/shaders/bicubic-y.slang +shader3 = ../cubic/shaders/bicubic-x.slang filter_linear3 = false +scale_type_x3 = viewport +scale_type_y3 = source +scale3 = 1.0 + +shader4 = ../cubic/shaders/bicubic-y.slang +filter_linear4 = false textures = LUT LUT = resources/hq2x.png diff --git a/hqx/hq3x.slangp b/hqx/hq3x.slangp index fa70ad89..d5c1987c 100644 --- a/hqx/hq3x.slangp +++ b/hqx/hq3x.slangp @@ -1,23 +1,26 @@ -shaders = 4 -shader0 = shader-files/pass1.slang -shader1 = shader-files/hq3x.slang +shaders = 5 -filter_linear0 = false -scale_type0 = source -scale0 = 1.0 +shader0 = ../stock.slang +alias0 = hqx_refpass +shader1 = shaders/pass1.slang +shader2 = shaders/hq3x.slang filter_linear1 = false scale_type1 = source -scale1 = 3.0 +scale1 = 1.0 -shader2 = ../cubic/shaders/b-spline-x.slang filter_linear2 = false -scale_type_x2 = viewport -scale_type_y2 = source -scale2 = 1.0 +scale_type2 = source +scale2 = 3.0 -shader3 = ../cubic/shaders/b-spline-y.slang +shader3 = ../cubic/shaders/b-spline-x.slang filter_linear3 = false +scale_type_x3 = viewport +scale_type_y3 = source +scale3 = 1.0 + +shader4 = ../cubic/shaders/b-spline-y.slang +filter_linear4 = false textures = LUT diff --git a/hqx/hq4x.slangp b/hqx/hq4x.slangp index 6b2d50ea..cb03ad41 100644 --- a/hqx/hq4x.slangp +++ b/hqx/hq4x.slangp @@ -1,23 +1,26 @@ -shaders = 4 -shader0 = shader-files/pass1.slang -shader1 = shader-files/hq4x.slang +shaders = 5 -filter_linear0 = false -scale_type0 = source -scale0 = 1.0 +shader0 = ../stock.slang +alias0 = hqx_refpass +shader1 = shaders/pass1.slang +shader2 = shaders/hq4x.slang filter_linear1 = false scale_type1 = source -scale1 = 4.0 +scale1 = 1.0 -shader2 = ../cubic/shaders/b-spline-x.slang filter_linear2 = false -scale_type_x2 = viewport -scale_type_y2 = source -scale2 = 1.0 +scale_type2 = source +scale2 = 4.0 -shader3 = ../cubic/shaders/b-spline-y.slang +shader3 = ../cubic/shaders/b-spline-x.slang filter_linear3 = false +scale_type_x3 = viewport +scale_type_y3 = source +scale3 = 1.0 + +shader4 = ../cubic/shaders/b-spline-y.slang +filter_linear4 = false textures = LUT LUT = resources/hq4x.png diff --git a/hqx/shader-files/hq2x-halphon.slang b/hqx/shaders/hq2x-halphon.slang similarity index 100% rename from hqx/shader-files/hq2x-halphon.slang rename to hqx/shaders/hq2x-halphon.slang diff --git a/hqx/shader-files/hq2x.slang b/hqx/shaders/hq2x.slang similarity index 100% rename from hqx/shader-files/hq2x.slang rename to hqx/shaders/hq2x.slang diff --git a/hqx/shader-files/hq3x.slang b/hqx/shaders/hq3x.slang similarity index 100% rename from hqx/shader-files/hq3x.slang rename to hqx/shaders/hq3x.slang diff --git a/hqx/shader-files/hq4x.slang b/hqx/shaders/hq4x.slang similarity index 100% rename from hqx/shader-files/hq4x.slang rename to hqx/shaders/hq4x.slang diff --git a/hqx/shader-files/pass1.slang b/hqx/shaders/pass1.slang similarity index 100% rename from hqx/shader-files/pass1.slang rename to hqx/shaders/pass1.slang diff --git a/hqx/shader-files/pass2.inc b/hqx/shaders/pass2.inc similarity index 87% rename from hqx/shader-files/pass2.inc rename to hqx/shaders/pass2.inc index 9b51eecb..b1cc6aef 100644 --- a/hqx/shader-files/pass2.inc +++ b/hqx/shaders/pass2.inc @@ -36,7 +36,7 @@ layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; layout(set = 0, binding = 3) uniform sampler2D LUT; -layout(set = 0, binding = 4) uniform sampler2D Original; +layout(set = 0, binding = 4) uniform sampler2D hqx_refpass; void main() { @@ -46,10 +46,10 @@ void main() float dx = registers.SourceSize.z; float dy = registers.SourceSize.w; - vec3 p1 = texture(Original, vTexCoord).rgb; - vec3 p2 = texture(Original, vTexCoord + vec2(dx, dy) * quad).rgb; - vec3 p3 = texture(Original, vTexCoord + vec2(dx, 0.0) * quad).rgb; - vec3 p4 = texture(Original, vTexCoord + vec2(0.0, dy) * quad).rgb; + vec3 p1 = texture(hqx_refpass, vTexCoord).rgb; + vec3 p2 = texture(hqx_refpass, vTexCoord + vec2(dx, dy) * quad).rgb; + vec3 p3 = texture(hqx_refpass, vTexCoord + vec2(dx, 0.0) * quad).rgb; + vec3 p4 = texture(hqx_refpass, vTexCoord + vec2(0.0, dy) * quad).rgb; vec3 pixels[4]; pixels[0] = p1.xyz; pixels[1] = p2.xyz; diff --git a/ntsc/artifact-colors.slangp b/ntsc/artifact-colors.slangp index f5779495..9aa0541e 100644 --- a/ntsc/artifact-colors.slangp +++ b/ntsc/artifact-colors.slangp @@ -1,23 +1,26 @@ -shaders = 4 +shaders = 5 shader0 = ../stock.slang -scale_x0 = "640.0" -scale_type_x0 = absolute +alias0 = artifact_colors_refpass -shader1 = ../ntsc/shaders/artifact-colors/artifact-colors0.slang -scale1 = 1.0 -scale_type1 = source -filter_linear1 = false -alias1 = Pass1 +shader1 = ../stock.slang +scale_x1 = "640.0" +scale_type_x1 = absolute -shader2 = ../ntsc/shaders/artifact-colors/artifact-colors1.slang +shader2 = ../ntsc/shaders/artifact-colors/artifact-colors0.slang scale2 = 1.0 scale_type2 = source filter_linear2 = false -alias2 = Pass2 -float_framebuffer2 = true +alias2 = Pass1 -shader3 = ../ntsc/shaders/artifact-colors/artifact-colors2.slang +shader3 = ../ntsc/shaders/artifact-colors/artifact-colors1.slang scale3 = 1.0 scale_type3 = source -filter_linear3 = false \ No newline at end of file +filter_linear3 = false +alias3 = Pass2 +float_framebuffer3 = true + +shader4 = ../ntsc/shaders/artifact-colors/artifact-colors2.slang +scale4 = 1.0 +scale_type4 = source +filter_linear4 = false diff --git a/ntsc/shaders/artifact-colors/artifact-colors2.slang b/ntsc/shaders/artifact-colors/artifact-colors2.slang index 9aaf135e..5a1b551b 100644 --- a/ntsc/shaders/artifact-colors/artifact-colors2.slang +++ b/ntsc/shaders/artifact-colors/artifact-colors2.slang @@ -52,7 +52,7 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D artifact_colors_refpass; layout(set = 0, binding = 4) uniform sampler2D Pass2; layout(set = 0, binding = 5) uniform sampler2D Pass1; @@ -155,7 +155,7 @@ void main() FragColor = vec4(color, 0.); #elif(VIEW_MODE == RGB) - FragColor = texture(Original, uv / params.SourceSize.xy); + FragColor = texture(artifact_colors_refpass, uv / params.SourceSize.xy); #elif(VIEW_MODE == LUMA) FragColor = vec4(luma); diff --git a/presets/mdapt+fast-bilateral+super-4xbr+scanlines.slangp b/presets/mdapt+fast-bilateral+super-4xbr+scanlines.slangp index eb16db3a..7ea363af 100644 --- a/presets/mdapt+fast-bilateral+super-4xbr+scanlines.slangp +++ b/presets/mdapt+fast-bilateral+super-4xbr+scanlines.slangp @@ -1,69 +1,65 @@ -shaders = 15 +shaders = 16 -shader0 = ../dithering/shaders/mdapt/passes/mdapt-pass0.slang -filter_linear0 = false -scale_type0 = source -scale0 = 1.0 +shader0 = ../stock.slang +alias0 = mdapt_refpass -shader1 = ../dithering/shaders/mdapt/passes/mdapt-pass1.slang +shader1 = ../dithering/shaders/mdapt/passes/mdapt-pass0.slang filter_linear1 = false scale_type1 = source scale1 = 1.0 -shader2 = ../dithering/shaders/mdapt/passes/mdapt-pass2.slang +shader2 = ../dithering/shaders/mdapt/passes/mdapt-pass1.slang filter_linear2 = false scale_type2 = source scale2 = 1.0 -shader3 = ../dithering/shaders/mdapt/passes/mdapt-pass3.slang +shader3 = ../dithering/shaders/mdapt/passes/mdapt-pass2.slang filter_linear3 = false scale_type3 = source scale3 = 1.0 -shader4 = ../dithering/shaders/mdapt/passes/mdapt-pass4.slang +shader4 = ../dithering/shaders/mdapt/passes/mdapt-pass3.slang filter_linear4 = false scale_type4 = source scale4 = 1.0 shader5 = ../dithering/shaders/mdapt/passes/mdapt-pass4.slang -filter_linear4 = false -scale_type4 = source -scale4 = 1.0 +filter_linear5 = false +scale_type5 = source +scale5 = 1.0 -shader6 = "../denoisers/shaders/fast-bilateral.slang" -filter_linear6 = "false" -wrap_mode6 = "clamp_to_edge" -scale_type_x6 = "source" -scale_x6 = "1.000000" -scale_type_y6 = "source" -scale_y6 = "1.000000" +shader6 = ../dithering/shaders/mdapt/passes/mdapt-pass4.slang +filter_linear6 = false +scale_type6 = source +scale6 = 1.0 -shader7 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang" +shader7 = "../denoisers/shaders/fast-bilateral.slang" filter_linear7 = "false" wrap_mode7 = "clamp_to_edge" scale_type_x7 = "source" scale_x7 = "1.000000" scale_type_y7 = "source" scale_y7 = "1.000000" +alias7 = XbrSource -shader8 = "../xbr/shaders/super-xbr/super-xbr-pass1.slang" +shader8 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang" filter_linear8 = "false" wrap_mode8 = "clamp_to_edge" scale_type_x8 = "source" -scale_x8 = "2.000000" +scale_x8 = "1.000000" scale_type_y8 = "source" -scale_y8 = "2.000000" -alias8 = "PassPrev2" +scale_y8 = "1.000000" -shader9 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang" +shader9 = "../xbr/shaders/super-xbr/super-xbr-pass1.slang" filter_linear9 = "false" wrap_mode9 = "clamp_to_edge" scale_type_x9 = "source" -scale_x9 = "1.000000" +scale_x9 = "2.000000" scale_type_y9 = "source" -scale_y9 = "1.000000" +scale_y9 = "2.000000" +alias9 = "PassPrev2" -shader10 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang" +shader10 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang" filter_linear10 = "false" wrap_mode10 = "clamp_to_edge" scale_type_x10 = "source" @@ -71,25 +67,33 @@ scale_x10 = "1.000000" scale_type_y10 = "source" scale_y10 = "1.000000" -shader11 = "../xbr/shaders/super-xbr/super-xbr-pass1b.slang" +shader11 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang" filter_linear11 = "false" wrap_mode11 = "clamp_to_edge" scale_type_x11 = "source" -scale_x11 = "2.000000" +scale_x11 = "1.000000" scale_type_y11 = "source" -scale_y11 = "2.000000" +scale_y11 = "1.000000" -shader12 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang" +shader12 = "../xbr/shaders/super-xbr/super-xbr-pass1b.slang" filter_linear12 = "false" wrap_mode12 = "clamp_to_edge" scale_type_x12 = "source" -scale_x12 = "1.000000" +scale_x12 = "2.000000" scale_type_y12 = "source" -scale_y12 = "1.000000" +scale_y12 = "2.000000" -shader13 = ../stock.slang +shader13 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang" +filter_linear13 = "false" +wrap_mode13 = "clamp_to_edge" +scale_type_x13 = "source" +scale_x13 = "1.000000" +scale_type_y13 = "source" +scale_y13 = "1.000000" -shader14 = ../scanlines/shaders/scanline.slang -filter_linear14 = false -scale_type14 = source -scale14 = 1.0 \ No newline at end of file +shader14 = ../stock.slang + +shader15 = ../scanlines/shaders/scanline.slang +filter_linear15 = false +scale_type15 = source +scale15 = 1.0 diff --git a/scalefx/scalefx-9x.slangp b/scalefx/scalefx-9x.slangp index 061ee4a6..8c7188f2 100644 --- a/scalefx/scalefx-9x.slangp +++ b/scalefx/scalefx-9x.slangp @@ -1,49 +1,52 @@ -shaders = 8 +shaders = 9 -shader0 = shaders/old/scalefx-pass0.slang -filter_linear0 = false -scale_type0 = source -scale0 = 1.0 -alias0 = sfxp0 +shader0 = ../stock.slang +alias0 = scalefx_old_refpass -shader1 = shaders/old/scalefx-pass1.slang +shader1 = shaders/old/scalefx-pass0.slang filter_linear1 = false scale_type1 = source scale1 = 1.0 -alias1 = sfxp1 +alias1 = sfxp0 -shader2 = shaders/old/scalefx-pass2.slang +shader2 = shaders/old/scalefx-pass1.slang filter_linear2 = false scale_type2 = source scale2 = 1.0 -alias2 = sfxp2 +alias2 = sfxp1 -shader3 = shaders/old/scalefx-pass3.slang +shader3 = shaders/old/scalefx-pass2.slang filter_linear3 = false scale_type3 = source -scale3 = 3.0 -alias3 = sfxp3 +scale3 = 1.0 +alias3 = sfxp2 -shader4 = shaders/old/scalefx-pass0.slang +shader4 = shaders/old/scalefx-pass3.slang filter_linear4 = false scale_type4 = source -scale4 = 1.0 -alias4 = sfxp4 +scale4 = 3.0 +alias4 = sfxp3 -shader5 = shaders/old/scalefx-pass1.slang +shader5 = shaders/old/scalefx-pass0.slang filter_linear5 = false scale_type5 = source scale5 = 1.0 -alias5 = sfxp5 +alias5 = sfxp4 -shader6 = shaders/old/scalefx-pass2.slang +shader6 = shaders/old/scalefx-pass1.slang filter_linear6 = false scale_type6 = source scale6 = 1.0 -alias6 = sfxp6 +alias6 = sfxp5 -shader7 = shaders/old/scalefx-pass7.slang +shader7 = shaders/old/scalefx-pass2.slang filter_linear7 = false scale_type7 = source -scale7 = 3.0 -alias7 = sfxp7 +scale7 = 1.0 +alias7 = sfxp6 + +shader8 = shaders/old/scalefx-pass7.slang +filter_linear8 = false +scale_type8 = source +scale8 = 3.0 +alias8 = sfxp7 diff --git a/scalefx/shaders/old/scalefx-pass3.slang b/scalefx/shaders/old/scalefx-pass3.slang index a888419e..3b5c3113 100644 --- a/scalefx/shaders/old/scalefx-pass3.slang +++ b/scalefx/shaders/old/scalefx-pass3.slang @@ -67,7 +67,7 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(binding = 1) uniform sampler2D Source; -layout(binding = 2) uniform sampler2D Original; +layout(binding = 2) uniform sampler2D scalefx_old_refpass; @@ -109,6 +109,6 @@ void main() vec2 res = sp == 0 ? vec2(0,0) : sp == 1 ? vec2(-1,0) : sp == 2 ? vec2(-2,0) : sp == 3 ? vec2(1,0) : sp == 4 ? vec2(2,0) : sp == 5 ? vec2(0,-1) : sp == 6 ? vec2(0,-2) : sp == 7 ? vec2(0,1) : vec2(0,2); // ouput - FragColor = texture(Original, vTexCoord + 1/SourceSize.xy * res); + FragColor = texture(scalefx_old_refpass, vTexCoord + 1/SourceSize.xy * res); } diff --git a/sharpen/shaders/diff.slang b/sharpen/shaders/diff.slang index edba8904..0a2f4cc4 100644 --- a/sharpen/shaders/diff.slang +++ b/sharpen/shaders/diff.slang @@ -50,7 +50,7 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D diff_refpass; const vec3 Y = vec3(.2126, .7152, .0722); @@ -65,7 +65,7 @@ void main() vec2 tex = vTexCoord; vec4 c0 = texture(Source, tex); - vec4 c1 = texture(Original, tex); + vec4 c1 = texture(diff_refpass, tex); FragColor = vec4(c0.xyz - c1.xyz, RGBtoYUV(c0.rgb)); -} \ No newline at end of file +} diff --git a/sharpen/super-xbr-super-res.slangp b/sharpen/super-xbr-super-res.slangp index 2daef71c..110bcc72 100644 --- a/sharpen/super-xbr-super-res.slangp +++ b/sharpen/super-xbr-super-res.slangp @@ -1,41 +1,52 @@ -shaders = "9" +shaders = "10" -shader0 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang" -filter_linear0 = "false" -scale_type0 = "source" -scale0 = "1.000000" -shader1 = "../xbr/shaders/super-xbr/super-xbr-pass1.slang" -filter_linear1 = "false" -scale_type1 = "source" -scale1 = "2.000000" -shader2 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang" +shader0 = ../stock.slang +alias0 = diff_refpass + +shader1 = ../stock.slang +alias1 = XbrSource + +shader2 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang" filter_linear2 = "false" scale_type2 = "source" scale2 = "1.000000" -alias2 = "REF" -shader3 = "../cubic/shaders/cubic.slang" +shader3 = "../xbr/shaders/super-xbr/super-xbr-pass1.slang" filter_linear3 = "false" scale_type3 = "source" -scale3 = "0.500000" -shader4 = "shaders/diff.slang" +scale3 = "2.000000" + +shader4 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang" filter_linear4 = "false" scale_type4 = "source" scale4 = "1.000000" -shader5 = "shaders/super-res-ex.slang" -filter_linear5 = "true" -scale_type5 = "source" -scale5 = "2.000000" +alias4 = "REF" -shader6 = "../misc/shaders/deposterize/deposterize-pass0.slang" +shader5 = "../cubic/shaders/cubic.slang" +filter_linear5 = "false" +scale_type5 = "source" +scale5 = "0.500000" + +shader6 = "shaders/diff.slang" filter_linear6 = "false" scale_type6 = "source" scale6 = "1.000000" -shader7 = "../misc/shaders/deposterize/deposterize-pass1.slang" -filter_linear7 = "false" + +shader7 = "shaders/super-res-ex.slang" +filter_linear7 = "true" scale_type7 = "source" -scale7 = "1.000000" +scale7 = "2.000000" -shader8 = "../xbr/shaders/super-xbr/custom-jinc2-sharper.slang" +shader8 = "../misc/shaders/deposterize/deposterize-pass0.slang" filter_linear8 = "false" +scale_type8 = "source" +scale8 = "1.000000" + +shader9 = "../misc/shaders/deposterize/deposterize-pass1.slang" +filter_linear9 = "false" +scale_type9 = "source" +scale9 = "1.000000" + +shader10 = "../xbr/shaders/super-xbr/custom-jinc2-sharper.slang" +filter_linear10 = "false" diff --git a/vhs/gristleVHS.slangp b/vhs/gristleVHS.slangp index 4191a763..855426ea 100644 --- a/vhs/gristleVHS.slangp +++ b/vhs/gristleVHS.slangp @@ -1,24 +1,27 @@ -shaders = 4 +shaders = 5 -shader0 = shaders/gristleVHS/HorizontalSoften.slang -scale_type0 = absolute -scale_y0 = 480 -scale_x0 = 333 -frame_count_mod0 = 256 -filter_linear0 = true +shader0 = ../stock.slang +alias0 = gristleVHS_refpass -shader1 = ../blurs/shaders/sunset_gaussian/sunset_horz.slang +shader1 = shaders/gristleVHS/HorizontalSoften.slang scale_type1 = absolute -scale_x1 = 80 scale_y1 = 480 +scale_x1 = 333 +frame_count_mod1 = 256 filter_linear1 = true -shader2 = shaders/gristleVHS/VHS.slang +shader2 = ../blurs/shaders/sunset_gaussian/sunset_horz.slang scale_type2 = absolute +scale_x2 = 80 scale_y2 = 480 -scale_x2 = 333 -frame_count_mod2 = 256 filter_linear2 = true -shader3 = ../stock.slang +shader3 = shaders/gristleVHS/VHS.slang +scale_type3 = absolute +scale_y3 = 480 +scale_x3 = 333 +frame_count_mod3 = 256 filter_linear3 = true + +shader4 = ../stock.slang +filter_linear4 = true diff --git a/vhs/shaders/gristleVHS/VHS.slang b/vhs/shaders/gristleVHS/VHS.slang index e856ef7a..bcf8e944 100644 --- a/vhs/shaders/gristleVHS/VHS.slang +++ b/vhs/shaders/gristleVHS/VHS.slang @@ -28,7 +28,7 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D gristleVHS_refpass; #define RGB_to_YIQ mat3x3( 0.299 , 0.595716 , 0.211456 , 0.587 , -0.274453 , -0.522591 , 0.114 , -0.321263 , 0.311135 ) #define YIQ_to_RGB mat3x3( 1.0 , 1.0 , 1.0 , 0.9563 , -0.2721 , -1.1070 , 0.6210 , -0.6474 , 1.7046 ) @@ -40,7 +40,7 @@ const float rndtable[256] = float[]( void main() { vec3 ChromaPass = texture(Source, vTexCoord - vec2(params.SourceSize.z*0.333,0.0)).xyz * RGB_to_YIQ; - vec3 LuminaPass = texture(Original, vTexCoord).xyz * RGB_to_YIQ; + vec3 LuminaPass = texture(gristleVHS_refpass, vTexCoord).xyz * RGB_to_YIQ; vec3 MergedPass= vec3(LuminaPass.x,ChromaPass.yz) * YIQ_to_RGB; diff --git a/xbr/other presets/2xBR-lv1-multipass.slangp b/xbr/other presets/2xBR-lv1-multipass.slangp index 58cd7b0f..517d5bab 100644 --- a/xbr/other presets/2xBR-lv1-multipass.slangp +++ b/xbr/other presets/2xBR-lv1-multipass.slangp @@ -1,8 +1,11 @@ -shaders = 2 +shaders = 3 -shader0 = "shaders/2xBR-multipass/2xbr-lv1-c-pass0.slang" -filter_linear0 = false -scale_type0 = source +shader0 = ../../stock.slang +alias0 = xBR_lv1_mp_refpass -shader1 = "shaders/2xBR-multipass/2xbr-lv1-c-pass1.slang" +shader1 = "shaders/2xBR-multipass/2xbr-lv1-c-pass0.slang" filter_linear1 = false +scale_type1 = source + +shader2 = "shaders/2xBR-multipass/2xbr-lv1-c-pass1.slang" +filter_linear2 = false diff --git a/xbr/other presets/shaders/2xBR-multipass/2xbr-lv1-c-pass1.slang b/xbr/other presets/shaders/2xBR-multipass/2xbr-lv1-c-pass1.slang index e11cfccd..14aea522 100644 --- a/xbr/other presets/shaders/2xBR-multipass/2xbr-lv1-c-pass1.slang +++ b/xbr/other presets/shaders/2xBR-multipass/2xbr-lv1-c-pass1.slang @@ -4,7 +4,7 @@ layout(std140, set = 0, binding = 0) uniform UBO { mat4 MVP; vec4 OutputSize; - vec4 OriginalSize; + vec4 xBR_lv1_mp_refpassSize; vec4 SourceSize; } global; @@ -35,7 +35,7 @@ layout(location = 0) in vec2 vTexCoord; layout(location = 1) in vec4 t1; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D xBR_lv1_mp_refpass; mat4x2 sym_vectors = mat4x2(1, 1, 1, -1, -1, -1, -1, 1); @@ -56,8 +56,8 @@ vec2 unpack_info(float i) void main() { //get original texture coordinates relative to the current pass - vec2 OriginalCoord = floor(global.OriginalSize.xy * vTexCoord); - OriginalCoord = (OriginalCoord + 0.5) * global.OriginalSize.zw; + vec2 OriginalCoord = floor(global.xBR_lv1_mp_refpassSize.xy * vTexCoord); + OriginalCoord = (OriginalCoord + 0.5) * global.xBR_lv1_mp_refpassSize.zw; float px, edr; // px = pixel to blend, edr = edge detection rule @@ -67,9 +67,9 @@ void main() vec2 g1 = dir*t1.xy; vec2 g2 = dir*t1.zw; - vec3 F = texture(Original, OriginalCoord +g1).rgb; - vec3 H = texture(Original, OriginalCoord +g2).rgb; - vec3 E = texture(Original, OriginalCoord ).rgb; + vec3 F = texture(xBR_lv1_mp_refpass, OriginalCoord +g1).rgb; + vec3 H = texture(xBR_lv1_mp_refpass, OriginalCoord +g2).rgb; + vec3 E = texture(xBR_lv1_mp_refpass, OriginalCoord ).rgb; vec4 icomp = round(clamp(dir*sym_vectors, vec4(0.0), vec4(1.0))); // choose info component float info = remapFrom01(dot(texture(Source, vTexCoord), icomp), 255.0f); // retrieve 1st pass info @@ -81,4 +81,4 @@ void main() vec3 color = mix(E, mix(H, F, px), edr*0.5); // interpolate if there's edge FragColor = vec4(color, 1.0); -} \ No newline at end of file +} diff --git a/xbr/other presets/shaders/super-xbr/super-2xbr-3d-pass1.slang b/xbr/other presets/shaders/super-xbr/super-2xbr-3d-pass1.slang index f6441b76..62e9e04a 100644 --- a/xbr/other presets/shaders/super-xbr/super-2xbr-3d-pass1.slang +++ b/xbr/other presets/shaders/super-xbr/super-2xbr-3d-pass1.slang @@ -125,7 +125,7 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D super2xbr3d_refpass; void main() { @@ -164,15 +164,15 @@ void main() g1 *= 2.0; g2 *= 2.0; - vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz; - vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz; - vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz; - vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz; + vec3 F6 = texture(super2xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz; + vec3 F7 = texture(super2xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz; + vec3 F8 = texture(super2xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz; + vec3 F9 = texture(super2xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz; - vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz; - vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz; - vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz; - vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz; + vec3 H6 = texture(super2xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz; + vec3 H7 = texture(super2xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz; + vec3 H8 = texture(super2xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz; + vec3 H9 = texture(super2xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz; vec4 f0 = reduce4(F6, F7, F8, F9); vec4 h0 = reduce4(H6, H7, H8, H9); @@ -224,4 +224,4 @@ void main() FragColor = vec4(color, 1.0); } -} \ No newline at end of file +} diff --git a/xbr/other presets/shaders/super-xbr/super-2xbr-3d-pass2.slang b/xbr/other presets/shaders/super-xbr/super-2xbr-3d-pass2.slang index 8f59fe40..a6b4eb84 100644 --- a/xbr/other presets/shaders/super-xbr/super-2xbr-3d-pass2.slang +++ b/xbr/other presets/shaders/super-xbr/super-2xbr-3d-pass2.slang @@ -142,7 +142,7 @@ layout(location = 3) in vec4 t3; layout(location = 4) in vec4 t4; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D super2xbr3d_refpass; void main() { @@ -173,15 +173,15 @@ void main() vec3 A = texture(Source, vTexCoord).xyz; - vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz; - vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz; - vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz; - vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz; + vec3 F6 = texture(super2xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz; + vec3 F7 = texture(super2xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz; + vec3 F8 = texture(super2xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz; + vec3 F9 = texture(super2xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz; - vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz; - vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz; - vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz; - vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz; + vec3 H6 = texture(super2xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz; + vec3 H7 = texture(super2xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz; + vec3 H8 = texture(super2xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz; + vec3 H9 = texture(super2xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz; vec4 f0 = reduce4(F6, F7, F8, F9); vec4 h0 = reduce4(H6, H7, H8, H9); @@ -242,4 +242,4 @@ void main() color = (block_3d) ? color : A; FragColor = vec4(color, 1.0); -} \ No newline at end of file +} diff --git a/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass1.slang b/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass1.slang index e5a43284..654d512f 100644 --- a/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass1.slang +++ b/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass1.slang @@ -125,7 +125,7 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D super4xbr3d_refpass; void main() { @@ -164,15 +164,15 @@ void main() g1 *= 2.0; g2 *= 2.0; - vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz; - vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz; - vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz; - vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz; + vec3 F6 = texture(super4xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz; + vec3 F7 = texture(super4xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz; + vec3 F8 = texture(super4xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz; + vec3 F9 = texture(super4xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz; - vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz; - vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz; - vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz; - vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz; + vec3 H6 = texture(super4xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz; + vec3 H7 = texture(super4xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz; + vec3 H8 = texture(super4xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz; + vec3 H9 = texture(super4xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz; vec4 f0 = reduce4(F6, F7, F8, F9); vec4 h0 = reduce4(H6, H7, H8, H9); @@ -237,4 +237,4 @@ void main() FragColor = vec4(color, 1.0); } -} \ No newline at end of file +} diff --git a/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass1f.slang b/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass1f.slang index d71c6eb7..e0422e14 100644 --- a/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass1f.slang +++ b/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass1f.slang @@ -140,7 +140,7 @@ layout(location = 3) in vec4 t3; layout(location = 4) in vec4 t4; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D super4xbr3d_refpass; void main() { @@ -171,15 +171,15 @@ void main() vec3 A = texture(Source, vTexCoord).xyz; - vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz; - vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz; - vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz; - vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz; + vec3 F6 = texture(super4xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz; + vec3 F7 = texture(super4xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz; + vec3 F8 = texture(super4xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz; + vec3 F9 = texture(super4xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz; - vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz; - vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz; - vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz; - vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz; + vec3 H6 = texture(super4xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz; + vec3 H7 = texture(super4xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz; + vec3 H8 = texture(super4xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz; + vec3 H9 = texture(super4xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz; vec4 f0 = reduce4(F6, F7, F8, F9); vec4 h0 = reduce4(H6, H7, H8, H9); @@ -245,4 +245,4 @@ void main() color = (block_3d) ? color : A; FragColor = vec4(color, 1.0); -} \ No newline at end of file +} diff --git a/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass3.slang b/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass3.slang index 1c1b9191..f02ab0c2 100644 --- a/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass3.slang +++ b/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass3.slang @@ -125,7 +125,7 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D super4xbr3d_refpass; void main() { @@ -164,15 +164,15 @@ void main() g1 *= 2.0; g2 *= 2.0; - vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz; - vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz; - vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz; - vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz; + vec3 F6 = texture(super4xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz; + vec3 F7 = texture(super4xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz; + vec3 F8 = texture(super4xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz; + vec3 F9 = texture(super4xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz; - vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz; - vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz; - vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz; - vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz; + vec3 H6 = texture(super4xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz; + vec3 H7 = texture(super4xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz; + vec3 H8 = texture(super4xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz; + vec3 H9 = texture(super4xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz; vec4 f0 = reduce4(F6, F7, F8, F9); vec4 h0 = reduce4(H6, H7, H8, H9); diff --git a/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass3f.slang b/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass3f.slang index 90caf9e7..9b8b9a7d 100644 --- a/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass3f.slang +++ b/xbr/other presets/shaders/super-xbr/super-4xbr-3d-pass3f.slang @@ -140,7 +140,7 @@ layout(location = 3) in vec4 t3; layout(location = 4) in vec4 t4; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D super4xbr3d_refpass; void main() { @@ -171,15 +171,15 @@ void main() vec3 A = texture(Source, vTexCoord).xyz; - vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz; - vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz; - vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz; - vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz; + vec3 F6 = texture(super4xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz; + vec3 F7 = texture(super4xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz; + vec3 F8 = texture(super4xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz; + vec3 F9 = texture(super4xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz; - vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz; - vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz; - vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz; - vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz; + vec3 H6 = texture(super4xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz; + vec3 H7 = texture(super4xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz; + vec3 H8 = texture(super4xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz; + vec3 H9 = texture(super4xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz; vec4 f0 = reduce4(F6, F7, F8, F9); vec4 h0 = reduce4(H6, H7, H8, H9); @@ -244,4 +244,4 @@ void main() color = (block_3d) ? color : A; FragColor = vec4(color, 1.0); -} \ No newline at end of file +} diff --git a/xbr/other presets/shaders/super-xbr/super-8xbr-3d-pass1.slang b/xbr/other presets/shaders/super-xbr/super-8xbr-3d-pass1.slang index 0456f254..c21e45aa 100644 --- a/xbr/other presets/shaders/super-xbr/super-8xbr-3d-pass1.slang +++ b/xbr/other presets/shaders/super-xbr/super-8xbr-3d-pass1.slang @@ -125,7 +125,7 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D super8xbr3d_refpass; void main() { @@ -166,15 +166,15 @@ void main() g1 *= 2.0; g2 *= 2.0; - vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz; - vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz; - vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz; - vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz; + vec3 F6 = texture(super8xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz; + vec3 F7 = texture(super8xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz; + vec3 F8 = texture(super8xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz; + vec3 F9 = texture(super8xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz; - vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz; - vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz; - vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz; - vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz; + vec3 H6 = texture(super8xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz; + vec3 H7 = texture(super8xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz; + vec3 H8 = texture(super8xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz; + vec3 H9 = texture(super8xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz; vec4 f0 = reduce4(F6, F7, F8, F9); vec4 h0 = reduce4(H6, H7, H8, H9); @@ -229,4 +229,4 @@ void main() FragColor = vec4(color, 1.0); } -} \ No newline at end of file +} diff --git a/xbr/other presets/shaders/super-xbr/super-8xbr-3d-pass3.slang b/xbr/other presets/shaders/super-xbr/super-8xbr-3d-pass3.slang index ea422831..861bc067 100644 --- a/xbr/other presets/shaders/super-xbr/super-8xbr-3d-pass3.slang +++ b/xbr/other presets/shaders/super-xbr/super-8xbr-3d-pass3.slang @@ -125,7 +125,7 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D super8xbr3d_refpass; void main() { @@ -166,15 +166,15 @@ void main() g1 *= 2.0; g2 *= 2.0; - vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz; - vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz; - vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz; - vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz; + vec3 F6 = texture(super8xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz; + vec3 F7 = texture(super8xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz; + vec3 F8 = texture(super8xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz; + vec3 F9 = texture(super8xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz; - vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz; - vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz; - vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz; - vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz; + vec3 H6 = texture(super8xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz; + vec3 H7 = texture(super8xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz; + vec3 H8 = texture(super8xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz; + vec3 H9 = texture(super8xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz; vec4 f0 = reduce4(F6, F7, F8, F9); vec4 h0 = reduce4(H6, H7, H8, H9); @@ -229,4 +229,4 @@ void main() FragColor = vec4(color, 1.0); } -} \ No newline at end of file +} diff --git a/xbr/other presets/shaders/super-xbr/super-8xbr-3d-pass5.slang b/xbr/other presets/shaders/super-xbr/super-8xbr-3d-pass5.slang index 60c4d355..4e54b3c2 100644 --- a/xbr/other presets/shaders/super-xbr/super-8xbr-3d-pass5.slang +++ b/xbr/other presets/shaders/super-xbr/super-8xbr-3d-pass5.slang @@ -125,7 +125,7 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D super8xbr3d_refpass; void main() { @@ -166,15 +166,15 @@ void main() g1 *= 2.0; g2 *= 2.0; - vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz; - vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz; - vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz; - vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz; + vec3 F6 = texture(super8xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz; + vec3 F7 = texture(super8xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz; + vec3 F8 = texture(super8xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz; + vec3 F9 = texture(super8xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz; - vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz; - vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz; - vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz; - vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz; + vec3 H6 = texture(super8xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz; + vec3 H7 = texture(super8xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz; + vec3 H8 = texture(super8xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz; + vec3 H9 = texture(super8xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz; vec4 f0 = reduce4(F6, F7, F8, F9); vec4 h0 = reduce4(H6, H7, H8, H9); @@ -229,4 +229,4 @@ void main() FragColor = vec4(color, 1.0); } -} \ No newline at end of file +} diff --git a/xbr/other presets/super-2xbr-3d-2p.slangp b/xbr/other presets/super-2xbr-3d-2p.slangp index fa086125..1f512209 100644 --- a/xbr/other presets/super-2xbr-3d-2p.slangp +++ b/xbr/other presets/super-2xbr-3d-2p.slangp @@ -1,16 +1,22 @@ -shaders = "3" -shader0 = "shaders/super-xbr/super-2xbr-3d-pass0.slang" -filter_linear0 = false -scale_type_x0 = "source" -scale_x0 = "1.000000" -scale_type_y0 = "source" -scale_y0 = "1.000000" -shader1 = "shaders/super-xbr/super-2xbr-3d-pass1.slang" +shaders = "4" + +shader0 = ../../stock.slang +alias0 = super2xbr3d_refpass + +shader1 = "shaders/super-xbr/super-2xbr-3d-pass0.slang" filter_linear1 = false scale_type_x1 = "source" scale_x1 = "1.000000" scale_type_y1 = "source" scale_y1 = "1.000000" -shader2 = "shaders/super-xbr/custom-jinc2-sharper.slang" -filter_linear2 = false + +shader2 = "shaders/super-xbr/super-2xbr-3d-pass1.slang" +filter_linear2 = false +scale_type_x2 = "source" +scale_x2 = "1.000000" +scale_type_y2 = "source" +scale_y2 = "1.000000" + +shader3 = "shaders/super-xbr/custom-jinc2-sharper.slang" +filter_linear3 = false diff --git a/xbr/other presets/super-2xbr-3d-3p-smoother.slangp b/xbr/other presets/super-2xbr-3d-3p-smoother.slangp index 6aec552f..77e5919e 100644 --- a/xbr/other presets/super-2xbr-3d-3p-smoother.slangp +++ b/xbr/other presets/super-2xbr-3d-3p-smoother.slangp @@ -1,22 +1,29 @@ -shaders = "4" -shader0 = "shaders/super-xbr/super-2xbr-3d-pass0.slang" -filter_linear0 = false -scale_type_x0 = "source" -scale_x0 = "1.000000" -scale_type_y0 = "source" -scale_y0 = "1.000000" -shader1 = "shaders/super-xbr/super-2xbr-3d-pass1.slang" +shaders = "5" + +shader0 = ../../stock.slang +alias0 = super2xbr3d_refpass + +shader1 = "shaders/super-xbr/super-2xbr-3d-pass0.slang" filter_linear1 = false scale_type_x1 = "source" scale_x1 = "1.000000" scale_type_y1 = "source" scale_y1 = "1.000000" -shader2 = "shaders/super-xbr/super-2xbr-3d-pass2.slang" + +shader2 = "shaders/super-xbr/super-2xbr-3d-pass1.slang" filter_linear2 = false scale_type_x2 = "source" scale_x2 = "1.000000" scale_type_y2 = "source" scale_y2 = "1.000000" -shader3 = "shaders/super-xbr/custom-jinc2-sharper.slang" -filter_linear3 = false + +shader3 = "shaders/super-xbr/super-2xbr-3d-pass2.slang" +filter_linear3 = false +scale_type_x3 = "source" +scale_x3 = "1.000000" +scale_type_y3 = "source" +scale_y3 = "1.000000" + +shader4 = "shaders/super-xbr/custom-jinc2-sharper.slang" +filter_linear4 = false diff --git a/xbr/other presets/super-4xbr-3d-4p.slangp b/xbr/other presets/super-4xbr-3d-4p.slangp index b7a11a56..0e453fcb 100644 --- a/xbr/other presets/super-4xbr-3d-4p.slangp +++ b/xbr/other presets/super-4xbr-3d-4p.slangp @@ -1,28 +1,36 @@ -shaders = "5" -shader0 = "shaders/super-xbr/super-4xbr-3d-pass0.slang" -filter_linear0 = false -scale_type_x0 = "source" -scale_x0 = "1.000000" -scale_type_y0 = "source" -scale_y0 = "1.000000" -shader1 = "shaders/super-xbr/super-4xbr-3d-pass1.slang" +shaders = "6" + +shader0 = ../../stock.slang +alias0 = super4xbr3d_refpass + +shader1 = "shaders/super-xbr/super-4xbr-3d-pass0.slang" filter_linear1 = false scale_type_x1 = "source" scale_x1 = "1.000000" scale_type_y1 = "source" scale_y1 = "1.000000" -shader2 = "shaders/super-xbr/super-4xbr-3d-pass2.slang" + +shader2 = "shaders/super-xbr/super-4xbr-3d-pass1.slang" filter_linear2 = false scale_type_x2 = "source" scale_x2 = "1.000000" scale_type_y2 = "source" scale_y2 = "1.000000" -shader3 = "shaders/super-xbr/super-4xbr-3d-pass3.slang" + +shader3 = "shaders/super-xbr/super-4xbr-3d-pass2.slang" filter_linear3 = false scale_type_x3 = "source" scale_x3 = "1.000000" scale_type_y3 = "source" scale_y3 = "1.000000" -shader4 = "shaders/super-xbr/custom-jinc2-sharper.slang" -filter_linear4 = false + +shader4 = "shaders/super-xbr/super-4xbr-3d-pass3.slang" +filter_linear4 = false +scale_type_x4 = "source" +scale_x4 = "1.000000" +scale_type_y4 = "source" +scale_y4 = "1.000000" + +shader5 = "shaders/super-xbr/custom-jinc2-sharper.slang" +filter_linear5 = false diff --git a/xbr/other presets/super-4xbr-3d-6p-smoother.slangp b/xbr/other presets/super-4xbr-3d-6p-smoother.slangp index 8d885b76..ab57bace 100644 --- a/xbr/other presets/super-4xbr-3d-6p-smoother.slangp +++ b/xbr/other presets/super-4xbr-3d-6p-smoother.slangp @@ -1,40 +1,50 @@ -shaders = "7" -shader0 = "shaders/super-xbr/super-4xbr-3d-pass0.slang" -filter_linear0 = false -scale_type_x0 = "source" -scale_x0 = "1.000000" -scale_type_y0 = "source" -scale_y0 = "1.000000" -shader1 = "shaders/super-xbr/super-4xbr-3d-pass1.slang" +shaders = "8" + +shader0 = ../../stock.slang +alias0 = super4xbr3d_refpass + +shader1 = "shaders/super-xbr/super-4xbr-3d-pass0.slang" filter_linear1 = false scale_type_x1 = "source" scale_x1 = "1.000000" scale_type_y1 = "source" scale_y1 = "1.000000" -shader2 = "shaders/super-xbr/super-4xbr-3d-pass1f.slang" + +shader2 = "shaders/super-xbr/super-4xbr-3d-pass1.slang" filter_linear2 = false scale_type_x2 = "source" scale_x2 = "1.000000" scale_type_y2 = "source" scale_y2 = "1.000000" -shader3 = "shaders/super-xbr/super-4xbr-3d-pass2.slang" + +shader3 = "shaders/super-xbr/super-4xbr-3d-pass1f.slang" filter_linear3 = false scale_type_x3 = "source" scale_x3 = "1.000000" scale_type_y3 = "source" scale_y3 = "1.000000" -shader4 = "shaders/super-xbr/super-4xbr-3d-pass3.slang" + +shader4 = "shaders/super-xbr/super-4xbr-3d-pass2.slang" filter_linear4 = false scale_type_x4 = "source" scale_x4 = "1.000000" scale_type_y4 = "source" scale_y4 = "1.000000" -shader5 = "shaders/super-xbr/super-4xbr-3d-pass3f.slang" + +shader5 = "shaders/super-xbr/super-4xbr-3d-pass3.slang" filter_linear5 = false scale_type_x5 = "source" scale_x5 = "1.000000" scale_type_y5 = "source" scale_y5 = "1.000000" -shader6 = "../shaders/support/stock.slang" -filter_linear6 = true + +shader6 = "shaders/super-xbr/super-4xbr-3d-pass3f.slang" +filter_linear6 = false +scale_type_x6 = "source" +scale_x6 = "1.000000" +scale_type_y6 = "source" +scale_y6 = "1.000000" + +shader7 = "../shaders/support/stock.slang" +filter_linear7 = true diff --git a/xbr/other presets/super-8xbr-3d-6p.slangp b/xbr/other presets/super-8xbr-3d-6p.slangp index 528aa6ec..71f8cd32 100644 --- a/xbr/other presets/super-8xbr-3d-6p.slangp +++ b/xbr/other presets/super-8xbr-3d-6p.slangp @@ -1,40 +1,50 @@ -shaders = "7" -shader0 = "shaders/super-xbr/super-8xbr-3d-pass0.slang" -filter_linear0 = false -scale_type_x0 = "source" -scale_x0 = "1.000000" -scale_type_y0 = "source" -scale_y0 = "1.000000" -shader1 = "shaders/super-xbr/super-8xbr-3d-pass1.slang" +shaders = "8" + +shader0 = ../../stock.slang +alias0 = super8xbr3d_refpass + +shader1 = "shaders/super-xbr/super-8xbr-3d-pass0.slang" filter_linear1 = false scale_type_x1 = "source" scale_x1 = "1.000000" scale_type_y1 = "source" scale_y1 = "1.000000" -shader2 = "shaders/super-xbr/super-8xbr-3d-pass2.slang" + +shader2 = "shaders/super-xbr/super-8xbr-3d-pass1.slang" filter_linear2 = false scale_type_x2 = "source" scale_x2 = "1.000000" scale_type_y2 = "source" scale_y2 = "1.000000" -shader3 = "shaders/super-xbr/super-8xbr-3d-pass3.slang" + +shader3 = "shaders/super-xbr/super-8xbr-3d-pass2.slang" filter_linear3 = false scale_type_x3 = "source" scale_x3 = "1.000000" scale_type_y3 = "source" scale_y3 = "1.000000" -shader4 = "shaders/super-xbr/super-8xbr-3d-pass4.slang" + +shader4 = "shaders/super-xbr/super-8xbr-3d-pass3.slang" filter_linear4 = false scale_type_x4 = "source" scale_x4 = "1.000000" scale_type_y4 = "source" scale_y4 = "1.000000" -shader5 = "shaders/super-xbr/super-8xbr-3d-pass5.slang" + +shader5 = "shaders/super-xbr/super-8xbr-3d-pass4.slang" filter_linear5 = false scale_type_x5 = "source" scale_x5 = "1.000000" scale_type_y5 = "source" scale_y5 = "1.000000" -shader6 = "shaders/super-xbr/custom-jinc2-sharper.slang" -filter_linear6 = false + +shader6 = "shaders/super-xbr/super-8xbr-3d-pass5.slang" +filter_linear6 = false +scale_type_x6 = "source" +scale_x6 = "1.000000" +scale_type_y6 = "source" +scale_y6 = "1.000000" + +shader7 = "shaders/super-xbr/custom-jinc2-sharper.slang" +filter_linear7 = false diff --git a/xbr/shaders/super-xbr/super-xbr-pass1b.slang b/xbr/shaders/super-xbr/super-xbr-pass1b.slang index 70ad0eb0..6f3e35bb 100755 --- a/xbr/shaders/super-xbr/super-xbr-pass1b.slang +++ b/xbr/shaders/super-xbr/super-xbr-pass1b.slang @@ -41,7 +41,7 @@ layout(push_constant) uniform Push float XBR_TEXTURE_SHP; } params; -#pragma parameter MODE "Mode - Normal, Details, Adaptive" 0.0 0.0 2.0 1.0 +#pragma parameter MODE "Mode - Normal, Details, Adaptive" 1.0 0.0 2.0 1.0 #pragma parameter XBR_EDGE_SHP "Adaptive Dynamic Edge Sharp" 0.4 0.0 3.0 0.1 #pragma parameter XBR_TEXTURE_SHP "Adaptive Static Edge Sharp" 1.0 0.0 2.0 0.1 @@ -253,4 +253,4 @@ void main() FragColor = vec4(color, 1.0); } -} \ No newline at end of file +} diff --git a/xbrz/shaders/xbrz-freescale-pass1.slang b/xbrz/shaders/xbrz-freescale-pass1.slang index 7688412a..1666b806 100644 --- a/xbrz/shaders/xbrz-freescale-pass1.slang +++ b/xbrz/shaders/xbrz-freescale-pass1.slang @@ -84,7 +84,7 @@ float get_left_ratio(vec2 center, vec2 origin, vec2 direction, vec2 scale) layout(push_constant) uniform Push { - vec4 OriginalSize; + vec4 xbrz_fs_refpassSize; vec4 OutputSize; } params; @@ -108,13 +108,13 @@ void main() layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -layout(set = 0, binding = 3) uniform sampler2D Original; +layout(set = 0, binding = 3) uniform sampler2D xbrz_fs_refpass; #define eq(a,b) (a == b) #define neq(a,b) (a != b) -#define P(x,y) texture(Original, coord + params.OriginalSize.zw * vec2(x, y)).rgb +#define P(x,y) texture(xbrz_fs_refpass, coord + params.xbrz_fs_refpassSize.zw * vec2(x, y)).rgb void main() { @@ -124,9 +124,9 @@ void main() // D|E|F // -|H|- - vec2 scale = params.OutputSize.xy * params.OriginalSize.zw; - vec2 pos = fract(vTexCoord * params.OriginalSize.xy) - vec2(0.5, 0.5); - vec2 coord = vTexCoord - pos * params.OriginalSize.zw; + vec2 scale = params.OutputSize.xy * params.xbrz_fs_refpassSize.zw; + vec2 pos = fract(vTexCoord * params.xbrz_fs_refpassSize.xy) - vec2(0.5, 0.5); + vec2 coord = vTexCoord - pos * params.xbrz_fs_refpassSize.zw; vec3 B = P( 0,-1); vec3 D = P(-1, 0); diff --git a/xbrz/xbrz-freescale-multipass.slangp b/xbrz/xbrz-freescale-multipass.slangp index ad621ec0..8a9e6957 100644 --- a/xbrz/xbrz-freescale-multipass.slangp +++ b/xbrz/xbrz-freescale-multipass.slangp @@ -1,11 +1,14 @@ -shaders = 2 +shaders = 3 -shader0 = shaders/xbrz-freescale-pass0.slang -filter_linear0 = false -scale_type0 = source -scale0 = 1.0 +shader0 = ../stock.slang +alias0 = xbrz_fs_refpass -shader1 = shaders/xbrz-freescale-pass1.slang +shader1 = shaders/xbrz-freescale-pass0.slang filter_linear1 = false -scale_type1 = viewport +scale_type1 = source scale1 = 1.0 + +shader2 = shaders/xbrz-freescale-pass1.slang +filter_linear2 = false +scale_type2 = viewport +scale2 = 1.0