Replace "Original" texture with stock reference pass (#343)

* update shaders that use Original to use a reference pass instead for append/prepend readiness

* remove some extraneous files

* fix super-xbr preset that was already broken apparently
This commit is contained in:
hunterk 2022-12-23 23:31:11 -06:00 committed by GitHub
parent a97ff81c25
commit c10a40e656
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
57 changed files with 837 additions and 722 deletions

View file

@ -1,13 +1,16 @@
shaders = 4 shaders = 5
shader0 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Blur_H.slang shader0 = ../stock.slang
alias0 = MMJ_BlurPass_H alias0 = MMJ_MP_refpass
shader1 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Blur_V.slang shader1 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Blur_H.slang
alias1 = MMJ_BlurPass_V alias1 = MMJ_BlurPass_H
shader2 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Outline.slang shader2 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Blur_V.slang
alias2 = MMJ_OutlinePass alias2 = MMJ_BlurPass_V
shader3 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Color.slang shader3 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Outline.slang
alias3 = MMJ_ColorPass alias3 = MMJ_OutlinePass
shader4 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Color.slang
alias4 = MMJ_ColorPass

View file

@ -56,7 +56,7 @@ void main()
#pragma stage fragment #pragma stage fragment
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; 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; layout(set = 0, binding = 3) uniform sampler2D MMJ_OutlinePass;
vec3 RGB2HSL(vec3 cRGB) vec3 RGB2HSL(vec3 cRGB)
@ -143,7 +143,7 @@ vec3 colorAdjust(vec3 cRGB)
void main() void main()
{ {
vec3 cOriginal = texture(Original, vTexCoord).rgb; vec3 cOriginal = texture(MMJ_MP_refpass, vTexCoord).rgb;
vec3 cOutline = texture(MMJ_OutlinePass, vTexCoord).rgb; vec3 cOutline = texture(MMJ_OutlinePass, vTexCoord).rgb;
vec3 cNew = cOriginal; vec3 cNew = cOriginal;

View file

@ -1,26 +1,33 @@
shaders = "4" shaders = "5"
shader0 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass0.slang
filter_linear0 = "false" shader0 = ../stock.slang
float_framebuffer0 = "false" alias0 = crt_interlaced_halation_refpass
scale_type_x0 = "source"
scale_x0 = "1.000000" shader1 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass0.slang
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass1.slang
filter_linear1 = "false" filter_linear1 = "false"
float_framebuffer1 = "false" float_framebuffer1 = "false"
scale_type_x1 = "source" scale_type_x1 = "source"
scale_x1 = "1.000000" scale_x1 = "1.000000"
scale_type_y1 = "source" scale_type_y1 = "source"
scale_y1 = "1.000000" 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" filter_linear2 = "false"
float_framebuffer2 = "false" float_framebuffer2 = "false"
scale_type_x2 = "source" scale_type_x2 = "source"
scale_x2 = "3.000000" scale_x2 = "1.000000"
scale_type_y2 = "source" scale_type_y2 = "source"
scale_y2 = "3.000000" scale_y2 = "1.000000"
shader3 = ../stock.slang
filter_linear3 = "true" shader3 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass2.slang
float_framebuffer3 = "false" 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"

View file

@ -1,23 +1,18 @@
shaders = "6" shaders = "7"
shader0 = "shaders/crt-easymode-halation/linearize.slang" shader0 = ../stock.slang
filter_linear0 = "true" alias0 = glow_trails_refpass
srgb_framebuffer0 = "true"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
alias0 = ORIG_LINEARIZED
shader1 = "shaders/crt-easymode-halation/blur_horiz.slang" shader1 = "shaders/crt-easymode-halation/linearize.slang"
filter_linear1 = "false" filter_linear1 = "true"
srgb_framebuffer1 = "true" srgb_framebuffer1 = "true"
scale_type_x1 = "source" scale_type_x1 = "source"
scale_x1 = "1.000000" scale_x1 = "1.000000"
scale_type_y1 = "source" scale_type_y1 = "source"
scale_y1 = "1.000000" 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" filter_linear2 = "false"
srgb_framebuffer2 = "true" srgb_framebuffer2 = "true"
scale_type_x2 = "source" scale_type_x2 = "source"
@ -25,19 +20,27 @@ scale_x2 = "1.000000"
scale_type_y2 = "source" scale_type_y2 = "source"
scale_y2 = "1.000000" scale_y2 = "1.000000"
shader3 = "shaders/crt-easymode-halation/threshold.slang" shader3 = "shaders/crt-easymode-halation/blur_vert.slang"
filter_linear3 = "false" filter_linear3 = "false"
srgb_framebuffer3 = "true" srgb_framebuffer3 = "true"
scale_type_x3 = "source" scale_type_x3 = "source"
scale_x3 = "1.000000" scale_x3 = "1.000000"
scale_type_y3 = "source" scale_type_y3 = "source"
scale_y3 = "1.000000" scale_y3 = "1.000000"
alias3 = GlowPass
shader4 = "shaders/crt-lottes-multipass/bloompass.slang" shader4 = "shaders/crt-easymode-halation/threshold.slang"
filter_linear4 = "true" filter_linear4 = "false"
alias4 = BloomPass srgb_framebuffer4 = "true"
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" filter_linear5 = "true"
alias5 = BloomPass
srgb_framebuffer5 = true
shader6 = "shaders/crt-lottes-multipass/scanpass-glow.slang"
filter_linear6 = "true"

View file

@ -1,165 +1,168 @@
shaders = "20" shaders = "21"
shader0 = "shaders/crt-maximus-royale/src/H_blur.slang" shader0 = ../stock.slang
filter_linear0 = "false" alias0 = maximus_refpass
srgb_framebuffer0 = "true"
scale_type0 = "source"
scale0 = "1.0"
shader1 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang" shader1 = "shaders/crt-maximus-royale/src/H_blur.slang"
filter_linear1 = "true" filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
alias1 = "ORIG_LINEARIZED"
srgb_framebuffer1 = "true" srgb_framebuffer1 = "true"
scale_type1 = "source" scale_type1 = "source"
scale1 = "1.0" 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" filter_linear2 = "true"
wrap_mode2 = "clamp_to_border" wrap_mode2 = "clamp_to_border"
alias2 = "ORIG_LINEARIZED"
srgb_framebuffer2 = "true" srgb_framebuffer2 = "true"
scale_type_x2 = "source" scale_type2 = "source"
scale_type_y2 = "source" scale2 = "1.0"
scale_x2 = "1.0"
scale_y2 = "3.0"
shader3 = "shaders/crt-maximus-royale/src/resize.slang" shader3 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
filter_linear3 = "true" filter_linear3 = "true"
alias3 = "VERTICAL_SCANLINES" wrap_mode3 = "clamp_to_border"
srgb_framebuffer3 = "true" srgb_framebuffer3 = "true"
scale_type_x3 = "source" scale_type_x3 = "source"
scale_type_y3 = "viewport" scale_type_y3 = "source"
scale_x3 = "1.0" 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" filter_linear4 = "true"
wrap_mode4 = "clamp_to_border" alias4 = "VERTICAL_SCANLINES"
srgb_framebuffer4 = "true" srgb_framebuffer4 = "true"
scale_type_x4 = "absolute" scale_type_x4 = "source"
scale_type_y4 = "absolute" scale_type_y4 = "viewport"
scale_x4 = "320" scale_x4 = "1.0"
scale_y4 = "240" 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" filter_linear5 = "true"
alias5 = "BLOOM_APPROX" wrap_mode5 = "clamp_to_border"
srgb_framebuffer5 = "true" srgb_framebuffer5 = "true"
scale_type5 = "source" scale_type_x5 = "absolute"
scale5 = "1.0" 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" filter_linear6 = "true"
wrap_mode6 = "clamp_to_border" alias6 = "BLOOM_APPROX"
srgb_framebuffer6 = "true" srgb_framebuffer6 = "true"
scale_type6 = "source" scale_type6 = "source"
scale6 = "1.0" scale6 = "1.0"
shader7 = "../blurs/shaders/royale/blur9fast-horizontal.slang" shader7 = "../blurs/shaders/royale/blur9fast-vertical.slang"
filter_linear7 = "true" filter_linear7 = "true"
wrap_mode7 = "clamp_to_border" wrap_mode7 = "clamp_to_border"
alias7 = "HALATION_BLUR"
srgb_framebuffer7 = "true" srgb_framebuffer7 = "true"
scale_type7 = "source" scale_type7 = "source"
scale7 = "1.0" scale7 = "1.0"
shader8 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang" shader8 = "../blurs/shaders/royale/blur9fast-horizontal.slang"
filter_linear8 = "true" filter_linear8 = "true"
wrap_mode8 = "clamp_to_border" wrap_mode8 = "clamp_to_border"
srgb_framebuffer8 = "false" alias8 = "HALATION_BLUR"
scale_type_x8 = "absolute" srgb_framebuffer8 = "true"
scale_type_y8 = "viewport" scale_type8 = "source"
scale_x8 = "128" scale8 = "1.0"
scale_y8 = "0.975"
shader9 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang" shader9 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang"
filter_linear9 = "false" filter_linear9 = "true"
wrap_mode9 = "clamp_to_border" wrap_mode9 = "clamp_to_border"
alias9 = "MASK_RESIZE" srgb_framebuffer9 = "false"
srgb_framebuffer9 = "true" scale_type_x9 = "absolute"
scale_type_x9 = "viewport" scale_type_y9 = "viewport"
scale_type_y9 = "source" scale_x9 = "128"
scale_x9 = "0.73125" scale_y9 = "0.975"
scale_y9 = "1.0"
shader10 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang" shader10 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
filter_linear10 = "true" filter_linear10 = "false"
wrap_mode10 = "clamp_to_edge" wrap_mode10 = "clamp_to_border"
alias10 = "MASKED_SCANLINES" alias10 = "MASK_RESIZE"
srgb_framebuffer10 = "true" srgb_framebuffer10 = "true"
scale_type10 = "source" scale_type_x10 = "viewport"
scale10 = "1.0" 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" filter_linear11 = "true"
wrap_mode11 = "clamp_to_border" wrap_mode11 = "clamp_to_edge"
alias11 = "BRIGHTPASS" alias11 = "MASKED_SCANLINES"
srgb_framebuffer11 = "true" srgb_framebuffer11 = "true"
scale_type11 = "source" scale_type11 = "source"
scale11 = "1.0" 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" filter_linear12 = "true"
wrap_mode12 = "clamp_to_border" wrap_mode12 = "clamp_to_border"
alias12 = "BRIGHTPASS"
srgb_framebuffer12 = "true" srgb_framebuffer12 = "true"
scale_type12 = "source" scale_type12 = "source"
scale12 = "1.0" 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" filter_linear13 = "true"
wrap_mode13 = "clamp_to_border" wrap_mode13 = "clamp_to_border"
srgb_framebuffer13 = "true" srgb_framebuffer13 = "true"
scale_type13 = "source" scale_type13 = "source"
scale13 = "1.0" 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" filter_linear14 = "true"
alias14 = "LAST_PASS" wrap_mode14 = "clamp_to_border"
mipmap_input14 = "true"
srgb_framebuffer14 = "true" srgb_framebuffer14 = "true"
scale_type14 = "source" scale_type14 = "source"
scale14 = "1.0" 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" filter_linear15 = "true"
alias15 = "BORDER_REFLECTION" alias15 = "LAST_PASS"
wrap_mode15 = "clamp_to_border" mipmap_input15 = "true"
srgb_framebuffer15 = "false" srgb_framebuffer15 = "true"
scale_type_x15 = "absolute" scale_type15 = "source"
scale_type_y15 = "absolute" scale15 = "1.0"
scale_x15 = "160"
scale_y15 = "120"
shader16 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang" shader16 = "shaders/crt-maximus-royale/src/crt_reflect.slang"
filter_linear16 = "false" filter_linear16 = "true"
alias16 = "BORDER_REFLECTION"
wrap_mode16 = "clamp_to_border" wrap_mode16 = "clamp_to_border"
alias16 = "BGPASS1"
srgb_framebuffer16 = "false" srgb_framebuffer16 = "false"
scale_type_x16 = "absolute" scale_type_x16 = "absolute"
scale_type_y16 = "absolute" scale_type_y16 = "absolute"
scale_x16 = "1.0" scale_x16 = "160"
scale_y16 = "100.0" scale_y16 = "120"
shader17 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang" shader17 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang"
filter_linear17 = "false" filter_linear17 = "false"
wrap_mode17 = "clamp_to_border" wrap_mode17 = "clamp_to_border"
alias17 = "BGPASS2" alias17 = "BGPASS1"
srgb_framebuffer17 = "false" srgb_framebuffer17 = "false"
scale_type17 = "absolute" scale_type_x17 = "absolute"
scale17 = "1.0" scale_type_y17 = "absolute"
scale_x17 = "1.0"
scale_y17 = "100.0"
shader18 = "shaders/crt-maximus-royale/src/imgborder.slang" shader18 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang"
filter_linear18 = "true" filter_linear18 = "false"
wrap_mode18 = "clamp_to_border" wrap_mode18 = "clamp_to_border"
scale_type18 = "viewport" alias18 = "BGPASS2"
srgb_framebuffer18 = "false"
scale_type18 = "absolute"
scale18 = "1.0" scale18 = "1.0"
shader19 = "shaders/crt-maximus-royale/src/tv_reflection.slang" shader19 = "shaders/crt-maximus-royale/src/imgborder.slang"
filter_linear19 = "true" filter_linear19 = "true"
wrap_mode19 = "clamp_to_border" wrap_mode19 = "clamp_to_border"
scale_type19 = "source" scale_type19 = "viewport"
scale19 = "1.0" 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" crt_gamma = "1.7"
lcd_gamma = "1.2" lcd_gamma = "1.2"
diffusion_weight = "0.3" diffusion_weight = "0.3"

View file

@ -1,165 +1,168 @@
shaders = "20" shaders = "21"
shader0 = "shaders/crt-maximus-royale/src/H_blur.slang" shader0 = ../stock.slang
filter_linear0 = "false" alias0 = maximus_refpass
srgb_framebuffer0 = "true"
scale_type0 = "source"
scale0 = "0.5"
shader1 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang" shader1 = "shaders/crt-maximus-royale/src/H_blur.slang"
filter_linear1 = "true" filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
alias1 = "ORIG_LINEARIZED"
srgb_framebuffer1 = "true" srgb_framebuffer1 = "true"
scale_type1 = "source" 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" filter_linear2 = "true"
wrap_mode2 = "clamp_to_border" wrap_mode2 = "clamp_to_border"
alias2 = "ORIG_LINEARIZED"
srgb_framebuffer2 = "true" srgb_framebuffer2 = "true"
scale_type_x2 = "source" scale_type2 = "source"
scale_type_y2 = "source" scale2 = "1.0"
scale_x2 = "1.0"
scale_y2 = "3.0"
shader3 = "shaders/crt-maximus-royale/src/resize.slang" shader3 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
filter_linear3 = "true" filter_linear3 = "true"
alias3 = "VERTICAL_SCANLINES" wrap_mode3 = "clamp_to_border"
srgb_framebuffer3 = "true" srgb_framebuffer3 = "true"
scale_type_x3 = "source" scale_type_x3 = "source"
scale_type_y3 = "viewport" scale_type_y3 = "source"
scale_x3 = "1.0" 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" filter_linear4 = "true"
wrap_mode4 = "clamp_to_border" alias4 = "VERTICAL_SCANLINES"
srgb_framebuffer4 = "true" srgb_framebuffer4 = "true"
scale_type_x4 = "absolute" scale_type_x4 = "source"
scale_type_y4 = "absolute" scale_type_y4 = "viewport"
scale_x4 = "320" scale_x4 = "1.0"
scale_y4 = "240" 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" filter_linear5 = "true"
alias5 = "BLOOM_APPROX" wrap_mode5 = "clamp_to_border"
srgb_framebuffer5 = "true" srgb_framebuffer5 = "true"
scale_type5 = "source" scale_type_x5 = "absolute"
scale5 = "1.0" 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" filter_linear6 = "true"
wrap_mode6 = "clamp_to_border" alias6 = "BLOOM_APPROX"
srgb_framebuffer6 = "true" srgb_framebuffer6 = "true"
scale_type6 = "source" scale_type6 = "source"
scale6 = "1.0" scale6 = "1.0"
shader7 = "../blurs/shaders/royale/blur9fast-horizontal.slang" shader7 = "../blurs/shaders/royale/blur9fast-vertical.slang"
filter_linear7 = "true" filter_linear7 = "true"
wrap_mode7 = "clamp_to_border" wrap_mode7 = "clamp_to_border"
alias7 = "HALATION_BLUR"
srgb_framebuffer7 = "true" srgb_framebuffer7 = "true"
scale_type7 = "source" scale_type7 = "source"
scale7 = "1.0" scale7 = "1.0"
shader8 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang" shader8 = "../blurs/shaders/royale/blur9fast-horizontal.slang"
filter_linear8 = "true" filter_linear8 = "true"
wrap_mode8 = "clamp_to_border" wrap_mode8 = "clamp_to_border"
srgb_framebuffer8 = "false" alias8 = "HALATION_BLUR"
scale_type_x8 = "absolute" srgb_framebuffer8 = "true"
scale_type_y8 = "viewport" scale_type8 = "source"
scale_x8 = "128" scale8 = "1.0"
scale_y8 = "0.975"
shader9 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang" shader9 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang"
filter_linear9 = "false" filter_linear9 = "true"
wrap_mode9 = "clamp_to_border" wrap_mode9 = "clamp_to_border"
alias9 = "MASK_RESIZE" srgb_framebuffer9 = "false"
srgb_framebuffer9 = "true" scale_type_x9 = "absolute"
scale_type_x9 = "viewport" scale_type_y9 = "viewport"
scale_type_y9 = "source" scale_x9 = "128"
scale_x9 = "0.73125" scale_y9 = "0.975"
scale_y9 = "1.0"
shader10 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang" shader10 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
filter_linear10 = "true" filter_linear10 = "false"
wrap_mode10 = "clamp_to_edge" wrap_mode10 = "clamp_to_border"
alias10 = "MASKED_SCANLINES" alias10 = "MASK_RESIZE"
srgb_framebuffer10 = "true" srgb_framebuffer10 = "true"
scale_type10 = "source" scale_type_x10 = "viewport"
scale10 = "1.0" 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" filter_linear11 = "true"
wrap_mode11 = "clamp_to_border" wrap_mode11 = "clamp_to_edge"
alias11 = "BRIGHTPASS" alias11 = "MASKED_SCANLINES"
srgb_framebuffer11 = "true" srgb_framebuffer11 = "true"
scale_type11 = "source" scale_type11 = "source"
scale11 = "1.0" 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" filter_linear12 = "true"
wrap_mode12 = "clamp_to_border" wrap_mode12 = "clamp_to_border"
alias12 = "BRIGHTPASS"
srgb_framebuffer12 = "true" srgb_framebuffer12 = "true"
scale_type12 = "source" scale_type12 = "source"
scale12 = "1.0" 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" filter_linear13 = "true"
wrap_mode13 = "clamp_to_border" wrap_mode13 = "clamp_to_border"
srgb_framebuffer13 = "true" srgb_framebuffer13 = "true"
scale_type13 = "source" scale_type13 = "source"
scale13 = "1.0" 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" filter_linear14 = "true"
alias14 = "LAST_PASS" wrap_mode14 = "clamp_to_border"
mipmap_input14 = "true"
srgb_framebuffer14 = "true" srgb_framebuffer14 = "true"
scale_type14 = "source" scale_type14 = "source"
scale14 = "1.0" 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" filter_linear15 = "true"
alias15 = "BORDER_REFLECTION" alias15 = "LAST_PASS"
wrap_mode15 = "clamp_to_border" mipmap_input15 = "true"
srgb_framebuffer15 = "false" srgb_framebuffer15 = "true"
scale_type_x15 = "absolute" scale_type15 = "source"
scale_type_y15 = "absolute" scale15 = "1.0"
scale_x15 = "160"
scale_y15 = "120"
shader16 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang" shader16 = "shaders/crt-maximus-royale/src/crt_reflect.slang"
filter_linear16 = "false" filter_linear16 = "true"
alias16 = "BORDER_REFLECTION"
wrap_mode16 = "clamp_to_border" wrap_mode16 = "clamp_to_border"
alias16 = "BGPASS1"
srgb_framebuffer16 = "false" srgb_framebuffer16 = "false"
scale_type_x16 = "absolute" scale_type_x16 = "absolute"
scale_type_y16 = "absolute" scale_type_y16 = "absolute"
scale_x16 = "1.0" scale_x16 = "160"
scale_y16 = "100.0" scale_y16 = "120"
shader17 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang" shader17 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang"
filter_linear17 = "false" filter_linear17 = "false"
wrap_mode17 = "clamp_to_border" wrap_mode17 = "clamp_to_border"
alias17 = "BGPASS2" alias17 = "BGPASS1"
srgb_framebuffer17 = "false" srgb_framebuffer17 = "false"
scale_type17 = "absolute" scale_type_x17 = "absolute"
scale17 = "1.0" scale_type_y17 = "absolute"
scale_x17 = "1.0"
scale_y17 = "100.0"
shader18 = "shaders/crt-maximus-royale/src/imgborder.slang" shader18 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang"
filter_linear18 = "true" filter_linear18 = "false"
wrap_mode18 = "clamp_to_border" wrap_mode18 = "clamp_to_border"
scale_type18 = "viewport" alias18 = "BGPASS2"
srgb_framebuffer18 = "false"
scale_type18 = "absolute"
scale18 = "1.0" scale18 = "1.0"
shader19 = "shaders/crt-maximus-royale/src/tv_reflection.slang" shader19 = "shaders/crt-maximus-royale/src/imgborder.slang"
filter_linear19 = "true" filter_linear19 = "true"
wrap_mode19 = "clamp_to_border" wrap_mode19 = "clamp_to_border"
scale_type19 = "source" scale_type19 = "viewport"
scale19 = "1.0" 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" crt_gamma = "1.7"
lcd_gamma = "1.2" lcd_gamma = "1.2"
diffusion_weight = "0.3" diffusion_weight = "0.3"

View file

@ -1,191 +1,194 @@
shaders = "23" shaders = "24"
shader0 = "shaders/crt-maximus-royale/src/horizontal_ringing.slang" shader0 = ../stock.slang
filter_linear0 = "false" alias0 = maximus_refpass
srgb_framebuffer0 = "true"
scale_type0 = "source"
scale_x0 = "4.0"
scale_y0 = "1.0"
shader1 = "shaders/crt-maximus-royale/src/ntsc_pass1.slang" shader1 = "shaders/crt-maximus-royale/src/horizontal_ringing.slang"
filter_linear1 = "false" filter_linear1 = "false"
frame_count_mod1 = "2" srgb_framebuffer1 = "true"
float_framebuffer1 = "true" scale_type1 = "source"
scale_type_x1 = "source"
scale_type_y1 = "source"
scale_x1 = "4.0" scale_x1 = "4.0"
scale_y1 = "1.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" filter_linear2 = "false"
frame_count_mod2 = "2"
float_framebuffer2 = "true"
scale_type_x2 = "source" scale_type_x2 = "source"
scale_type_y2 = "source" scale_type_y2 = "source"
scale_x2 = "0.25" scale_x2 = "4.0"
scale_y2 = "1.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" filter_linear3 = "false"
srgb_framebuffer3 = "true" scale_type_x3 = "source"
scale_type3 = "source" scale_type_y3 = "source"
scale3 = "1.0" scale_x3 = "0.25"
scale_y3 = "1.0"
shader4 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang" shader4 = "shaders/crt-maximus-royale/src/H_blur.slang"
filter_linear4 = "true" filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
alias4 = "ORIG_LINEARIZED"
srgb_framebuffer4 = "true" srgb_framebuffer4 = "true"
scale_type4 = "source" scale_type4 = "source"
scale4 = "1.0" 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" filter_linear5 = "true"
wrap_mode5 = "clamp_to_border" wrap_mode5 = "clamp_to_border"
alias5 = "ORIG_LINEARIZED"
srgb_framebuffer5 = "true" srgb_framebuffer5 = "true"
scale_type_x5 = "source" scale_type5 = "source"
scale_type_y5 = "source" scale5 = "1.0"
scale_x5 = "1.0"
scale_y5 = "6.0"
shader6 = "shaders/crt-maximus-royale/src/resize.slang" shader6 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
filter_linear6 = "true" filter_linear6 = "true"
alias6 = "VERTICAL_SCANLINES" wrap_mode6 = "clamp_to_border"
srgb_framebuffer6 = "true" srgb_framebuffer6 = "true"
scale_type_x6 = "source" scale_type_x6 = "source"
scale_type_y6 = "viewport" scale_type_y6 = "source"
scale_x6 = "1.0" 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" filter_linear7 = "true"
wrap_mode7 = "clamp_to_border" alias7 = "VERTICAL_SCANLINES"
srgb_framebuffer7 = "true" srgb_framebuffer7 = "true"
scale_type_x7 = "absolute" scale_type_x7 = "source"
scale_type_y7 = "absolute" scale_type_y7 = "viewport"
scale_x7 = "320" scale_x7 = "1.0"
scale_y7 = "240" 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" filter_linear8 = "true"
alias8 = "BLOOM_APPROX"
wrap_mode8 = "clamp_to_border" wrap_mode8 = "clamp_to_border"
srgb_framebuffer8 = "true" srgb_framebuffer8 = "true"
scale_type8 = "source" scale_type_x8 = "absolute"
scale8 = "1.0" 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" filter_linear9 = "true"
alias9 = "BLOOM_APPROX"
wrap_mode9 = "clamp_to_border" wrap_mode9 = "clamp_to_border"
srgb_framebuffer9 = "true" srgb_framebuffer9 = "true"
scale_type9 = "source" scale_type9 = "source"
scale9 = "1.0" scale9 = "1.0"
shader10 = "../blurs/shaders/royale/blur9fast-horizontal.slang" shader10 = "../blurs/shaders/royale/blur9fast-vertical.slang"
filter_linear10 = "true" filter_linear10 = "true"
wrap_mode10 = "clamp_to_border" wrap_mode10 = "clamp_to_border"
alias10 = "HALATION_BLUR" srgb_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type10 = "source" scale_type10 = "source"
scale10 = "1.0" scale10 = "1.0"
shader11 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang" shader11 = "../blurs/shaders/royale/blur9fast-horizontal.slang"
filter_linear11 = "true" filter_linear11 = "true"
wrap_mode11 = "clamp_to_border" wrap_mode11 = "clamp_to_border"
alias11 = "HALATION_BLUR"
srgb_framebuffer11 = "false" srgb_framebuffer11 = "false"
scale_type_x11 = "absolute" scale_type11 = "source"
scale_type_y11 = "viewport" scale11 = "1.0"
scale_x11 = "128"
scale_y11 = "0.975"
shader12 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang" shader12 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang"
filter_linear12 = "false" filter_linear12 = "true"
wrap_mode12 = "clamp_to_border" wrap_mode12 = "clamp_to_border"
alias12 = "MASK_RESIZE" srgb_framebuffer12 = "false"
srgb_framebuffer12 = "true" scale_type_x12 = "absolute"
scale_type_x12 = "viewport" scale_type_y12 = "viewport"
scale_type_y12 = "source" scale_x12 = "128"
scale_x12 = "0.73125" scale_y12 = "0.975"
scale_y12 = "2.0"
shader13 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang" shader13 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
filter_linear13 = "true" filter_linear13 = "false"
wrap_mode13 = "clamp_to_edge" wrap_mode13 = "clamp_to_border"
alias13 = "MASKED_SCANLINES" alias13 = "MASK_RESIZE"
srgb_framebuffer13 = "true" srgb_framebuffer13 = "true"
scale_type13 = "source" scale_type_x13 = "viewport"
scale13 = "1.0" 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" filter_linear14 = "true"
wrap_mode14 = "clamp_to_border" wrap_mode14 = "clamp_to_edge"
alias14 = "BRIGHTPASS" alias14 = "MASKED_SCANLINES"
srgb_framebuffer14 = "true" srgb_framebuffer14 = "true"
scale_type14 = "source" scale_type14 = "source"
scale14 = "1.0" 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" filter_linear15 = "true"
wrap_mode15 = "clamp_to_border" wrap_mode15 = "clamp_to_border"
alias15 = "BRIGHTPASS"
srgb_framebuffer15 = "true" srgb_framebuffer15 = "true"
scale_type15 = "source" scale_type15 = "source"
scale15 = "1.0" 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" filter_linear16 = "true"
wrap_mode16 = "clamp_to_border" wrap_mode16 = "clamp_to_border"
srgb_framebuffer16 = "true" srgb_framebuffer16 = "true"
scale_type16 = "source" scale_type16 = "source"
scale16 = "1.0" 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" filter_linear17 = "true"
alias17 = "LAST_PASS" wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
srgb_framebuffer17 = "true" srgb_framebuffer17 = "true"
scale_type_x17 = "source" scale_type17 = "source"
scale_type_y17 = "source" scale17 = "1.0"
scale_x17 = "1.0"
scale_y17 = "0.5"
shader18 = "shaders/crt-maximus-royale/src/crt_reflect.slang" shader18 = "shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang"
filter_linear18 = "true" filter_linear18 = "true"
alias18 = "BORDER_REFLECTION" alias18 = "LAST_PASS"
wrap_mode18 = "clamp_to_border" mipmap_input18 = "false"
srgb_framebuffer18 = "false" srgb_framebuffer18 = "true"
scale_type_x18 = "absolute" scale_type_x18 = "source"
scale_type_y18 = "absolute" scale_type_y18 = "source"
scale_x18 = "160" scale_x18 = "1.0"
scale_y18 = "120" scale_y18 = "0.5"
shader19 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang" shader19 = "shaders/crt-maximus-royale/src/crt_reflect.slang"
filter_linear19 = "false" filter_linear19 = "true"
alias19 = "BORDER_REFLECTION"
wrap_mode19 = "clamp_to_border" wrap_mode19 = "clamp_to_border"
alias19 = "BGPASS1"
srgb_framebuffer19 = "false" srgb_framebuffer19 = "false"
scale_type_x19 = "absolute" scale_type_x19 = "absolute"
scale_type_y19 = "absolute" scale_type_y19 = "absolute"
scale_x19 = "1.0" scale_x19 = "160"
scale_y19 = "100.0" scale_y19 = "120"
shader20 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang" shader20 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang"
filter_linear20 = "false" filter_linear20 = "false"
wrap_mode20 = "clamp_to_border" wrap_mode20 = "clamp_to_border"
alias20 = "BGPASS2" alias20 = "BGPASS1"
srgb_framebuffer20 = "false" srgb_framebuffer20 = "false"
scale_type20 = "absolute" scale_type_x20 = "absolute"
scale20 = "1.0" scale_type_y20 = "absolute"
scale_x20 = "1.0"
scale_y20 = "100.0"
shader21 = "shaders/crt-maximus-royale/src/imgborder.slang" shader21 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang"
filter_linear21 = "true" filter_linear21 = "false"
wrap_mode21 = "clamp_to_border" wrap_mode21 = "clamp_to_border"
scale_type21 = "viewport" alias21 = "BGPASS2"
srgb_framebuffer21 = "false"
scale_type21 = "absolute"
scale21 = "1.0" scale21 = "1.0"
shader22 = "shaders/crt-maximus-royale/src/tv_reflection.slang" shader22 = "shaders/crt-maximus-royale/src/imgborder.slang"
filter_linear22 = "true" filter_linear22 = "true"
wrap_mode22 = "clamp_to_border" wrap_mode22 = "clamp_to_border"
scale_type22 = "source" scale_type22 = "viewport"
scale22 = "1.0" 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" crt_gamma = "1.7"
lcd_gamma = "1.2" lcd_gamma = "1.2"
diffusion_weight = "0.3" diffusion_weight = "0.3"

View file

@ -27,7 +27,7 @@
layout(push_constant) uniform Push layout(push_constant) uniform Push
{ {
vec4 SourceSize; vec4 SourceSize;
vec4 OriginalSize; vec4 crt_interlaced_halation_refpassSize;
vec4 OutputSize; vec4 OutputSize;
uint FrameCount; uint FrameCount;
} params; } params;
@ -66,9 +66,9 @@ layout(std140, set = 0, binding = 0) uniform UBO
#define PI 3.141592653589 #define PI 3.141592653589
#ifdef LINEAR_PROCESSING #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 #else
# define TEX2D(c) texture(Original, (c)) # define TEX2D(c) texture(crt_interlaced_halation_refpass, (c))
#endif #endif
@ -204,10 +204,10 @@ void main()
#endif #endif
// The size of one texel, in texture-coordinates. // 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. // 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 #pragma stage fragment
@ -220,7 +220,7 @@ layout(location = 5) in vec2 sinangle;
layout(location = 6) in vec2 cosangle; layout(location = 6) in vec2 cosangle;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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) #define mul(a, b) (b * a)

View file

@ -48,11 +48,11 @@ void main()
#pragma stage fragment #pragma stage fragment
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; 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() void main()
{ {
vec3 BColor = vec3(0.0).rgb; 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; FragColor = vec4(BColor/50, 1.0).rgba;
} }

View file

@ -59,7 +59,7 @@ layout(location = 1) in vec2 screen_coord;
layout(location = 2) in vec2 resize_coord; layout(location = 2) in vec2 resize_coord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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() 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; } 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 FragColor = lightSource; //final output
} }

View file

@ -37,11 +37,11 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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() void main()
{ {
vec4 trails = texture(Source, vTexCoord).rgba; 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))); FragColor = vec4(pow(current + vec4(clamp(trails.r - current.r, 0.0, 1.0) * params.trail_bright), vec4(1.0 / 2.2)));
} }

View file

@ -52,7 +52,7 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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) #define iTime (float(params.FrameCount) / 60.0)
const vec3 iMouse = vec3(0.0); const vec3 iMouse = vec3(0.0);
@ -294,10 +294,10 @@ void main()
vec2 uvC, uvS, uvE; vec2 uvC, uvS, uvE;
uvC = getCurves(fragCoord, 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); 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 = pow(image.rgb, vec3(2.5/2.2)); //CRT-like gamma correction
image.rgb = scanline(image.rgb, uvC.xy); //apply scanlines 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 FragColor = (global.ntsc_toggle > 0.5) ? bezelGen(Source, fragCoord.xy, image) : bezelGen(vt220_refpass, fragCoord.xy, image); //apply bezel
} }

View file

@ -1,21 +1,24 @@
shaders = 3 shaders = 4
shader0 = ../ntsc/shaders/ntsc-adaptive/ntsc-pass1.slang shader0 = ../stock.slang
scale_type0 = source alias0 = vt220_refpass
scale_x0 = 4.0
filter_linear0 = false
scale_y0 = 1.0
float_framebuffer0 = true
shader1 = ../ntsc/shaders/ntsc-adaptive/ntsc-pass2.slang shader1 = ../ntsc/shaders/ntsc-adaptive/ntsc-pass1.slang
scale_type1 = source scale_type1 = source
scale_x1 = 0.5 scale_x1 = 4.0
scale_y1 = 1.0
filter_linear1 = false filter_linear1 = false
scale_y1 = 1.0
float_framebuffer1 = true
shader2 = shaders/vt220/vt220.slang shader2 = ../ntsc/shaders/ntsc-adaptive/ntsc-pass2.slang
mipmap_input2 = true scale_type2 = source
wrap_mode2 = mirrored_repeat 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" parameters = "quality"
quality = 1.0 quality = 1.0

View file

@ -1,26 +1,29 @@
shaders = 5 shaders = 6
shader0 = shaders/mdapt/passes/mdapt-pass0.slang shader0 = ../stock.slang
filter_linear0 = false alias0 = mdapt_refpass
scale_type0 = source
scale0 = 1.0
shader1 = shaders/mdapt/passes/mdapt-pass1.slang shader1 = shaders/mdapt/passes/mdapt-pass0.slang
filter_linear1 = false filter_linear1 = false
scale_type1 = source scale_type1 = source
scale1 = 1.0 scale1 = 1.0
shader2 = shaders/mdapt/passes/mdapt-pass2.slang shader2 = shaders/mdapt/passes/mdapt-pass1.slang
filter_linear2 = false filter_linear2 = false
scale_type2 = source scale_type2 = source
scale2 = 1.0 scale2 = 1.0
shader3 = shaders/mdapt/passes/mdapt-pass3.slang shader3 = shaders/mdapt/passes/mdapt-pass2.slang
filter_linear3 = false filter_linear3 = false
scale_type3 = source scale_type3 = source
scale3 = 1.0 scale3 = 1.0
shader4 = shaders/mdapt/passes/mdapt-pass4.slang shader4 = shaders/mdapt/passes/mdapt-pass3.slang
filter_linear4 = false filter_linear4 = false
scale_type4 = source scale_type4 = source
scale4 = 1.0 scale4 = 1.0
shader5 = shaders/mdapt/passes/mdapt-pass4.slang
filter_linear5 = false
scale_type5 = source
scale5 = 1.0

View file

@ -22,7 +22,7 @@ layout(std140, set = 0, binding = 0) uniform UBO
} global; } global;
#define TEX(dx,dy) texture(Source, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw) #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){ bool eq(vec3 A, vec3 B){
return (A == B); return (A == B);
@ -63,7 +63,7 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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() void main()
{ {

View file

@ -45,10 +45,10 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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 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){ 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)); 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){ 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)); if(params.linear_gamma > 0.5) return pow(texture(mdapt_refpass, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw), vec4(2.2));
else return texture(Original, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw); else return texture(mdapt_refpass, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw);
} }
bool eq(vec3 A, vec3 B){ bool eq(vec3 A, vec3 B){

View file

@ -1,13 +1,16 @@
# This shader requires 16:9 aspect ratio # This shader requires 16:9 aspect ratio
# and integer scaling OFF # and integer scaling OFF
shaders = 2 shaders = 3
shader0 = ../sabr/shaders/sabr-v3.0.slang shader0 = ../stock.slang
filter_linear0 = false alias0 = ds_hybrid_view_refpass
scale_type0 = source
scale0 = 2.0
alias0 = Ref
shader1 = shaders/ds-hybrid-view.slang shader1 = ../sabr/shaders/sabr-v3.0.slang
filter_linear1 = true filter_linear1 = false
scale_type1 = source
scale1 = 2.0
alias1 = Ref
shader2 = shaders/ds-hybrid-view.slang
filter_linear2 = true

View file

@ -34,7 +34,7 @@ shader5 = ../scalefx/shaders/scalefx-pass4.slang
filter_linear5 = false filter_linear5 = false
scale_type5 = source scale_type5 = source
scale5 = 3.0 scale5 = 3.0
alias5 = Ref alias5 = ds_hybrid_view_refpass
shader6 = shaders/ds-hybrid-view.slang shader6 = shaders/ds-hybrid-view.slang
filter_linear6 = true filter_linear6 = true

View file

@ -14,7 +14,7 @@
layout(push_constant) uniform Push layout(push_constant) uniform Push
{ {
vec4 OriginalSize; vec4 ds_hybrid_view_refpassSize;
vec4 OutputSize; vec4 OutputSize;
float screen_toggle; float screen_toggle;
float show_both_screens; float show_both_screens;
@ -43,9 +43,9 @@ void main()
{ {
gl_Position = (global.MVP * Position); gl_Position = (global.MVP * Position);
// screen gap setting increases fb size; modulo at original res to compensate // screen gap setting increases fb size; modulo at original res to compensate
float screen_gap = mod(params.OriginalSize.y, 192.0); float screen_gap = mod(params.ds_hybrid_view_refpassSize.y, 192.0);
ScaledScreenGap = screen_gap * params.OriginalSize.w; ScaledScreenGap = screen_gap * params.ds_hybrid_view_refpassSize.w;
HalfScaledScreenGap = (screen_gap * 0.5) * params.OriginalSize.w; HalfScaledScreenGap = (screen_gap * 0.5) * params.ds_hybrid_view_refpassSize.w;
VerticalAlignmentAdjustment = -0.25 + ((screen_gap * 0.5) * params.OutputSize.w); VerticalAlignmentAdjustment = -0.25 + ((screen_gap * 0.5) * params.OutputSize.w);
vTexCoord = TexCoord * 1.00001; vTexCoord = TexCoord * 1.00001;
vTexCoord *= vec2(1.333, 0.5 - HalfScaledScreenGap); 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 = 2) in float HalfScaledScreenGap;
layout(location = 3) in float VerticalAlignmentAdjustment; layout(location = 3) in float VerticalAlignmentAdjustment;
layout(location = 0) out vec4 FragColor; 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; layout(set = 0, binding = 3) uniform sampler2D Source;
vec2 ignoreScreenGap(vec2 coord) 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 bigCoord = vTexCoord + vec2(0., (params.screen_toggle > 0.5) ? 0.5 + HalfScaledScreenGap : 0.);
vec2 smallCoord = vTexCoord * vec2(3.) + vec2(-3., VerticalAlignmentAdjustment); vec2 smallCoord = vTexCoord * vec2(3.) + vec2(-3., VerticalAlignmentAdjustment);
FragColor = texture(Source, bigCoord); 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));
} }

View file

@ -1,7 +1,11 @@
shaders = 2 shaders = 3
shader0 = shader-files/hq2x-halphon.slang
shader1 = ../stock.slang
filter_linear0 = false shader0 = ../stock.slang
scale_type0 = source alias0 = hqx_refpass
scale0 = 2.0
shader1 = shaders/hq2x-halphon.slang
shader2 = ../stock.slang
filter_linear1 = false
scale_type1 = source
scale1 = 2.0

View file

@ -1,23 +1,26 @@
shaders = 4 shaders = 5
shader0 = shader-files/pass1.slang
shader1 = shader-files/hq2x.slang
filter_linear0 = false shader0 = ../stock.slang
scale_type0 = source alias0 = hqx_refpass
scale0 = 1.0 shader1 = shaders/pass1.slang
shader2 = shaders/hq2x.slang
filter_linear1 = false filter_linear1 = false
scale_type1 = source scale_type1 = source
scale1 = 2.0 scale1 = 1.0
shader2 = ../cubic/shaders/bicubic-x.slang
filter_linear2 = false filter_linear2 = false
scale_type_x2 = viewport scale_type2 = source
scale_type_y2 = source scale2 = 2.0
scale2 = 1.0
shader3 = ../cubic/shaders/bicubic-y.slang shader3 = ../cubic/shaders/bicubic-x.slang
filter_linear3 = false 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 textures = LUT
LUT = resources/hq2x.png LUT = resources/hq2x.png

View file

@ -1,23 +1,26 @@
shaders = 4 shaders = 5
shader0 = shader-files/pass1.slang
shader1 = shader-files/hq3x.slang
filter_linear0 = false shader0 = ../stock.slang
scale_type0 = source alias0 = hqx_refpass
scale0 = 1.0 shader1 = shaders/pass1.slang
shader2 = shaders/hq3x.slang
filter_linear1 = false filter_linear1 = false
scale_type1 = source scale_type1 = source
scale1 = 3.0 scale1 = 1.0
shader2 = ../cubic/shaders/b-spline-x.slang
filter_linear2 = false filter_linear2 = false
scale_type_x2 = viewport scale_type2 = source
scale_type_y2 = source scale2 = 3.0
scale2 = 1.0
shader3 = ../cubic/shaders/b-spline-y.slang shader3 = ../cubic/shaders/b-spline-x.slang
filter_linear3 = false 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 textures = LUT

View file

@ -1,23 +1,26 @@
shaders = 4 shaders = 5
shader0 = shader-files/pass1.slang
shader1 = shader-files/hq4x.slang
filter_linear0 = false shader0 = ../stock.slang
scale_type0 = source alias0 = hqx_refpass
scale0 = 1.0 shader1 = shaders/pass1.slang
shader2 = shaders/hq4x.slang
filter_linear1 = false filter_linear1 = false
scale_type1 = source scale_type1 = source
scale1 = 4.0 scale1 = 1.0
shader2 = ../cubic/shaders/b-spline-x.slang
filter_linear2 = false filter_linear2 = false
scale_type_x2 = viewport scale_type2 = source
scale_type_y2 = source scale2 = 4.0
scale2 = 1.0
shader3 = ../cubic/shaders/b-spline-y.slang shader3 = ../cubic/shaders/b-spline-x.slang
filter_linear3 = false 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 textures = LUT
LUT = resources/hq4x.png LUT = resources/hq4x.png

View file

@ -36,7 +36,7 @@ layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; layout(set = 0, binding = 2) uniform sampler2D Source;
layout(set = 0, binding = 3) uniform sampler2D LUT; 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() void main()
{ {
@ -46,10 +46,10 @@ void main()
float dx = registers.SourceSize.z; float dx = registers.SourceSize.z;
float dy = registers.SourceSize.w; float dy = registers.SourceSize.w;
vec3 p1 = texture(Original, vTexCoord).rgb; vec3 p1 = texture(hqx_refpass, vTexCoord).rgb;
vec3 p2 = texture(Original, vTexCoord + vec2(dx, dy) * quad).rgb; vec3 p2 = texture(hqx_refpass, vTexCoord + vec2(dx, dy) * quad).rgb;
vec3 p3 = texture(Original, vTexCoord + vec2(dx, 0.0) * quad).rgb; vec3 p3 = texture(hqx_refpass, vTexCoord + vec2(dx, 0.0) * quad).rgb;
vec3 p4 = texture(Original, vTexCoord + vec2(0.0, dy) * quad).rgb; vec3 p4 = texture(hqx_refpass, vTexCoord + vec2(0.0, dy) * quad).rgb;
vec3 pixels[4]; vec3 pixels[4];
pixels[0] = p1.xyz; pixels[0] = p1.xyz;
pixels[1] = p2.xyz; pixels[1] = p2.xyz;

View file

@ -1,23 +1,26 @@
shaders = 4 shaders = 5
shader0 = ../stock.slang shader0 = ../stock.slang
scale_x0 = "640.0" alias0 = artifact_colors_refpass
scale_type_x0 = absolute
shader1 = ../ntsc/shaders/artifact-colors/artifact-colors0.slang shader1 = ../stock.slang
scale1 = 1.0 scale_x1 = "640.0"
scale_type1 = source scale_type_x1 = absolute
filter_linear1 = false
alias1 = Pass1
shader2 = ../ntsc/shaders/artifact-colors/artifact-colors1.slang shader2 = ../ntsc/shaders/artifact-colors/artifact-colors0.slang
scale2 = 1.0 scale2 = 1.0
scale_type2 = source scale_type2 = source
filter_linear2 = false filter_linear2 = false
alias2 = Pass2 alias2 = Pass1
float_framebuffer2 = true
shader3 = ../ntsc/shaders/artifact-colors/artifact-colors2.slang shader3 = ../ntsc/shaders/artifact-colors/artifact-colors1.slang
scale3 = 1.0 scale3 = 1.0
scale_type3 = source scale_type3 = source
filter_linear3 = false 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

View file

@ -52,7 +52,7 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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 = 4) uniform sampler2D Pass2;
layout(set = 0, binding = 5) uniform sampler2D Pass1; layout(set = 0, binding = 5) uniform sampler2D Pass1;
@ -155,7 +155,7 @@ void main()
FragColor = vec4(color, 0.); FragColor = vec4(color, 0.);
#elif(VIEW_MODE == RGB) #elif(VIEW_MODE == RGB)
FragColor = texture(Original, uv / params.SourceSize.xy); FragColor = texture(artifact_colors_refpass, uv / params.SourceSize.xy);
#elif(VIEW_MODE == LUMA) #elif(VIEW_MODE == LUMA)
FragColor = vec4(luma); FragColor = vec4(luma);

View file

@ -1,69 +1,65 @@
shaders = 15 shaders = 16
shader0 = ../dithering/shaders/mdapt/passes/mdapt-pass0.slang shader0 = ../stock.slang
filter_linear0 = false alias0 = mdapt_refpass
scale_type0 = source
scale0 = 1.0
shader1 = ../dithering/shaders/mdapt/passes/mdapt-pass1.slang shader1 = ../dithering/shaders/mdapt/passes/mdapt-pass0.slang
filter_linear1 = false filter_linear1 = false
scale_type1 = source scale_type1 = source
scale1 = 1.0 scale1 = 1.0
shader2 = ../dithering/shaders/mdapt/passes/mdapt-pass2.slang shader2 = ../dithering/shaders/mdapt/passes/mdapt-pass1.slang
filter_linear2 = false filter_linear2 = false
scale_type2 = source scale_type2 = source
scale2 = 1.0 scale2 = 1.0
shader3 = ../dithering/shaders/mdapt/passes/mdapt-pass3.slang shader3 = ../dithering/shaders/mdapt/passes/mdapt-pass2.slang
filter_linear3 = false filter_linear3 = false
scale_type3 = source scale_type3 = source
scale3 = 1.0 scale3 = 1.0
shader4 = ../dithering/shaders/mdapt/passes/mdapt-pass4.slang shader4 = ../dithering/shaders/mdapt/passes/mdapt-pass3.slang
filter_linear4 = false filter_linear4 = false
scale_type4 = source scale_type4 = source
scale4 = 1.0 scale4 = 1.0
shader5 = ../dithering/shaders/mdapt/passes/mdapt-pass4.slang shader5 = ../dithering/shaders/mdapt/passes/mdapt-pass4.slang
filter_linear4 = false filter_linear5 = false
scale_type4 = source scale_type5 = source
scale4 = 1.0 scale5 = 1.0
shader6 = "../denoisers/shaders/fast-bilateral.slang" shader6 = ../dithering/shaders/mdapt/passes/mdapt-pass4.slang
filter_linear6 = "false" filter_linear6 = false
wrap_mode6 = "clamp_to_edge" scale_type6 = source
scale_type_x6 = "source" scale6 = 1.0
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang" shader7 = "../denoisers/shaders/fast-bilateral.slang"
filter_linear7 = "false" filter_linear7 = "false"
wrap_mode7 = "clamp_to_edge" wrap_mode7 = "clamp_to_edge"
scale_type_x7 = "source" scale_type_x7 = "source"
scale_x7 = "1.000000" scale_x7 = "1.000000"
scale_type_y7 = "source" scale_type_y7 = "source"
scale_y7 = "1.000000" 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" filter_linear8 = "false"
wrap_mode8 = "clamp_to_edge" wrap_mode8 = "clamp_to_edge"
scale_type_x8 = "source" scale_type_x8 = "source"
scale_x8 = "2.000000" scale_x8 = "1.000000"
scale_type_y8 = "source" scale_type_y8 = "source"
scale_y8 = "2.000000" scale_y8 = "1.000000"
alias8 = "PassPrev2"
shader9 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang" shader9 = "../xbr/shaders/super-xbr/super-xbr-pass1.slang"
filter_linear9 = "false" filter_linear9 = "false"
wrap_mode9 = "clamp_to_edge" wrap_mode9 = "clamp_to_edge"
scale_type_x9 = "source" scale_type_x9 = "source"
scale_x9 = "1.000000" scale_x9 = "2.000000"
scale_type_y9 = "source" 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" filter_linear10 = "false"
wrap_mode10 = "clamp_to_edge" wrap_mode10 = "clamp_to_edge"
scale_type_x10 = "source" scale_type_x10 = "source"
@ -71,25 +67,33 @@ scale_x10 = "1.000000"
scale_type_y10 = "source" scale_type_y10 = "source"
scale_y10 = "1.000000" 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" filter_linear11 = "false"
wrap_mode11 = "clamp_to_edge" wrap_mode11 = "clamp_to_edge"
scale_type_x11 = "source" scale_type_x11 = "source"
scale_x11 = "2.000000" scale_x11 = "1.000000"
scale_type_y11 = "source" 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" filter_linear12 = "false"
wrap_mode12 = "clamp_to_edge" wrap_mode12 = "clamp_to_edge"
scale_type_x12 = "source" scale_type_x12 = "source"
scale_x12 = "1.000000" scale_x12 = "2.000000"
scale_type_y12 = "source" 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 shader14 = ../stock.slang
filter_linear14 = false
scale_type14 = source shader15 = ../scanlines/shaders/scanline.slang
scale14 = 1.0 filter_linear15 = false
scale_type15 = source
scale15 = 1.0

View file

@ -1,49 +1,52 @@
shaders = 8 shaders = 9
shader0 = shaders/old/scalefx-pass0.slang shader0 = ../stock.slang
filter_linear0 = false alias0 = scalefx_old_refpass
scale_type0 = source
scale0 = 1.0
alias0 = sfxp0
shader1 = shaders/old/scalefx-pass1.slang shader1 = shaders/old/scalefx-pass0.slang
filter_linear1 = false filter_linear1 = false
scale_type1 = source scale_type1 = source
scale1 = 1.0 scale1 = 1.0
alias1 = sfxp1 alias1 = sfxp0
shader2 = shaders/old/scalefx-pass2.slang shader2 = shaders/old/scalefx-pass1.slang
filter_linear2 = false filter_linear2 = false
scale_type2 = source scale_type2 = source
scale2 = 1.0 scale2 = 1.0
alias2 = sfxp2 alias2 = sfxp1
shader3 = shaders/old/scalefx-pass3.slang shader3 = shaders/old/scalefx-pass2.slang
filter_linear3 = false filter_linear3 = false
scale_type3 = source scale_type3 = source
scale3 = 3.0 scale3 = 1.0
alias3 = sfxp3 alias3 = sfxp2
shader4 = shaders/old/scalefx-pass0.slang shader4 = shaders/old/scalefx-pass3.slang
filter_linear4 = false filter_linear4 = false
scale_type4 = source scale_type4 = source
scale4 = 1.0 scale4 = 3.0
alias4 = sfxp4 alias4 = sfxp3
shader5 = shaders/old/scalefx-pass1.slang shader5 = shaders/old/scalefx-pass0.slang
filter_linear5 = false filter_linear5 = false
scale_type5 = source scale_type5 = source
scale5 = 1.0 scale5 = 1.0
alias5 = sfxp5 alias5 = sfxp4
shader6 = shaders/old/scalefx-pass2.slang shader6 = shaders/old/scalefx-pass1.slang
filter_linear6 = false filter_linear6 = false
scale_type6 = source scale_type6 = source
scale6 = 1.0 scale6 = 1.0
alias6 = sfxp6 alias6 = sfxp5
shader7 = shaders/old/scalefx-pass7.slang shader7 = shaders/old/scalefx-pass2.slang
filter_linear7 = false filter_linear7 = false
scale_type7 = source scale_type7 = source
scale7 = 3.0 scale7 = 1.0
alias7 = sfxp7 alias7 = sfxp6
shader8 = shaders/old/scalefx-pass7.slang
filter_linear8 = false
scale_type8 = source
scale8 = 3.0
alias8 = sfxp7

View file

@ -67,7 +67,7 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(binding = 1) uniform sampler2D Source; 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); 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 // ouput
FragColor = texture(Original, vTexCoord + 1/SourceSize.xy * res); FragColor = texture(scalefx_old_refpass, vTexCoord + 1/SourceSize.xy * res);
} }

View file

@ -50,7 +50,7 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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); const vec3 Y = vec3(.2126, .7152, .0722);
@ -65,7 +65,7 @@ void main()
vec2 tex = vTexCoord; vec2 tex = vTexCoord;
vec4 c0 = texture(Source, tex); 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)); FragColor = vec4(c0.xyz - c1.xyz, RGBtoYUV(c0.rgb));
} }

View file

@ -1,41 +1,52 @@
shaders = "9" shaders = "10"
shader0 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang" shader0 = ../stock.slang
filter_linear0 = "false" alias0 = diff_refpass
scale_type0 = "source"
scale0 = "1.000000" shader1 = ../stock.slang
shader1 = "../xbr/shaders/super-xbr/super-xbr-pass1.slang" alias1 = XbrSource
filter_linear1 = "false"
scale_type1 = "source" shader2 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang"
scale1 = "2.000000"
shader2 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang"
filter_linear2 = "false" filter_linear2 = "false"
scale_type2 = "source" scale_type2 = "source"
scale2 = "1.000000" scale2 = "1.000000"
alias2 = "REF"
shader3 = "../cubic/shaders/cubic.slang" shader3 = "../xbr/shaders/super-xbr/super-xbr-pass1.slang"
filter_linear3 = "false" filter_linear3 = "false"
scale_type3 = "source" scale_type3 = "source"
scale3 = "0.500000" scale3 = "2.000000"
shader4 = "shaders/diff.slang"
shader4 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang"
filter_linear4 = "false" filter_linear4 = "false"
scale_type4 = "source" scale_type4 = "source"
scale4 = "1.000000" scale4 = "1.000000"
shader5 = "shaders/super-res-ex.slang" alias4 = "REF"
filter_linear5 = "true"
scale_type5 = "source"
scale5 = "2.000000"
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" filter_linear6 = "false"
scale_type6 = "source" scale_type6 = "source"
scale6 = "1.000000" 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" 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" 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"

View file

@ -1,24 +1,27 @@
shaders = 4 shaders = 5
shader0 = shaders/gristleVHS/HorizontalSoften.slang shader0 = ../stock.slang
scale_type0 = absolute alias0 = gristleVHS_refpass
scale_y0 = 480
scale_x0 = 333
frame_count_mod0 = 256
filter_linear0 = true
shader1 = ../blurs/shaders/sunset_gaussian/sunset_horz.slang shader1 = shaders/gristleVHS/HorizontalSoften.slang
scale_type1 = absolute scale_type1 = absolute
scale_x1 = 80
scale_y1 = 480 scale_y1 = 480
scale_x1 = 333
frame_count_mod1 = 256
filter_linear1 = true filter_linear1 = true
shader2 = shaders/gristleVHS/VHS.slang shader2 = ../blurs/shaders/sunset_gaussian/sunset_horz.slang
scale_type2 = absolute scale_type2 = absolute
scale_x2 = 80
scale_y2 = 480 scale_y2 = 480
scale_x2 = 333
frame_count_mod2 = 256
filter_linear2 = true 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 filter_linear3 = true
shader4 = ../stock.slang
filter_linear4 = true

View file

@ -28,7 +28,7 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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 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 ) #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() void main()
{ {
vec3 ChromaPass = texture(Source, vTexCoord - vec2(params.SourceSize.z*0.333,0.0)).xyz * RGB_to_YIQ; 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; vec3 MergedPass= vec3(LuminaPass.x,ChromaPass.yz) * YIQ_to_RGB;

View file

@ -1,8 +1,11 @@
shaders = 2 shaders = 3
shader0 = "shaders/2xBR-multipass/2xbr-lv1-c-pass0.slang" shader0 = ../../stock.slang
filter_linear0 = false alias0 = xBR_lv1_mp_refpass
scale_type0 = source
shader1 = "shaders/2xBR-multipass/2xbr-lv1-c-pass1.slang" shader1 = "shaders/2xBR-multipass/2xbr-lv1-c-pass0.slang"
filter_linear1 = false filter_linear1 = false
scale_type1 = source
shader2 = "shaders/2xBR-multipass/2xbr-lv1-c-pass1.slang"
filter_linear2 = false

View file

@ -4,7 +4,7 @@ layout(std140, set = 0, binding = 0) uniform UBO
{ {
mat4 MVP; mat4 MVP;
vec4 OutputSize; vec4 OutputSize;
vec4 OriginalSize; vec4 xBR_lv1_mp_refpassSize;
vec4 SourceSize; vec4 SourceSize;
} global; } global;
@ -35,7 +35,7 @@ layout(location = 0) in vec2 vTexCoord;
layout(location = 1) in vec4 t1; layout(location = 1) in vec4 t1;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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); mat4x2 sym_vectors = mat4x2(1, 1, 1, -1, -1, -1, -1, 1);
@ -56,8 +56,8 @@ vec2 unpack_info(float i)
void main() void main()
{ {
//get original texture coordinates relative to the current pass //get original texture coordinates relative to the current pass
vec2 OriginalCoord = floor(global.OriginalSize.xy * vTexCoord); vec2 OriginalCoord = floor(global.xBR_lv1_mp_refpassSize.xy * vTexCoord);
OriginalCoord = (OriginalCoord + 0.5) * global.OriginalSize.zw; OriginalCoord = (OriginalCoord + 0.5) * global.xBR_lv1_mp_refpassSize.zw;
float px, edr; // px = pixel to blend, edr = edge detection rule float px, edr; // px = pixel to blend, edr = edge detection rule
@ -67,9 +67,9 @@ void main()
vec2 g1 = dir*t1.xy; vec2 g1 = dir*t1.xy;
vec2 g2 = dir*t1.zw; vec2 g2 = dir*t1.zw;
vec3 F = texture(Original, OriginalCoord +g1).rgb; vec3 F = texture(xBR_lv1_mp_refpass, OriginalCoord +g1).rgb;
vec3 H = texture(Original, OriginalCoord +g2).rgb; vec3 H = texture(xBR_lv1_mp_refpass, OriginalCoord +g2).rgb;
vec3 E = texture(Original, OriginalCoord ).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 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 float info = remapFrom01(dot(texture(Source, vTexCoord), icomp), 255.0f); // retrieve 1st pass info

View file

@ -125,7 +125,7 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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() void main()
{ {
@ -164,15 +164,15 @@ void main()
g1 *= 2.0; g1 *= 2.0;
g2 *= 2.0; g2 *= 2.0;
vec3 F6 = 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(Original, 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(Original, 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(Original, 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 H6 = texture(super2xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
vec3 H7 = texture(Original, 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(Original, 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(Original, 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 f0 = reduce4(F6, F7, F8, F9);
vec4 h0 = reduce4(H6, H7, H8, H9); vec4 h0 = reduce4(H6, H7, H8, H9);

View file

@ -142,7 +142,7 @@ layout(location = 3) in vec4 t3;
layout(location = 4) in vec4 t4; layout(location = 4) in vec4 t4;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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() void main()
{ {
@ -173,15 +173,15 @@ void main()
vec3 A = texture(Source, vTexCoord).xyz; vec3 A = texture(Source, vTexCoord).xyz;
vec3 F6 = 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(Original, 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(Original, 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(Original, 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 H6 = texture(super2xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
vec3 H7 = texture(Original, 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(Original, 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(Original, 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 f0 = reduce4(F6, F7, F8, F9);
vec4 h0 = reduce4(H6, H7, H8, H9); vec4 h0 = reduce4(H6, H7, H8, H9);

View file

@ -125,7 +125,7 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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() void main()
{ {
@ -164,15 +164,15 @@ void main()
g1 *= 2.0; g1 *= 2.0;
g2 *= 2.0; g2 *= 2.0;
vec3 F6 = 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(Original, 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(Original, 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(Original, 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 H6 = texture(super4xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
vec3 H7 = texture(Original, 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(Original, 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(Original, 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 f0 = reduce4(F6, F7, F8, F9);
vec4 h0 = reduce4(H6, H7, H8, H9); vec4 h0 = reduce4(H6, H7, H8, H9);

View file

@ -140,7 +140,7 @@ layout(location = 3) in vec4 t3;
layout(location = 4) in vec4 t4; layout(location = 4) in vec4 t4;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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() void main()
{ {
@ -171,15 +171,15 @@ void main()
vec3 A = texture(Source, vTexCoord).xyz; vec3 A = texture(Source, vTexCoord).xyz;
vec3 F6 = 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(Original, 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(Original, 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(Original, 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 H6 = texture(super4xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
vec3 H7 = texture(Original, 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(Original, 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(Original, 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 f0 = reduce4(F6, F7, F8, F9);
vec4 h0 = reduce4(H6, H7, H8, H9); vec4 h0 = reduce4(H6, H7, H8, H9);

View file

@ -125,7 +125,7 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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() void main()
{ {
@ -164,15 +164,15 @@ void main()
g1 *= 2.0; g1 *= 2.0;
g2 *= 2.0; g2 *= 2.0;
vec3 F6 = 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(Original, 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(Original, 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(Original, 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 H6 = texture(super4xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
vec3 H7 = texture(Original, 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(Original, 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(Original, 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 f0 = reduce4(F6, F7, F8, F9);
vec4 h0 = reduce4(H6, H7, H8, H9); vec4 h0 = reduce4(H6, H7, H8, H9);

View file

@ -140,7 +140,7 @@ layout(location = 3) in vec4 t3;
layout(location = 4) in vec4 t4; layout(location = 4) in vec4 t4;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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() void main()
{ {
@ -171,15 +171,15 @@ void main()
vec3 A = texture(Source, vTexCoord).xyz; vec3 A = texture(Source, vTexCoord).xyz;
vec3 F6 = 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(Original, 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(Original, 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(Original, 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 H6 = texture(super4xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
vec3 H7 = texture(Original, 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(Original, 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(Original, 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 f0 = reduce4(F6, F7, F8, F9);
vec4 h0 = reduce4(H6, H7, H8, H9); vec4 h0 = reduce4(H6, H7, H8, H9);

View file

@ -125,7 +125,7 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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() void main()
{ {
@ -166,15 +166,15 @@ void main()
g1 *= 2.0; g1 *= 2.0;
g2 *= 2.0; g2 *= 2.0;
vec3 F6 = 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(Original, 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(Original, 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(Original, 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 H6 = texture(super8xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
vec3 H7 = texture(Original, 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(Original, 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(Original, 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 f0 = reduce4(F6, F7, F8, F9);
vec4 h0 = reduce4(H6, H7, H8, H9); vec4 h0 = reduce4(H6, H7, H8, H9);

View file

@ -125,7 +125,7 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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() void main()
{ {
@ -166,15 +166,15 @@ void main()
g1 *= 2.0; g1 *= 2.0;
g2 *= 2.0; g2 *= 2.0;
vec3 F6 = 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(Original, 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(Original, 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(Original, 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 H6 = texture(super8xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
vec3 H7 = texture(Original, 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(Original, 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(Original, 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 f0 = reduce4(F6, F7, F8, F9);
vec4 h0 = reduce4(H6, H7, H8, H9); vec4 h0 = reduce4(H6, H7, H8, H9);

View file

@ -125,7 +125,7 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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() void main()
{ {
@ -166,15 +166,15 @@ void main()
g1 *= 2.0; g1 *= 2.0;
g2 *= 2.0; g2 *= 2.0;
vec3 F6 = 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(Original, 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(Original, 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(Original, 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 H6 = texture(super8xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
vec3 H7 = texture(Original, 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(Original, 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(Original, 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 f0 = reduce4(F6, F7, F8, F9);
vec4 h0 = reduce4(H6, H7, H8, H9); vec4 h0 = reduce4(H6, H7, H8, H9);

View file

@ -1,16 +1,22 @@
shaders = "3" shaders = "4"
shader0 = "shaders/super-xbr/super-2xbr-3d-pass0.slang"
filter_linear0 = false shader0 = ../../stock.slang
scale_type_x0 = "source" alias0 = super2xbr3d_refpass
scale_x0 = "1.000000"
scale_type_y0 = "source" shader1 = "shaders/super-xbr/super-2xbr-3d-pass0.slang"
scale_y0 = "1.000000"
shader1 = "shaders/super-xbr/super-2xbr-3d-pass1.slang"
filter_linear1 = false filter_linear1 = false
scale_type_x1 = "source" scale_type_x1 = "source"
scale_x1 = "1.000000" scale_x1 = "1.000000"
scale_type_y1 = "source" scale_type_y1 = "source"
scale_y1 = "1.000000" 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

View file

@ -1,22 +1,29 @@
shaders = "4" shaders = "5"
shader0 = "shaders/super-xbr/super-2xbr-3d-pass0.slang"
filter_linear0 = false shader0 = ../../stock.slang
scale_type_x0 = "source" alias0 = super2xbr3d_refpass
scale_x0 = "1.000000"
scale_type_y0 = "source" shader1 = "shaders/super-xbr/super-2xbr-3d-pass0.slang"
scale_y0 = "1.000000"
shader1 = "shaders/super-xbr/super-2xbr-3d-pass1.slang"
filter_linear1 = false filter_linear1 = false
scale_type_x1 = "source" scale_type_x1 = "source"
scale_x1 = "1.000000" scale_x1 = "1.000000"
scale_type_y1 = "source" scale_type_y1 = "source"
scale_y1 = "1.000000" 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 filter_linear2 = false
scale_type_x2 = "source" scale_type_x2 = "source"
scale_x2 = "1.000000" scale_x2 = "1.000000"
scale_type_y2 = "source" scale_type_y2 = "source"
scale_y2 = "1.000000" 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

View file

@ -1,28 +1,36 @@
shaders = "5" shaders = "6"
shader0 = "shaders/super-xbr/super-4xbr-3d-pass0.slang"
filter_linear0 = false shader0 = ../../stock.slang
scale_type_x0 = "source" alias0 = super4xbr3d_refpass
scale_x0 = "1.000000"
scale_type_y0 = "source" shader1 = "shaders/super-xbr/super-4xbr-3d-pass0.slang"
scale_y0 = "1.000000"
shader1 = "shaders/super-xbr/super-4xbr-3d-pass1.slang"
filter_linear1 = false filter_linear1 = false
scale_type_x1 = "source" scale_type_x1 = "source"
scale_x1 = "1.000000" scale_x1 = "1.000000"
scale_type_y1 = "source" scale_type_y1 = "source"
scale_y1 = "1.000000" 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 filter_linear2 = false
scale_type_x2 = "source" scale_type_x2 = "source"
scale_x2 = "1.000000" scale_x2 = "1.000000"
scale_type_y2 = "source" scale_type_y2 = "source"
scale_y2 = "1.000000" 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 filter_linear3 = false
scale_type_x3 = "source" scale_type_x3 = "source"
scale_x3 = "1.000000" scale_x3 = "1.000000"
scale_type_y3 = "source" scale_type_y3 = "source"
scale_y3 = "1.000000" 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

View file

@ -1,40 +1,50 @@
shaders = "7" shaders = "8"
shader0 = "shaders/super-xbr/super-4xbr-3d-pass0.slang"
filter_linear0 = false shader0 = ../../stock.slang
scale_type_x0 = "source" alias0 = super4xbr3d_refpass
scale_x0 = "1.000000"
scale_type_y0 = "source" shader1 = "shaders/super-xbr/super-4xbr-3d-pass0.slang"
scale_y0 = "1.000000"
shader1 = "shaders/super-xbr/super-4xbr-3d-pass1.slang"
filter_linear1 = false filter_linear1 = false
scale_type_x1 = "source" scale_type_x1 = "source"
scale_x1 = "1.000000" scale_x1 = "1.000000"
scale_type_y1 = "source" scale_type_y1 = "source"
scale_y1 = "1.000000" 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 filter_linear2 = false
scale_type_x2 = "source" scale_type_x2 = "source"
scale_x2 = "1.000000" scale_x2 = "1.000000"
scale_type_y2 = "source" scale_type_y2 = "source"
scale_y2 = "1.000000" 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 filter_linear3 = false
scale_type_x3 = "source" scale_type_x3 = "source"
scale_x3 = "1.000000" scale_x3 = "1.000000"
scale_type_y3 = "source" scale_type_y3 = "source"
scale_y3 = "1.000000" 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 filter_linear4 = false
scale_type_x4 = "source" scale_type_x4 = "source"
scale_x4 = "1.000000" scale_x4 = "1.000000"
scale_type_y4 = "source" scale_type_y4 = "source"
scale_y4 = "1.000000" 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 filter_linear5 = false
scale_type_x5 = "source" scale_type_x5 = "source"
scale_x5 = "1.000000" scale_x5 = "1.000000"
scale_type_y5 = "source" scale_type_y5 = "source"
scale_y5 = "1.000000" 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

View file

@ -1,40 +1,50 @@
shaders = "7" shaders = "8"
shader0 = "shaders/super-xbr/super-8xbr-3d-pass0.slang"
filter_linear0 = false shader0 = ../../stock.slang
scale_type_x0 = "source" alias0 = super8xbr3d_refpass
scale_x0 = "1.000000"
scale_type_y0 = "source" shader1 = "shaders/super-xbr/super-8xbr-3d-pass0.slang"
scale_y0 = "1.000000"
shader1 = "shaders/super-xbr/super-8xbr-3d-pass1.slang"
filter_linear1 = false filter_linear1 = false
scale_type_x1 = "source" scale_type_x1 = "source"
scale_x1 = "1.000000" scale_x1 = "1.000000"
scale_type_y1 = "source" scale_type_y1 = "source"
scale_y1 = "1.000000" 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 filter_linear2 = false
scale_type_x2 = "source" scale_type_x2 = "source"
scale_x2 = "1.000000" scale_x2 = "1.000000"
scale_type_y2 = "source" scale_type_y2 = "source"
scale_y2 = "1.000000" 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 filter_linear3 = false
scale_type_x3 = "source" scale_type_x3 = "source"
scale_x3 = "1.000000" scale_x3 = "1.000000"
scale_type_y3 = "source" scale_type_y3 = "source"
scale_y3 = "1.000000" 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 filter_linear4 = false
scale_type_x4 = "source" scale_type_x4 = "source"
scale_x4 = "1.000000" scale_x4 = "1.000000"
scale_type_y4 = "source" scale_type_y4 = "source"
scale_y4 = "1.000000" 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 filter_linear5 = false
scale_type_x5 = "source" scale_type_x5 = "source"
scale_x5 = "1.000000" scale_x5 = "1.000000"
scale_type_y5 = "source" scale_type_y5 = "source"
scale_y5 = "1.000000" 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

View file

@ -41,7 +41,7 @@ layout(push_constant) uniform Push
float XBR_TEXTURE_SHP; float XBR_TEXTURE_SHP;
} params; } 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_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 #pragma parameter XBR_TEXTURE_SHP "Adaptive Static Edge Sharp" 1.0 0.0 2.0 0.1

View file

@ -84,7 +84,7 @@ float get_left_ratio(vec2 center, vec2 origin, vec2 direction, vec2 scale)
layout(push_constant) uniform Push layout(push_constant) uniform Push
{ {
vec4 OriginalSize; vec4 xbrz_fs_refpassSize;
vec4 OutputSize; vec4 OutputSize;
} params; } params;
@ -108,13 +108,13 @@ void main()
layout(location = 0) in vec2 vTexCoord; layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source; 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 eq(a,b) (a == b)
#define neq(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() void main()
{ {
@ -124,9 +124,9 @@ void main()
// D|E|F // D|E|F
// -|H|- // -|H|-
vec2 scale = params.OutputSize.xy * params.OriginalSize.zw; vec2 scale = params.OutputSize.xy * params.xbrz_fs_refpassSize.zw;
vec2 pos = fract(vTexCoord * params.OriginalSize.xy) - vec2(0.5, 0.5); vec2 pos = fract(vTexCoord * params.xbrz_fs_refpassSize.xy) - vec2(0.5, 0.5);
vec2 coord = vTexCoord - pos * params.OriginalSize.zw; vec2 coord = vTexCoord - pos * params.xbrz_fs_refpassSize.zw;
vec3 B = P( 0,-1); vec3 B = P( 0,-1);
vec3 D = P(-1, 0); vec3 D = P(-1, 0);

View file

@ -1,11 +1,14 @@
shaders = 2 shaders = 3
shader0 = shaders/xbrz-freescale-pass0.slang shader0 = ../stock.slang
filter_linear0 = false alias0 = xbrz_fs_refpass
scale_type0 = source
scale0 = 1.0
shader1 = shaders/xbrz-freescale-pass1.slang shader1 = shaders/xbrz-freescale-pass0.slang
filter_linear1 = false filter_linear1 = false
scale_type1 = viewport scale_type1 = source
scale1 = 1.0 scale1 = 1.0
shader2 = shaders/xbrz-freescale-pass1.slang
filter_linear2 = false
scale_type2 = viewport
scale2 = 1.0