summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author therealmogminer@gmail.com <therealmogminer@gmail.com>2016-04-14 17:22:08 +0200
committer therealmogminer@gmail.com <therealmogminer@gmail.com>2016-04-14 17:22:24 +0200
commit99aa7eacd7a2bb7a3711f8ff3f918e8fbe1f2819 (patch)
treea681a4407878fcf7cc89973e6bb5bc09dcb22c3c
parent0ff1223fe85b054b3b8ef3a8e5ca6ad859154ed8 (diff)
bgfx: Add data-driven render target clearing [Ryan Holtz]
-rw-r--r--bgfx/chains/hlsl.json15
-rw-r--r--bgfx/effects/default/blit.json8
-rw-r--r--bgfx/effects/hlsl/blit.json8
-rw-r--r--bgfx/effects/hlsl/color.json4
-rw-r--r--bgfx/effects/hlsl/deconverge.json4
-rw-r--r--bgfx/effects/hlsl/defocus.json4
-rw-r--r--bgfx/effects/hlsl/distortion.json4
-rw-r--r--bgfx/effects/hlsl/ntsc_decode.json4
-rw-r--r--bgfx/effects/hlsl/ntsc_encode.json4
-rw-r--r--bgfx/effects/hlsl/phosphor.json4
-rw-r--r--bgfx/effects/hlsl/post.json4
-rw-r--r--bgfx/effects/hlsl/prescale.json4
-rw-r--r--bgfx/effects/unfiltered/blit.json8
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/fs_blit.bin (renamed from bgfx/shaders/dx11/fs_blit.bin)bin396 -> 396 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/fs_color.bin (renamed from bgfx/shaders/dx11/fs_color.bin)bin749 -> 749 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/fs_deconverge.bin (renamed from bgfx/shaders/dx11/fs_deconverge.bin)bin672 -> 672 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/fs_defocus.bin (renamed from bgfx/shaders/dx11/fs_defocus.bin)bin1330 -> 1330 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/fs_distortion.bin (renamed from bgfx/shaders/dx11/fs_distortion.bin)bin3690 -> 3690 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/fs_ntsc_decode.bin (renamed from bgfx/shaders/dx11/fs_ntsc_decode.bin)bin3710 -> 3710 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/fs_ntsc_encode.bin (renamed from bgfx/shaders/dx11/fs_ntsc_encode.bin)bin1727 -> 1727 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/fs_phosphor.bin (renamed from bgfx/shaders/dx11/fs_phosphor.bin)bin634 -> 634 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/fs_post.bin (renamed from bgfx/shaders/dx11/fs_post.bin)bin2886 -> 2886 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/fs_prescale.bin (renamed from bgfx/shaders/dx11/fs_prescale.bin)bin396 -> 396 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/vs_blit.bin (renamed from bgfx/shaders/dx11/vs_blit.bin)bin575 -> 575 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/vs_color.bin (renamed from bgfx/shaders/dx11/vs_color.bin)bin575 -> 575 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/vs_deconverge.bin (renamed from bgfx/shaders/dx11/vs_deconverge.bin)bin1336 -> 1336 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/vs_defocus.bin (renamed from bgfx/shaders/dx11/vs_defocus.bin)bin575 -> 575 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/vs_distortion.bin (renamed from bgfx/shaders/dx11/vs_distortion.bin)bin575 -> 575 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/vs_ntsc_decode.bin (renamed from bgfx/shaders/dx11/vs_ntsc_decode.bin)bin575 -> 575 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/vs_ntsc_encode.bin (renamed from bgfx/shaders/dx11/vs_ntsc_encode.bin)bin575 -> 575 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/vs_phosphor.bin (renamed from bgfx/shaders/dx11/vs_phosphor.bin)bin575 -> 575 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/vs_post.bin (renamed from bgfx/shaders/dx11/vs_post.bin)bin575 -> 575 bytes
-rw-r--r--bgfx/shaders/dx11/chains/hlsl/vs_prescale.bin (renamed from bgfx/shaders/dx11/vs_prescale.bin)bin575 -> 575 bytes
-rw-r--r--bgfx/shaders/dx11/chains/unfiltered/fs_blit.binbin0 -> 396 bytes
-rw-r--r--bgfx/shaders/dx11/chains/unfiltered/vs_blit.binbin0 -> 575 bytes
-rw-r--r--bgfx/shaders/dx11/fs_ntsc.binbin2222 -> 0 bytes
-rw-r--r--bgfx/shaders/dx11/fs_ratios.binbin41118 -> 0 bytes
-rw-r--r--bgfx/shaders/dx11/fs_tint.binbin41011 -> 0 bytes
-rw-r--r--bgfx/shaders/dx11/vs_ntsc.binbin38987 -> 0 bytes
-rw-r--r--bgfx/shaders/dx11/vs_ratios.binbin38987 -> 0 bytes
-rw-r--r--bgfx/shaders/dx11/vs_tint.binbin38987 -> 0 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/fs_blit.bin (renamed from bgfx/shaders/dx9/fs_blit.bin)bin241 -> 241 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/fs_color.bin (renamed from bgfx/shaders/dx9/fs_color.bin)bin694 -> 694 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/fs_deconverge.bin (renamed from bgfx/shaders/dx9/fs_deconverge.bin)bin361 -> 361 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/fs_defocus.bin (renamed from bgfx/shaders/dx9/fs_defocus.bin)bin879 -> 879 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/fs_distortion.bin (renamed from bgfx/shaders/dx9/fs_distortion.bin)bin2735 -> 2735 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/fs_ntsc_decode.bin (renamed from bgfx/shaders/dx9/fs_ntsc_decode.bin)bin4259 -> 4259 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/fs_ntsc_encode.bin (renamed from bgfx/shaders/dx9/fs_ntsc_encode.bin)bin1760 -> 1760 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/fs_phosphor.bin (renamed from bgfx/shaders/dx9/fs_phosphor.bin)bin483 -> 483 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/fs_post.bin (renamed from bgfx/shaders/dx9/fs_post.bin)bin2587 -> 2587 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/fs_prescale.bin (renamed from bgfx/shaders/dx9/fs_prescale.bin)bin241 -> 241 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/vs_blit.bin (renamed from bgfx/shaders/dx9/vs_blit.bin)bin330 -> 330 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/vs_color.bin (renamed from bgfx/shaders/dx9/vs_color.bin)bin330 -> 330 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/vs_deconverge.bin (renamed from bgfx/shaders/dx9/vs_deconverge.bin)bin1071 -> 1071 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/vs_defocus.bin (renamed from bgfx/shaders/dx9/vs_defocus.bin)bin330 -> 330 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/vs_distortion.bin (renamed from bgfx/shaders/dx9/vs_distortion.bin)bin330 -> 330 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/vs_ntsc_decode.bin (renamed from bgfx/shaders/dx9/vs_ntsc_decode.bin)bin330 -> 330 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/vs_ntsc_encode.bin (renamed from bgfx/shaders/dx9/vs_ntsc_encode.bin)bin330 -> 330 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/vs_phosphor.bin (renamed from bgfx/shaders/dx9/vs_phosphor.bin)bin330 -> 330 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/vs_post.bin (renamed from bgfx/shaders/dx9/vs_post.bin)bin330 -> 330 bytes
-rw-r--r--bgfx/shaders/dx9/chains/hlsl/vs_prescale.bin (renamed from bgfx/shaders/dx9/vs_prescale.bin)bin330 -> 330 bytes
-rw-r--r--bgfx/shaders/dx9/chains/unfiltered/fs_blit.binbin0 -> 241 bytes
-rw-r--r--bgfx/shaders/dx9/chains/unfiltered/vs_blit.binbin0 -> 330 bytes
-rw-r--r--bgfx/shaders/dx9/fs_ntsc.binbin10454 -> 0 bytes
-rw-r--r--bgfx/shaders/dx9/fs_ratios.binbin1171 -> 0 bytes
-rw-r--r--bgfx/shaders/dx9/fs_tint.binbin896 -> 0 bytes
-rw-r--r--bgfx/shaders/dx9/vs_ntsc.binbin886 -> 0 bytes
-rw-r--r--bgfx/shaders/dx9/vs_ratios.binbin886 -> 0 bytes
-rw-r--r--bgfx/shaders/dx9/vs_tint.binbin886 -> 0 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/fs_blit.bin (renamed from bgfx/shaders/gles/fs_blit.bin)bin238 -> 238 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/fs_color.bin (renamed from bgfx/shaders/gles/fs_color.bin)bin949 -> 949 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/fs_deconverge.bin (renamed from bgfx/shaders/gles/fs_deconverge.bin)bin485 -> 485 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/fs_defocus.bin (renamed from bgfx/shaders/gles/fs_defocus.bin)bin1167 -> 1167 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/fs_distortion.bin (renamed from bgfx/shaders/gles/fs_distortion.bin)bin5408 -> 5408 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/fs_ntsc_decode.bin (renamed from bgfx/shaders/gles/fs_ntsc_decode.bin)bin6484 -> 6484 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/fs_ntsc_encode.bin (renamed from bgfx/shaders/gles/fs_ntsc_encode.bin)bin2825 -> 2825 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/fs_phosphor.bin (renamed from bgfx/shaders/gles/fs_phosphor.bin)bin651 -> 651 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/fs_post.bin (renamed from bgfx/shaders/gles/fs_post.bin)bin3784 -> 3784 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/fs_prescale.bin (renamed from bgfx/shaders/gles/fs_prescale.bin)bin238 -> 238 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/vs_blit.bin (renamed from bgfx/shaders/gles/vs_blit.bin)bin419 -> 419 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/vs_color.bin (renamed from bgfx/shaders/gles/vs_color.bin)bin419 -> 419 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/vs_deconverge.bin (renamed from bgfx/shaders/gles/vs_deconverge.bin)bin1470 -> 1470 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/vs_defocus.bin (renamed from bgfx/shaders/gles/vs_defocus.bin)bin419 -> 419 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/vs_distortion.bin (renamed from bgfx/shaders/gles/vs_distortion.bin)bin419 -> 419 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/vs_ntsc_decode.bin (renamed from bgfx/shaders/gles/vs_ntsc_decode.bin)bin419 -> 419 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/vs_ntsc_encode.bin (renamed from bgfx/shaders/gles/vs_ntsc_encode.bin)bin419 -> 419 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/vs_phosphor.bin (renamed from bgfx/shaders/gles/vs_phosphor.bin)bin419 -> 419 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/vs_post.bin (renamed from bgfx/shaders/gles/vs_post.bin)bin419 -> 419 bytes
-rw-r--r--bgfx/shaders/gles/chains/hlsl/vs_prescale.bin (renamed from bgfx/shaders/gles/vs_prescale.bin)bin419 -> 419 bytes
-rw-r--r--bgfx/shaders/gles/chains/unfiltered/fs_blit.binbin0 -> 238 bytes
-rw-r--r--bgfx/shaders/gles/chains/unfiltered/vs_blit.bin (renamed from bgfx/shaders/gles/vs_ntsc.bin)bin419 -> 419 bytes
-rw-r--r--bgfx/shaders/gles/fs_ntsc.binbin7591 -> 0 bytes
-rw-r--r--bgfx/shaders/gles/fs_ratios.binbin745 -> 0 bytes
-rw-r--r--bgfx/shaders/gles/fs_tint.binbin438 -> 0 bytes
-rw-r--r--bgfx/shaders/gles/vs_ratios.binbin419 -> 0 bytes
-rw-r--r--bgfx/shaders/gles/vs_tint.binbin419 -> 0 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/fs_blit.bin (renamed from bgfx/shaders/glsl/fs_blit.bin)bin181 -> 181 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/fs_color.bin (renamed from bgfx/shaders/glsl/fs_color.bin)bin882 -> 882 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/fs_deconverge.bin (renamed from bgfx/shaders/glsl/fs_deconverge.bin)bin450 -> 450 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/fs_defocus.bin (renamed from bgfx/shaders/glsl/fs_defocus.bin)bin1122 -> 1122 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/fs_distortion.bin (renamed from bgfx/shaders/glsl/fs_distortion.bin)bin5164 -> 5164 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/fs_ntsc_decode.bin (renamed from bgfx/shaders/glsl/fs_ntsc_decode.bin)bin6096 -> 6096 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/fs_ntsc_encode.bin (renamed from bgfx/shaders/glsl/fs_ntsc_encode.bin)bin2676 -> 2676 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/fs_phosphor.bin (renamed from bgfx/shaders/glsl/fs_phosphor.bin)bin613 -> 613 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/fs_post.bin (renamed from bgfx/shaders/glsl/fs_post.bin)bin3582 -> 3582 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/fs_prescale.bin (renamed from bgfx/shaders/glsl/fs_prescale.bin)bin181 -> 181 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/vs_blit.bin (renamed from bgfx/shaders/glsl/vs_blit.bin)bin377 -> 377 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/vs_color.bin (renamed from bgfx/shaders/glsl/vs_color.bin)bin377 -> 377 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/vs_deconverge.bin (renamed from bgfx/shaders/glsl/vs_deconverge.bin)bin1356 -> 1356 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/vs_defocus.bin (renamed from bgfx/shaders/glsl/vs_defocus.bin)bin377 -> 377 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/vs_distortion.bin (renamed from bgfx/shaders/glsl/vs_distortion.bin)bin377 -> 377 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/vs_ntsc_decode.bin (renamed from bgfx/shaders/glsl/vs_ntsc_decode.bin)bin377 -> 377 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/vs_ntsc_encode.bin (renamed from bgfx/shaders/glsl/vs_ntsc_encode.bin)bin377 -> 377 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/vs_phosphor.bin (renamed from bgfx/shaders/glsl/vs_phosphor.bin)bin377 -> 377 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/vs_post.bin (renamed from bgfx/shaders/glsl/vs_post.bin)bin377 -> 377 bytes
-rw-r--r--bgfx/shaders/glsl/chains/hlsl/vs_prescale.bin (renamed from bgfx/shaders/glsl/vs_prescale.bin)bin377 -> 377 bytes
-rw-r--r--bgfx/shaders/glsl/chains/unfiltered/fs_blit.binbin0 -> 181 bytes
-rw-r--r--bgfx/shaders/glsl/chains/unfiltered/vs_blit.bin (renamed from bgfx/shaders/glsl/vs_ntsc.bin)bin377 -> 377 bytes
-rw-r--r--bgfx/shaders/glsl/fs_ntsc.binbin7168 -> 0 bytes
-rw-r--r--bgfx/shaders/glsl/fs_ratios.binbin694 -> 0 bytes
-rw-r--r--bgfx/shaders/glsl/fs_tint.binbin371 -> 0 bytes
-rw-r--r--bgfx/shaders/glsl/vs_ratios.binbin377 -> 0 bytes
-rw-r--r--bgfx/shaders/glsl/vs_tint.binbin377 -> 0 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/fs_blit.bin (renamed from bgfx/shaders/metal/fs_blit.bin)bin634 -> 634 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/fs_color.bin (renamed from bgfx/shaders/metal/fs_color.bin)bin1298 -> 1298 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/fs_deconverge.bin (renamed from bgfx/shaders/metal/fs_deconverge.bin)bin1117 -> 1117 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/fs_defocus.bin (renamed from bgfx/shaders/metal/fs_defocus.bin)bin2355 -> 2355 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/fs_distortion.bin (renamed from bgfx/shaders/metal/fs_distortion.bin)bin5764 -> 5764 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/fs_ntsc_decode.bin (renamed from bgfx/shaders/metal/fs_ntsc_decode.bin)bin6943 -> 6943 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/fs_ntsc_encode.bin (renamed from bgfx/shaders/metal/fs_ntsc_encode.bin)bin3325 -> 3325 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/fs_phosphor.bin (renamed from bgfx/shaders/metal/fs_phosphor.bin)bin1116 -> 1116 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/fs_post.bin (renamed from bgfx/shaders/metal/fs_post.bin)bin4351 -> 4351 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/fs_prescale.bin (renamed from bgfx/shaders/metal/fs_prescale.bin)bin634 -> 634 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/vs_blit.bin (renamed from bgfx/shaders/metal/vs_blit.bin)bin757 -> 757 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/vs_color.bin (renamed from bgfx/shaders/metal/vs_color.bin)bin757 -> 757 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/vs_deconverge.bin (renamed from bgfx/shaders/metal/vs_deconverge.bin)bin1612 -> 1612 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/vs_defocus.bin (renamed from bgfx/shaders/metal/vs_defocus.bin)bin757 -> 757 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/vs_distortion.bin (renamed from bgfx/shaders/metal/vs_distortion.bin)bin757 -> 757 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/vs_ntsc_decode.bin (renamed from bgfx/shaders/metal/vs_ntsc_decode.bin)bin757 -> 757 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/vs_ntsc_encode.bin (renamed from bgfx/shaders/metal/vs_ntsc_encode.bin)bin757 -> 757 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/vs_phosphor.bin (renamed from bgfx/shaders/metal/vs_phosphor.bin)bin757 -> 757 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/vs_post.bin (renamed from bgfx/shaders/metal/vs_post.bin)bin757 -> 757 bytes
-rw-r--r--bgfx/shaders/metal/chains/hlsl/vs_prescale.bin (renamed from bgfx/shaders/metal/vs_prescale.bin)bin757 -> 757 bytes
-rw-r--r--bgfx/shaders/metal/chains/unfiltered/fs_blit.bin (renamed from bgfx/shaders/metal/fs_tint.bin)bin835 -> 634 bytes
-rw-r--r--bgfx/shaders/metal/chains/unfiltered/vs_blit.bin (renamed from bgfx/shaders/metal/vs_ntsc.bin)bin757 -> 757 bytes
-rw-r--r--bgfx/shaders/metal/fs_ntsc.binbin8322 -> 0 bytes
-rw-r--r--bgfx/shaders/metal/fs_ratios.binbin1116 -> 0 bytes
-rw-r--r--bgfx/shaders/metal/vs_ratios.binbin757 -> 0 bytes
-rw-r--r--bgfx/shaders/metal/vs_tint.binbin757 -> 0 bytes
-rw-r--r--scripts/src/osd/modules.lua4
-rw-r--r--src/osd/modules/render/bgfx/chainentry.cpp7
-rw-r--r--src/osd/modules/render/bgfx/chainentry.h4
-rw-r--r--src/osd/modules/render/bgfx/chainentryreader.cpp15
-rw-r--r--src/osd/modules/render/bgfx/chainmanager.cpp8
-rw-r--r--src/osd/modules/render/bgfx/clear.cpp22
-rw-r--r--src/osd/modules/render/bgfx/clear.h30
-rw-r--r--src/osd/modules/render/bgfx/clearreader.cpp62
-rw-r--r--src/osd/modules/render/bgfx/clearreader.h31
-rw-r--r--src/osd/modules/render/bgfx/effectreader.cpp23
-rw-r--r--src/osd/modules/render/bgfx/shadermanager.cpp34
-rw-r--r--src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_distortion.sc2
161 files changed, 267 insertions, 50 deletions
diff --git a/bgfx/chains/hlsl.json b/bgfx/chains/hlsl.json
index 3f5168140af..985a332ed9d 100644
--- a/bgfx/chains/hlsl.json
+++ b/bgfx/chains/hlsl.json
@@ -189,6 +189,21 @@
// value: Any valid ASCII string.
"name": "NTSC Encode",
+ // clear (optional): How to clear the output target for this particular entry.
+ "clear": {
+ // clearcolor (optional): An array containing an RGBA quadruplet to which to clear the output target.
+ // value: An array of four numeric values of the range 0.0 to 1.0.
+ "clearcolor": [ 0.0, 0.0, 0.0, 0.0 ],
+
+ // cleardepth (optional): A numeric value containing the depth value to which to clear the output target.
+ // value: Any numeric value.
+ "cleardepth": 1.0,
+
+ // clearstencil (optional): A numeric value containing the stencil value to which to clear the output target.
+ // value: An integer value.
+ "clearstencil": 0
+ },
+
// disablewhen (optional): An array of conditions that can be used to disable this pass.
"disablewhen": [
// type (optional): Reserved for future expansion. Currently only "slider" is supported.
diff --git a/bgfx/effects/default/blit.json b/bgfx/effects/default/blit.json
index 5f5ad148148..ed957e812b3 100644
--- a/bgfx/effects/default/blit.json
+++ b/bgfx/effects/default/blit.json
@@ -64,12 +64,12 @@
},
// vertex (required): The vertex shader to use when drawing.
- // value: A string containing the name of a shader file to use, minus the extension.
- "vertex": "vs_blit",
+ // value: A string containing the path and name of a shader file to use, minus the extension.
+ "vertex": "chains/default/vs_blit",
// pixel/fragment (required): The pixel or fragment shader to use when drawing.
- // value: A string containing the name of a shader file to use, minus the extension.
- "fragment": "fs_blit",
+ // value: A string containing the path and name of a shader file to use, minus the extension.
+ "fragment": "chains/default/fs_blit",
// uniforms (required): The list of uniforms for this effect. Can be empty, but must exist.
"uniforms": [
diff --git a/bgfx/effects/hlsl/blit.json b/bgfx/effects/hlsl/blit.json
index 5f5ad148148..1ee3243050f 100644
--- a/bgfx/effects/hlsl/blit.json
+++ b/bgfx/effects/hlsl/blit.json
@@ -64,12 +64,12 @@
},
// vertex (required): The vertex shader to use when drawing.
- // value: A string containing the name of a shader file to use, minus the extension.
- "vertex": "vs_blit",
+ // value: A string containing the path and name of a shader file to use, minus the extension.
+ "vertex": "chains/hlsl/vs_blit",
// pixel/fragment (required): The pixel or fragment shader to use when drawing.
- // value: A string containing the name of a shader file to use, minus the extension.
- "fragment": "fs_blit",
+ // value: A string containing the path and name of a shader file to use, minus the extension.
+ "fragment": "chains/hlsl/fs_blit",
// uniforms (required): The list of uniforms for this effect. Can be empty, but must exist.
"uniforms": [
diff --git a/bgfx/effects/hlsl/color.json b/bgfx/effects/hlsl/color.json
index d5a8d6ca405..52ada823a6b 100644
--- a/bgfx/effects/hlsl/color.json
+++ b/bgfx/effects/hlsl/color.json
@@ -21,8 +21,8 @@
"rgb": true,
"alpha": true
},
- "vertex": "vs_color",
- "fragment": "fs_color",
+ "vertex": "chains/hlsl/vs_color",
+ "fragment": "chains/hlsl/fs_color",
"uniforms": [
{ "name": "s_tex", "type": "int", "values": [ 1.0 ] },
{ "name": "u_red_ratios", "type": "vec4", "values": [ 1.0, 0.0, 0.0, 0.0 ] },
diff --git a/bgfx/effects/hlsl/deconverge.json b/bgfx/effects/hlsl/deconverge.json
index 322a916f47f..df20d8c5069 100644
--- a/bgfx/effects/hlsl/deconverge.json
+++ b/bgfx/effects/hlsl/deconverge.json
@@ -22,8 +22,8 @@
"rgb": true,
"alpha": true
},
- "vertex": "vs_deconverge",
- "fragment": "fs_deconverge",
+ "vertex": "chains/hlsl/vs_deconverge",
+ "fragment": "chains/hlsl/fs_deconverge",
"uniforms": [
{ "name": "s_tex", "type": "int", "values": [ 1.0 ] },
{ "name": "u_source_size", "type": "vec4", "values": [ 256.0, 256.0, 0.0, 0.0 ] },
diff --git a/bgfx/effects/hlsl/defocus.json b/bgfx/effects/hlsl/defocus.json
index b01112de088..c66408a0ca1 100644
--- a/bgfx/effects/hlsl/defocus.json
+++ b/bgfx/effects/hlsl/defocus.json
@@ -21,8 +21,8 @@
"rgb": true,
"alpha": true
},
- "vertex": "vs_defocus",
- "fragment": "fs_defocus",
+ "vertex": "chains/hlsl/vs_defocus",
+ "fragment": "chains/hlsl/fs_defocus",
"uniforms": [
{ "name": "s_tex", "type": "int", "values": [ 1.0 ] },
{ "name": "u_tex_size0", "type": "vec4", "values": [ 1.0, 0.0, 0.0, 0.0 ] },
diff --git a/bgfx/effects/hlsl/distortion.json b/bgfx/effects/hlsl/distortion.json
index 5eb70fa93d1..42a43d95c65 100644
--- a/bgfx/effects/hlsl/distortion.json
+++ b/bgfx/effects/hlsl/distortion.json
@@ -22,8 +22,8 @@
"rgb": true,
"alpha": true
},
- "vertex": "vs_distortion",
- "fragment": "fs_distortion",
+ "vertex": "chains/hlsl/vs_distortion",
+ "fragment": "chains/hlsl/fs_distortion",
"uniforms": [
{ "name": "s_tex", "type": "int", "values": [ 0.0 ] },
{ "name": "u_swap_xy", "type": "vec4", "values": [ 0.0, 0.0, 0.0, 0.0 ] },
diff --git a/bgfx/effects/hlsl/ntsc_decode.json b/bgfx/effects/hlsl/ntsc_decode.json
index 1195669f450..bb18c3a2e56 100644
--- a/bgfx/effects/hlsl/ntsc_decode.json
+++ b/bgfx/effects/hlsl/ntsc_decode.json
@@ -22,8 +22,8 @@
"rgb": true,
"alpha": true
},
- "vertex": "vs_ntsc_decode",
- "fragment": "fs_ntsc_decode",
+ "vertex": "chains/hlsl/vs_ntsc_decode",
+ "fragment": "chains/hlsl/fs_ntsc_decode",
"uniforms": [
{ "name": "s_tex", "type": "int", "values": [ 1.0 ] },
{ "name": "s_screen", "type": "int", "values": [ 1.0 ] },
diff --git a/bgfx/effects/hlsl/ntsc_encode.json b/bgfx/effects/hlsl/ntsc_encode.json
index 1112a21c197..680c14c5931 100644
--- a/bgfx/effects/hlsl/ntsc_encode.json
+++ b/bgfx/effects/hlsl/ntsc_encode.json
@@ -22,8 +22,8 @@
"rgb": true,
"alpha": true
},
- "vertex": "vs_ntsc_encode",
- "fragment": "fs_ntsc_encode",
+ "vertex": "chains/hlsl/vs_ntsc_encode",
+ "fragment": "chains/hlsl/fs_ntsc_encode",
"uniforms": [
{ "name": "s_tex", "type": "int", "values": [ 1.0 ] },
{ "name": "u_source_dims", "type": "vec4", "values": [ 1.0, 1.0, 0.0, 0.0 ] },
diff --git a/bgfx/effects/hlsl/phosphor.json b/bgfx/effects/hlsl/phosphor.json
index 84ad77ad5ed..f5d9d8572e3 100644
--- a/bgfx/effects/hlsl/phosphor.json
+++ b/bgfx/effects/hlsl/phosphor.json
@@ -22,8 +22,8 @@
"rgb": true,
"alpha": true
},
- "vertex": "vs_phosphor",
- "fragment": "fs_phosphor",
+ "vertex": "chains/hlsl/vs_phosphor",
+ "fragment": "chains/hlsl/fs_phosphor",
"uniforms": [
{ "name": "s_tex", "type": "int", "values": [ 1.0 ] },
{ "name": "s_prev", "type": "int", "values": [ 1.0 ] },
diff --git a/bgfx/effects/hlsl/post.json b/bgfx/effects/hlsl/post.json
index 48530433f40..16ebbe01c9f 100644
--- a/bgfx/effects/hlsl/post.json
+++ b/bgfx/effects/hlsl/post.json
@@ -22,8 +22,8 @@
"rgb": true,
"alpha": true
},
- "vertex": "vs_post",
- "fragment": "fs_post",
+ "vertex": "chains/hlsl/vs_post",
+ "fragment": "chains/hlsl/fs_post",
"uniforms": [
{ "name": "s_tex", "type": "int", "values": [ 0.0 ] },
{ "name": "s_shadow", "type": "int", "values": [ 1.0 ] },
diff --git a/bgfx/effects/hlsl/prescale.json b/bgfx/effects/hlsl/prescale.json
index 3026b424876..e58d5ad92dc 100644
--- a/bgfx/effects/hlsl/prescale.json
+++ b/bgfx/effects/hlsl/prescale.json
@@ -22,8 +22,8 @@
"rgb": true,
"alpha": true
},
- "vertex": "vs_prescale",
- "fragment": "fs_prescale",
+ "vertex": "chains/hlsl/vs_prescale",
+ "fragment": "chains/hlsl/fs_prescale",
"uniforms": [
{ "name": "s_tex", "type": "int", "values": [ 1.0 ] },
{ "name": "u_source_dims", "type": "vec4", "values": [ 1.0, 1.0, 0.0, 0.0 ] },
diff --git a/bgfx/effects/unfiltered/blit.json b/bgfx/effects/unfiltered/blit.json
index 5f5ad148148..fe8d78126d2 100644
--- a/bgfx/effects/unfiltered/blit.json
+++ b/bgfx/effects/unfiltered/blit.json
@@ -64,12 +64,12 @@
},
// vertex (required): The vertex shader to use when drawing.
- // value: A string containing the name of a shader file to use, minus the extension.
- "vertex": "vs_blit",
+ // value: A string containing the path and name of a shader file to use, minus the extension.
+ "vertex": "chains/unfiltered/vs_blit",
// pixel/fragment (required): The pixel or fragment shader to use when drawing.
- // value: A string containing the name of a shader file to use, minus the extension.
- "fragment": "fs_blit",
+ // value: A string containing the path and name of a shader file to use, minus the extension.
+ "fragment": "chains/unfiltered/fs_blit",
// uniforms (required): The list of uniforms for this effect. Can be empty, but must exist.
"uniforms": [
diff --git a/bgfx/shaders/dx11/fs_blit.bin b/bgfx/shaders/dx11/chains/hlsl/fs_blit.bin
index 80d85fb1107..80d85fb1107 100644
--- a/bgfx/shaders/dx11/fs_blit.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/fs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_color.bin b/bgfx/shaders/dx11/chains/hlsl/fs_color.bin
index e70c00970e0..e70c00970e0 100644
--- a/bgfx/shaders/dx11/fs_color.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/fs_color.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_deconverge.bin b/bgfx/shaders/dx11/chains/hlsl/fs_deconverge.bin
index 6409659a035..6409659a035 100644
--- a/bgfx/shaders/dx11/fs_deconverge.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/fs_deconverge.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_defocus.bin b/bgfx/shaders/dx11/chains/hlsl/fs_defocus.bin
index 1636abdef10..1636abdef10 100644
--- a/bgfx/shaders/dx11/fs_defocus.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/fs_defocus.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_distortion.bin b/bgfx/shaders/dx11/chains/hlsl/fs_distortion.bin
index a989980df37..d5f7f3b16e2 100644
--- a/bgfx/shaders/dx11/fs_distortion.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/fs_distortion.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_ntsc_decode.bin b/bgfx/shaders/dx11/chains/hlsl/fs_ntsc_decode.bin
index ded01d9cefa..ded01d9cefa 100644
--- a/bgfx/shaders/dx11/fs_ntsc_decode.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/fs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_ntsc_encode.bin b/bgfx/shaders/dx11/chains/hlsl/fs_ntsc_encode.bin
index 805958817ab..805958817ab 100644
--- a/bgfx/shaders/dx11/fs_ntsc_encode.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/fs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_phosphor.bin b/bgfx/shaders/dx11/chains/hlsl/fs_phosphor.bin
index aedfd3dead3..aedfd3dead3 100644
--- a/bgfx/shaders/dx11/fs_phosphor.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/fs_phosphor.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_post.bin b/bgfx/shaders/dx11/chains/hlsl/fs_post.bin
index b436f6b57eb..b436f6b57eb 100644
--- a/bgfx/shaders/dx11/fs_post.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/fs_post.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_prescale.bin b/bgfx/shaders/dx11/chains/hlsl/fs_prescale.bin
index 80d85fb1107..80d85fb1107 100644
--- a/bgfx/shaders/dx11/fs_prescale.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/fs_prescale.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_blit.bin b/bgfx/shaders/dx11/chains/hlsl/vs_blit.bin
index b0bebf9da4c..b0bebf9da4c 100644
--- a/bgfx/shaders/dx11/vs_blit.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/vs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_color.bin b/bgfx/shaders/dx11/chains/hlsl/vs_color.bin
index b0bebf9da4c..b0bebf9da4c 100644
--- a/bgfx/shaders/dx11/vs_color.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/vs_color.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_deconverge.bin b/bgfx/shaders/dx11/chains/hlsl/vs_deconverge.bin
index d7604280bc2..d7604280bc2 100644
--- a/bgfx/shaders/dx11/vs_deconverge.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/vs_deconverge.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_defocus.bin b/bgfx/shaders/dx11/chains/hlsl/vs_defocus.bin
index b0bebf9da4c..b0bebf9da4c 100644
--- a/bgfx/shaders/dx11/vs_defocus.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/vs_defocus.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_distortion.bin b/bgfx/shaders/dx11/chains/hlsl/vs_distortion.bin
index b0bebf9da4c..b0bebf9da4c 100644
--- a/bgfx/shaders/dx11/vs_distortion.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/vs_distortion.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_ntsc_decode.bin b/bgfx/shaders/dx11/chains/hlsl/vs_ntsc_decode.bin
index b0bebf9da4c..b0bebf9da4c 100644
--- a/bgfx/shaders/dx11/vs_ntsc_decode.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/vs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_ntsc_encode.bin b/bgfx/shaders/dx11/chains/hlsl/vs_ntsc_encode.bin
index b0bebf9da4c..b0bebf9da4c 100644
--- a/bgfx/shaders/dx11/vs_ntsc_encode.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/vs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_phosphor.bin b/bgfx/shaders/dx11/chains/hlsl/vs_phosphor.bin
index b0bebf9da4c..b0bebf9da4c 100644
--- a/bgfx/shaders/dx11/vs_phosphor.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/vs_phosphor.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_post.bin b/bgfx/shaders/dx11/chains/hlsl/vs_post.bin
index b0bebf9da4c..b0bebf9da4c 100644
--- a/bgfx/shaders/dx11/vs_post.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/vs_post.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_prescale.bin b/bgfx/shaders/dx11/chains/hlsl/vs_prescale.bin
index b0bebf9da4c..b0bebf9da4c 100644
--- a/bgfx/shaders/dx11/vs_prescale.bin
+++ b/bgfx/shaders/dx11/chains/hlsl/vs_prescale.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/chains/unfiltered/fs_blit.bin b/bgfx/shaders/dx11/chains/unfiltered/fs_blit.bin
new file mode 100644
index 00000000000..80d85fb1107
--- /dev/null
+++ b/bgfx/shaders/dx11/chains/unfiltered/fs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/chains/unfiltered/vs_blit.bin b/bgfx/shaders/dx11/chains/unfiltered/vs_blit.bin
new file mode 100644
index 00000000000..b0bebf9da4c
--- /dev/null
+++ b/bgfx/shaders/dx11/chains/unfiltered/vs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_ntsc.bin b/bgfx/shaders/dx11/fs_ntsc.bin
deleted file mode 100644
index 5624d13ce66..00000000000
--- a/bgfx/shaders/dx11/fs_ntsc.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_ratios.bin b/bgfx/shaders/dx11/fs_ratios.bin
deleted file mode 100644
index e55574117d5..00000000000
--- a/bgfx/shaders/dx11/fs_ratios.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_tint.bin b/bgfx/shaders/dx11/fs_tint.bin
deleted file mode 100644
index 708682bdaed..00000000000
--- a/bgfx/shaders/dx11/fs_tint.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_ntsc.bin b/bgfx/shaders/dx11/vs_ntsc.bin
deleted file mode 100644
index 9d289b789dc..00000000000
--- a/bgfx/shaders/dx11/vs_ntsc.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_ratios.bin b/bgfx/shaders/dx11/vs_ratios.bin
deleted file mode 100644
index 3b79123d4f9..00000000000
--- a/bgfx/shaders/dx11/vs_ratios.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_tint.bin b/bgfx/shaders/dx11/vs_tint.bin
deleted file mode 100644
index 1545fd6243a..00000000000
--- a/bgfx/shaders/dx11/vs_tint.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_blit.bin b/bgfx/shaders/dx9/chains/hlsl/fs_blit.bin
index ef8fa0730c3..ef8fa0730c3 100644
--- a/bgfx/shaders/dx9/fs_blit.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/fs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_color.bin b/bgfx/shaders/dx9/chains/hlsl/fs_color.bin
index 985cf1bc91a..985cf1bc91a 100644
--- a/bgfx/shaders/dx9/fs_color.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/fs_color.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_deconverge.bin b/bgfx/shaders/dx9/chains/hlsl/fs_deconverge.bin
index 8f85b74868b..8f85b74868b 100644
--- a/bgfx/shaders/dx9/fs_deconverge.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/fs_deconverge.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_defocus.bin b/bgfx/shaders/dx9/chains/hlsl/fs_defocus.bin
index fe909ee1f26..fe909ee1f26 100644
--- a/bgfx/shaders/dx9/fs_defocus.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/fs_defocus.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_distortion.bin b/bgfx/shaders/dx9/chains/hlsl/fs_distortion.bin
index 0c2025bbcc6..8ee4383d303 100644
--- a/bgfx/shaders/dx9/fs_distortion.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/fs_distortion.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_ntsc_decode.bin b/bgfx/shaders/dx9/chains/hlsl/fs_ntsc_decode.bin
index ec66f2a38a9..ec66f2a38a9 100644
--- a/bgfx/shaders/dx9/fs_ntsc_decode.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/fs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_ntsc_encode.bin b/bgfx/shaders/dx9/chains/hlsl/fs_ntsc_encode.bin
index ad313e3da19..ad313e3da19 100644
--- a/bgfx/shaders/dx9/fs_ntsc_encode.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/fs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_phosphor.bin b/bgfx/shaders/dx9/chains/hlsl/fs_phosphor.bin
index cfbdd71f188..cfbdd71f188 100644
--- a/bgfx/shaders/dx9/fs_phosphor.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/fs_phosphor.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_post.bin b/bgfx/shaders/dx9/chains/hlsl/fs_post.bin
index f8f79b90ab6..f8f79b90ab6 100644
--- a/bgfx/shaders/dx9/fs_post.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/fs_post.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_prescale.bin b/bgfx/shaders/dx9/chains/hlsl/fs_prescale.bin
index ef8fa0730c3..ef8fa0730c3 100644
--- a/bgfx/shaders/dx9/fs_prescale.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/fs_prescale.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/vs_blit.bin b/bgfx/shaders/dx9/chains/hlsl/vs_blit.bin
index ea94c83e62d..ea94c83e62d 100644
--- a/bgfx/shaders/dx9/vs_blit.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/vs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/vs_color.bin b/bgfx/shaders/dx9/chains/hlsl/vs_color.bin
index ea94c83e62d..ea94c83e62d 100644
--- a/bgfx/shaders/dx9/vs_color.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/vs_color.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/vs_deconverge.bin b/bgfx/shaders/dx9/chains/hlsl/vs_deconverge.bin
index 3d90ec3803a..3d90ec3803a 100644
--- a/bgfx/shaders/dx9/vs_deconverge.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/vs_deconverge.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/vs_defocus.bin b/bgfx/shaders/dx9/chains/hlsl/vs_defocus.bin
index ea94c83e62d..ea94c83e62d 100644
--- a/bgfx/shaders/dx9/vs_defocus.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/vs_defocus.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/vs_distortion.bin b/bgfx/shaders/dx9/chains/hlsl/vs_distortion.bin
index ea94c83e62d..ea94c83e62d 100644
--- a/bgfx/shaders/dx9/vs_distortion.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/vs_distortion.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/vs_ntsc_decode.bin b/bgfx/shaders/dx9/chains/hlsl/vs_ntsc_decode.bin
index ea94c83e62d..ea94c83e62d 100644
--- a/bgfx/shaders/dx9/vs_ntsc_decode.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/vs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/vs_ntsc_encode.bin b/bgfx/shaders/dx9/chains/hlsl/vs_ntsc_encode.bin
index ea94c83e62d..ea94c83e62d 100644
--- a/bgfx/shaders/dx9/vs_ntsc_encode.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/vs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/vs_phosphor.bin b/bgfx/shaders/dx9/chains/hlsl/vs_phosphor.bin
index ea94c83e62d..ea94c83e62d 100644
--- a/bgfx/shaders/dx9/vs_phosphor.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/vs_phosphor.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/vs_post.bin b/bgfx/shaders/dx9/chains/hlsl/vs_post.bin
index ea94c83e62d..ea94c83e62d 100644
--- a/bgfx/shaders/dx9/vs_post.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/vs_post.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/vs_prescale.bin b/bgfx/shaders/dx9/chains/hlsl/vs_prescale.bin
index ea94c83e62d..ea94c83e62d 100644
--- a/bgfx/shaders/dx9/vs_prescale.bin
+++ b/bgfx/shaders/dx9/chains/hlsl/vs_prescale.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/chains/unfiltered/fs_blit.bin b/bgfx/shaders/dx9/chains/unfiltered/fs_blit.bin
new file mode 100644
index 00000000000..ef8fa0730c3
--- /dev/null
+++ b/bgfx/shaders/dx9/chains/unfiltered/fs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/chains/unfiltered/vs_blit.bin b/bgfx/shaders/dx9/chains/unfiltered/vs_blit.bin
new file mode 100644
index 00000000000..ea94c83e62d
--- /dev/null
+++ b/bgfx/shaders/dx9/chains/unfiltered/vs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_ntsc.bin b/bgfx/shaders/dx9/fs_ntsc.bin
deleted file mode 100644
index 1b9a7785023..00000000000
--- a/bgfx/shaders/dx9/fs_ntsc.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_ratios.bin b/bgfx/shaders/dx9/fs_ratios.bin
deleted file mode 100644
index 375debeac28..00000000000
--- a/bgfx/shaders/dx9/fs_ratios.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_tint.bin b/bgfx/shaders/dx9/fs_tint.bin
deleted file mode 100644
index 1fb18e25c33..00000000000
--- a/bgfx/shaders/dx9/fs_tint.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/dx9/vs_ntsc.bin b/bgfx/shaders/dx9/vs_ntsc.bin
deleted file mode 100644
index ffafd21caeb..00000000000
--- a/bgfx/shaders/dx9/vs_ntsc.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/dx9/vs_ratios.bin b/bgfx/shaders/dx9/vs_ratios.bin
deleted file mode 100644
index 5ce3eb8455d..00000000000
--- a/bgfx/shaders/dx9/vs_ratios.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/dx9/vs_tint.bin b/bgfx/shaders/dx9/vs_tint.bin
deleted file mode 100644
index 7215174a794..00000000000
--- a/bgfx/shaders/dx9/vs_tint.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/gles/fs_blit.bin b/bgfx/shaders/gles/chains/hlsl/fs_blit.bin
index 22e2f0c23d0..22e2f0c23d0 100644
--- a/bgfx/shaders/gles/fs_blit.bin
+++ b/bgfx/shaders/gles/chains/hlsl/fs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/gles/fs_color.bin b/bgfx/shaders/gles/chains/hlsl/fs_color.bin
index a0379220e9c..a0379220e9c 100644
--- a/bgfx/shaders/gles/fs_color.bin
+++ b/bgfx/shaders/gles/chains/hlsl/fs_color.bin
Binary files differ
diff --git a/bgfx/shaders/gles/fs_deconverge.bin b/bgfx/shaders/gles/chains/hlsl/fs_deconverge.bin
index 855f8019b5c..855f8019b5c 100644
--- a/bgfx/shaders/gles/fs_deconverge.bin
+++ b/bgfx/shaders/gles/chains/hlsl/fs_deconverge.bin
Binary files differ
diff --git a/bgfx/shaders/gles/fs_defocus.bin b/bgfx/shaders/gles/chains/hlsl/fs_defocus.bin
index 5d29797339f..5d29797339f 100644
--- a/bgfx/shaders/gles/fs_defocus.bin
+++ b/bgfx/shaders/gles/chains/hlsl/fs_defocus.bin
Binary files differ
diff --git a/bgfx/shaders/gles/fs_distortion.bin b/bgfx/shaders/gles/chains/hlsl/fs_distortion.bin
index 53e7b262a43..b3066b53170 100644
--- a/bgfx/shaders/gles/fs_distortion.bin
+++ b/bgfx/shaders/gles/chains/hlsl/fs_distortion.bin
Binary files differ
diff --git a/bgfx/shaders/gles/fs_ntsc_decode.bin b/bgfx/shaders/gles/chains/hlsl/fs_ntsc_decode.bin
index d1e69f5e0e3..d1e69f5e0e3 100644
--- a/bgfx/shaders/gles/fs_ntsc_decode.bin
+++ b/bgfx/shaders/gles/chains/hlsl/fs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/gles/fs_ntsc_encode.bin b/bgfx/shaders/gles/chains/hlsl/fs_ntsc_encode.bin
index 539db74272f..539db74272f 100644
--- a/bgfx/shaders/gles/fs_ntsc_encode.bin
+++ b/bgfx/shaders/gles/chains/hlsl/fs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/gles/fs_phosphor.bin b/bgfx/shaders/gles/chains/hlsl/fs_phosphor.bin
index 067b1581379..067b1581379 100644
--- a/bgfx/shaders/gles/fs_phosphor.bin
+++ b/bgfx/shaders/gles/chains/hlsl/fs_phosphor.bin
Binary files differ
diff --git a/bgfx/shaders/gles/fs_post.bin b/bgfx/shaders/gles/chains/hlsl/fs_post.bin
index 0d5393b4be6..0d5393b4be6 100644
--- a/bgfx/shaders/gles/fs_post.bin
+++ b/bgfx/shaders/gles/chains/hlsl/fs_post.bin
Binary files differ
diff --git a/bgfx/shaders/gles/fs_prescale.bin b/bgfx/shaders/gles/chains/hlsl/fs_prescale.bin
index 22e2f0c23d0..22e2f0c23d0 100644
--- a/bgfx/shaders/gles/fs_prescale.bin
+++ b/bgfx/shaders/gles/chains/hlsl/fs_prescale.bin
Binary files differ
diff --git a/bgfx/shaders/gles/vs_blit.bin b/bgfx/shaders/gles/chains/hlsl/vs_blit.bin
index 9dd618de8a0..9dd618de8a0 100644
--- a/bgfx/shaders/gles/vs_blit.bin
+++ b/bgfx/shaders/gles/chains/hlsl/vs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/gles/vs_color.bin b/bgfx/shaders/gles/chains/hlsl/vs_color.bin
index 9dd618de8a0..9dd618de8a0 100644
--- a/bgfx/shaders/gles/vs_color.bin
+++ b/bgfx/shaders/gles/chains/hlsl/vs_color.bin
Binary files differ
diff --git a/bgfx/shaders/gles/vs_deconverge.bin b/bgfx/shaders/gles/chains/hlsl/vs_deconverge.bin
index 08aeca09e23..08aeca09e23 100644
--- a/bgfx/shaders/gles/vs_deconverge.bin
+++ b/bgfx/shaders/gles/chains/hlsl/vs_deconverge.bin
Binary files differ
diff --git a/bgfx/shaders/gles/vs_defocus.bin b/bgfx/shaders/gles/chains/hlsl/vs_defocus.bin
index 9dd618de8a0..9dd618de8a0 100644
--- a/bgfx/shaders/gles/vs_defocus.bin
+++ b/bgfx/shaders/gles/chains/hlsl/vs_defocus.bin
Binary files differ
diff --git a/bgfx/shaders/gles/vs_distortion.bin b/bgfx/shaders/gles/chains/hlsl/vs_distortion.bin
index 9dd618de8a0..9dd618de8a0 100644
--- a/bgfx/shaders/gles/vs_distortion.bin
+++ b/bgfx/shaders/gles/chains/hlsl/vs_distortion.bin
Binary files differ
diff --git a/bgfx/shaders/gles/vs_ntsc_decode.bin b/bgfx/shaders/gles/chains/hlsl/vs_ntsc_decode.bin
index 9dd618de8a0..9dd618de8a0 100644
--- a/bgfx/shaders/gles/vs_ntsc_decode.bin
+++ b/bgfx/shaders/gles/chains/hlsl/vs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/gles/vs_ntsc_encode.bin b/bgfx/shaders/gles/chains/hlsl/vs_ntsc_encode.bin
index 9dd618de8a0..9dd618de8a0 100644
--- a/bgfx/shaders/gles/vs_ntsc_encode.bin
+++ b/bgfx/shaders/gles/chains/hlsl/vs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/gles/vs_phosphor.bin b/bgfx/shaders/gles/chains/hlsl/vs_phosphor.bin
index 9dd618de8a0..9dd618de8a0 100644
--- a/bgfx/shaders/gles/vs_phosphor.bin
+++ b/bgfx/shaders/gles/chains/hlsl/vs_phosphor.bin
Binary files differ
diff --git a/bgfx/shaders/gles/vs_post.bin b/bgfx/shaders/gles/chains/hlsl/vs_post.bin
index 9dd618de8a0..9dd618de8a0 100644
--- a/bgfx/shaders/gles/vs_post.bin
+++ b/bgfx/shaders/gles/chains/hlsl/vs_post.bin
Binary files differ
diff --git a/bgfx/shaders/gles/vs_prescale.bin b/bgfx/shaders/gles/chains/hlsl/vs_prescale.bin
index 9dd618de8a0..9dd618de8a0 100644
--- a/bgfx/shaders/gles/vs_prescale.bin
+++ b/bgfx/shaders/gles/chains/hlsl/vs_prescale.bin
Binary files differ
diff --git a/bgfx/shaders/gles/chains/unfiltered/fs_blit.bin b/bgfx/shaders/gles/chains/unfiltered/fs_blit.bin
new file mode 100644
index 00000000000..22e2f0c23d0
--- /dev/null
+++ b/bgfx/shaders/gles/chains/unfiltered/fs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/gles/vs_ntsc.bin b/bgfx/shaders/gles/chains/unfiltered/vs_blit.bin
index 9dd618de8a0..9dd618de8a0 100644
--- a/bgfx/shaders/gles/vs_ntsc.bin
+++ b/bgfx/shaders/gles/chains/unfiltered/vs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/gles/fs_ntsc.bin b/bgfx/shaders/gles/fs_ntsc.bin
deleted file mode 100644
index 7fa4e782c2b..00000000000
--- a/bgfx/shaders/gles/fs_ntsc.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/gles/fs_ratios.bin b/bgfx/shaders/gles/fs_ratios.bin
deleted file mode 100644
index 2f053c136f7..00000000000
--- a/bgfx/shaders/gles/fs_ratios.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/gles/fs_tint.bin b/bgfx/shaders/gles/fs_tint.bin
deleted file mode 100644
index 2e9ac7c950e..00000000000
--- a/bgfx/shaders/gles/fs_tint.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/gles/vs_ratios.bin b/bgfx/shaders/gles/vs_ratios.bin
deleted file mode 100644
index 9dd618de8a0..00000000000
--- a/bgfx/shaders/gles/vs_ratios.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/gles/vs_tint.bin b/bgfx/shaders/gles/vs_tint.bin
deleted file mode 100644
index 9dd618de8a0..00000000000
--- a/bgfx/shaders/gles/vs_tint.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_blit.bin b/bgfx/shaders/glsl/chains/hlsl/fs_blit.bin
index db0fe2b487b..db0fe2b487b 100644
--- a/bgfx/shaders/glsl/fs_blit.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/fs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_color.bin b/bgfx/shaders/glsl/chains/hlsl/fs_color.bin
index fc0baf998d5..fc0baf998d5 100644
--- a/bgfx/shaders/glsl/fs_color.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/fs_color.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_deconverge.bin b/bgfx/shaders/glsl/chains/hlsl/fs_deconverge.bin
index 96136e77f17..96136e77f17 100644
--- a/bgfx/shaders/glsl/fs_deconverge.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/fs_deconverge.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_defocus.bin b/bgfx/shaders/glsl/chains/hlsl/fs_defocus.bin
index 27765612664..27765612664 100644
--- a/bgfx/shaders/glsl/fs_defocus.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/fs_defocus.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_distortion.bin b/bgfx/shaders/glsl/chains/hlsl/fs_distortion.bin
index 149e638711c..b69a3712bb9 100644
--- a/bgfx/shaders/glsl/fs_distortion.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/fs_distortion.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_ntsc_decode.bin b/bgfx/shaders/glsl/chains/hlsl/fs_ntsc_decode.bin
index 9bb6f3b1db8..9bb6f3b1db8 100644
--- a/bgfx/shaders/glsl/fs_ntsc_decode.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/fs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_ntsc_encode.bin b/bgfx/shaders/glsl/chains/hlsl/fs_ntsc_encode.bin
index 2f316b21936..2f316b21936 100644
--- a/bgfx/shaders/glsl/fs_ntsc_encode.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/fs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_phosphor.bin b/bgfx/shaders/glsl/chains/hlsl/fs_phosphor.bin
index 3f69ea62056..3f69ea62056 100644
--- a/bgfx/shaders/glsl/fs_phosphor.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/fs_phosphor.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_post.bin b/bgfx/shaders/glsl/chains/hlsl/fs_post.bin
index 4af086c0e8b..4af086c0e8b 100644
--- a/bgfx/shaders/glsl/fs_post.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/fs_post.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_prescale.bin b/bgfx/shaders/glsl/chains/hlsl/fs_prescale.bin
index db0fe2b487b..db0fe2b487b 100644
--- a/bgfx/shaders/glsl/fs_prescale.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/fs_prescale.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/vs_blit.bin b/bgfx/shaders/glsl/chains/hlsl/vs_blit.bin
index af6c9349f41..af6c9349f41 100644
--- a/bgfx/shaders/glsl/vs_blit.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/vs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/vs_color.bin b/bgfx/shaders/glsl/chains/hlsl/vs_color.bin
index af6c9349f41..af6c9349f41 100644
--- a/bgfx/shaders/glsl/vs_color.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/vs_color.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/vs_deconverge.bin b/bgfx/shaders/glsl/chains/hlsl/vs_deconverge.bin
index 2398d71b227..2398d71b227 100644
--- a/bgfx/shaders/glsl/vs_deconverge.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/vs_deconverge.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/vs_defocus.bin b/bgfx/shaders/glsl/chains/hlsl/vs_defocus.bin
index af6c9349f41..af6c9349f41 100644
--- a/bgfx/shaders/glsl/vs_defocus.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/vs_defocus.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/vs_distortion.bin b/bgfx/shaders/glsl/chains/hlsl/vs_distortion.bin
index af6c9349f41..af6c9349f41 100644
--- a/bgfx/shaders/glsl/vs_distortion.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/vs_distortion.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/vs_ntsc_decode.bin b/bgfx/shaders/glsl/chains/hlsl/vs_ntsc_decode.bin
index af6c9349f41..af6c9349f41 100644
--- a/bgfx/shaders/glsl/vs_ntsc_decode.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/vs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/vs_ntsc_encode.bin b/bgfx/shaders/glsl/chains/hlsl/vs_ntsc_encode.bin
index af6c9349f41..af6c9349f41 100644
--- a/bgfx/shaders/glsl/vs_ntsc_encode.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/vs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/vs_phosphor.bin b/bgfx/shaders/glsl/chains/hlsl/vs_phosphor.bin
index af6c9349f41..af6c9349f41 100644
--- a/bgfx/shaders/glsl/vs_phosphor.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/vs_phosphor.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/vs_post.bin b/bgfx/shaders/glsl/chains/hlsl/vs_post.bin
index af6c9349f41..af6c9349f41 100644
--- a/bgfx/shaders/glsl/vs_post.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/vs_post.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/vs_prescale.bin b/bgfx/shaders/glsl/chains/hlsl/vs_prescale.bin
index af6c9349f41..af6c9349f41 100644
--- a/bgfx/shaders/glsl/vs_prescale.bin
+++ b/bgfx/shaders/glsl/chains/hlsl/vs_prescale.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/chains/unfiltered/fs_blit.bin b/bgfx/shaders/glsl/chains/unfiltered/fs_blit.bin
new file mode 100644
index 00000000000..db0fe2b487b
--- /dev/null
+++ b/bgfx/shaders/glsl/chains/unfiltered/fs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/vs_ntsc.bin b/bgfx/shaders/glsl/chains/unfiltered/vs_blit.bin
index af6c9349f41..af6c9349f41 100644
--- a/bgfx/shaders/glsl/vs_ntsc.bin
+++ b/bgfx/shaders/glsl/chains/unfiltered/vs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_ntsc.bin b/bgfx/shaders/glsl/fs_ntsc.bin
deleted file mode 100644
index c7db0275fa1..00000000000
--- a/bgfx/shaders/glsl/fs_ntsc.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_ratios.bin b/bgfx/shaders/glsl/fs_ratios.bin
deleted file mode 100644
index 7fea68ef815..00000000000
--- a/bgfx/shaders/glsl/fs_ratios.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_tint.bin b/bgfx/shaders/glsl/fs_tint.bin
deleted file mode 100644
index 762a5dc2f4b..00000000000
--- a/bgfx/shaders/glsl/fs_tint.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/glsl/vs_ratios.bin b/bgfx/shaders/glsl/vs_ratios.bin
deleted file mode 100644
index af6c9349f41..00000000000
--- a/bgfx/shaders/glsl/vs_ratios.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/glsl/vs_tint.bin b/bgfx/shaders/glsl/vs_tint.bin
deleted file mode 100644
index af6c9349f41..00000000000
--- a/bgfx/shaders/glsl/vs_tint.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/metal/fs_blit.bin b/bgfx/shaders/metal/chains/hlsl/fs_blit.bin
index 6a3da392480..6a3da392480 100644
--- a/bgfx/shaders/metal/fs_blit.bin
+++ b/bgfx/shaders/metal/chains/hlsl/fs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/metal/fs_color.bin b/bgfx/shaders/metal/chains/hlsl/fs_color.bin
index 41355632c6d..41355632c6d 100644
--- a/bgfx/shaders/metal/fs_color.bin
+++ b/bgfx/shaders/metal/chains/hlsl/fs_color.bin
Binary files differ
diff --git a/bgfx/shaders/metal/fs_deconverge.bin b/bgfx/shaders/metal/chains/hlsl/fs_deconverge.bin
index ff76a618ee1..ff76a618ee1 100644
--- a/bgfx/shaders/metal/fs_deconverge.bin
+++ b/bgfx/shaders/metal/chains/hlsl/fs_deconverge.bin
Binary files differ
diff --git a/bgfx/shaders/metal/fs_defocus.bin b/bgfx/shaders/metal/chains/hlsl/fs_defocus.bin
index ab14379b016..ab14379b016 100644
--- a/bgfx/shaders/metal/fs_defocus.bin
+++ b/bgfx/shaders/metal/chains/hlsl/fs_defocus.bin
Binary files differ
diff --git a/bgfx/shaders/metal/fs_distortion.bin b/bgfx/shaders/metal/chains/hlsl/fs_distortion.bin
index b1d6bd4c79d..512262b52a7 100644
--- a/bgfx/shaders/metal/fs_distortion.bin
+++ b/bgfx/shaders/metal/chains/hlsl/fs_distortion.bin
Binary files differ
diff --git a/bgfx/shaders/metal/fs_ntsc_decode.bin b/bgfx/shaders/metal/chains/hlsl/fs_ntsc_decode.bin
index 1436bc4707c..1436bc4707c 100644
--- a/bgfx/shaders/metal/fs_ntsc_decode.bin
+++ b/bgfx/shaders/metal/chains/hlsl/fs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/metal/fs_ntsc_encode.bin b/bgfx/shaders/metal/chains/hlsl/fs_ntsc_encode.bin
index f961d2c9ab6..f961d2c9ab6 100644
--- a/bgfx/shaders/metal/fs_ntsc_encode.bin
+++ b/bgfx/shaders/metal/chains/hlsl/fs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/metal/fs_phosphor.bin b/bgfx/shaders/metal/chains/hlsl/fs_phosphor.bin
index 704d6aacf61..704d6aacf61 100644
--- a/bgfx/shaders/metal/fs_phosphor.bin
+++ b/bgfx/shaders/metal/chains/hlsl/fs_phosphor.bin
Binary files differ
diff --git a/bgfx/shaders/metal/fs_post.bin b/bgfx/shaders/metal/chains/hlsl/fs_post.bin
index 3b137b24671..3b137b24671 100644
--- a/bgfx/shaders/metal/fs_post.bin
+++ b/bgfx/shaders/metal/chains/hlsl/fs_post.bin
Binary files differ
diff --git a/bgfx/shaders/metal/fs_prescale.bin b/bgfx/shaders/metal/chains/hlsl/fs_prescale.bin
index 6a3da392480..6a3da392480 100644
--- a/bgfx/shaders/metal/fs_prescale.bin
+++ b/bgfx/shaders/metal/chains/hlsl/fs_prescale.bin
Binary files differ
diff --git a/bgfx/shaders/metal/vs_blit.bin b/bgfx/shaders/metal/chains/hlsl/vs_blit.bin
index 122b7dee5c3..122b7dee5c3 100644
--- a/bgfx/shaders/metal/vs_blit.bin
+++ b/bgfx/shaders/metal/chains/hlsl/vs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/metal/vs_color.bin b/bgfx/shaders/metal/chains/hlsl/vs_color.bin
index 122b7dee5c3..122b7dee5c3 100644
--- a/bgfx/shaders/metal/vs_color.bin
+++ b/bgfx/shaders/metal/chains/hlsl/vs_color.bin
Binary files differ
diff --git a/bgfx/shaders/metal/vs_deconverge.bin b/bgfx/shaders/metal/chains/hlsl/vs_deconverge.bin
index b1b64cf68fa..b1b64cf68fa 100644
--- a/bgfx/shaders/metal/vs_deconverge.bin
+++ b/bgfx/shaders/metal/chains/hlsl/vs_deconverge.bin
Binary files differ
diff --git a/bgfx/shaders/metal/vs_defocus.bin b/bgfx/shaders/metal/chains/hlsl/vs_defocus.bin
index 122b7dee5c3..122b7dee5c3 100644
--- a/bgfx/shaders/metal/vs_defocus.bin
+++ b/bgfx/shaders/metal/chains/hlsl/vs_defocus.bin
Binary files differ
diff --git a/bgfx/shaders/metal/vs_distortion.bin b/bgfx/shaders/metal/chains/hlsl/vs_distortion.bin
index 122b7dee5c3..122b7dee5c3 100644
--- a/bgfx/shaders/metal/vs_distortion.bin
+++ b/bgfx/shaders/metal/chains/hlsl/vs_distortion.bin
Binary files differ
diff --git a/bgfx/shaders/metal/vs_ntsc_decode.bin b/bgfx/shaders/metal/chains/hlsl/vs_ntsc_decode.bin
index 122b7dee5c3..122b7dee5c3 100644
--- a/bgfx/shaders/metal/vs_ntsc_decode.bin
+++ b/bgfx/shaders/metal/chains/hlsl/vs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/metal/vs_ntsc_encode.bin b/bgfx/shaders/metal/chains/hlsl/vs_ntsc_encode.bin
index 122b7dee5c3..122b7dee5c3 100644
--- a/bgfx/shaders/metal/vs_ntsc_encode.bin
+++ b/bgfx/shaders/metal/chains/hlsl/vs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/metal/vs_phosphor.bin b/bgfx/shaders/metal/chains/hlsl/vs_phosphor.bin
index 122b7dee5c3..122b7dee5c3 100644
--- a/bgfx/shaders/metal/vs_phosphor.bin
+++ b/bgfx/shaders/metal/chains/hlsl/vs_phosphor.bin
Binary files differ
diff --git a/bgfx/shaders/metal/vs_post.bin b/bgfx/shaders/metal/chains/hlsl/vs_post.bin
index 122b7dee5c3..122b7dee5c3 100644
--- a/bgfx/shaders/metal/vs_post.bin
+++ b/bgfx/shaders/metal/chains/hlsl/vs_post.bin
Binary files differ
diff --git a/bgfx/shaders/metal/vs_prescale.bin b/bgfx/shaders/metal/chains/hlsl/vs_prescale.bin
index 122b7dee5c3..122b7dee5c3 100644
--- a/bgfx/shaders/metal/vs_prescale.bin
+++ b/bgfx/shaders/metal/chains/hlsl/vs_prescale.bin
Binary files differ
diff --git a/bgfx/shaders/metal/fs_tint.bin b/bgfx/shaders/metal/chains/unfiltered/fs_blit.bin
index 3168babec2c..6a3da392480 100644
--- a/bgfx/shaders/metal/fs_tint.bin
+++ b/bgfx/shaders/metal/chains/unfiltered/fs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/metal/vs_ntsc.bin b/bgfx/shaders/metal/chains/unfiltered/vs_blit.bin
index 122b7dee5c3..122b7dee5c3 100644
--- a/bgfx/shaders/metal/vs_ntsc.bin
+++ b/bgfx/shaders/metal/chains/unfiltered/vs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/metal/fs_ntsc.bin b/bgfx/shaders/metal/fs_ntsc.bin
deleted file mode 100644
index 47267c922b6..00000000000
--- a/bgfx/shaders/metal/fs_ntsc.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/metal/fs_ratios.bin b/bgfx/shaders/metal/fs_ratios.bin
deleted file mode 100644
index 1c36f16eccd..00000000000
--- a/bgfx/shaders/metal/fs_ratios.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/metal/vs_ratios.bin b/bgfx/shaders/metal/vs_ratios.bin
deleted file mode 100644
index 122b7dee5c3..00000000000
--- a/bgfx/shaders/metal/vs_ratios.bin
+++ /dev/null
Binary files differ
diff --git a/bgfx/shaders/metal/vs_tint.bin b/bgfx/shaders/metal/vs_tint.bin
deleted file mode 100644
index 122b7dee5c3..00000000000
--- a/bgfx/shaders/metal/vs_tint.bin
+++ /dev/null
Binary files differ
diff --git a/scripts/src/osd/modules.lua b/scripts/src/osd/modules.lua
index 91eaa395ba1..11c69108ec2 100644
--- a/scripts/src/osd/modules.lua
+++ b/scripts/src/osd/modules.lua
@@ -162,6 +162,10 @@ function osdmodulesbuild()
MAME_DIR .. "src/osd/modules/render/bgfx/chainentryreader.cpp",
MAME_DIR .. "src/osd/modules/render/bgfx/chainmanager.cpp",
MAME_DIR .. "src/osd/modules/render/bgfx/chainreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/clear.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/clear.h",
+ MAME_DIR .. "src/osd/modules/render/bgfx/clearreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/clearreader.h",
MAME_DIR .. "src/osd/modules/render/bgfx/cullreader.cpp",
MAME_DIR .. "src/osd/modules/render/bgfx/depthreader.cpp",
MAME_DIR .. "src/osd/modules/render/bgfx/effect.cpp",
diff --git a/src/osd/modules/render/bgfx/chainentry.cpp b/src/osd/modules/render/bgfx/chainentry.cpp
index a5f091a554b..c30139e17c4 100644
--- a/src/osd/modules/render/bgfx/chainentry.cpp
+++ b/src/osd/modules/render/bgfx/chainentry.cpp
@@ -17,6 +17,7 @@
#include "chainentry.h"
#include "effect.h"
+#include "clear.h"
#include "texture.h"
#include "target.h"
#include "entryuniform.h"
@@ -27,9 +28,10 @@
#include "render.h"
-bgfx_chain_entry::bgfx_chain_entry(std::string name, bgfx_effect* effect, std::vector<bgfx_suppressor*> suppressors, std::vector<bgfx_input_pair> inputs, std::vector<bgfx_entry_uniform*> uniforms, target_manager& targets, std::string output)
+bgfx_chain_entry::bgfx_chain_entry(std::string name, bgfx_effect* effect, clear_state* clear, std::vector<bgfx_suppressor*> suppressors, std::vector<bgfx_input_pair> inputs, std::vector<bgfx_entry_uniform*> uniforms, target_manager& targets, std::string output)
: m_name(name)
, m_effect(effect)
+ , m_clear(clear)
, m_suppressors(suppressors)
, m_inputs(inputs)
, m_uniforms(uniforms)
@@ -45,6 +47,7 @@ bgfx_chain_entry::~bgfx_chain_entry()
delete uniform;
}
m_uniforms.clear();
+ delete m_clear;
}
void bgfx_chain_entry::submit(int view, render_primitive* prim, texture_manager& textures, uint16_t screen_width, uint16_t screen_height, uint32_t rotation_type, bool swap_xy, uint64_t blend, int32_t screen)
@@ -193,7 +196,7 @@ bool bgfx_chain_entry::setup_view(int view, uint16_t screen_width, uint16_t scre
bx::mtxOrtho(projMat, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 100.0f);
bgfx::setViewTransform(view, nullptr, projMat);
- bgfx::setViewClear(view, BGFX_CLEAR_COLOR | BGFX_CLEAR_DEPTH, 0x00000000, 1.0f, 0);
+ m_clear->bind(view);
return true;
}
diff --git a/src/osd/modules/render/bgfx/chainentry.h b/src/osd/modules/render/bgfx/chainentry.h
index 1d14e0dcfcf..eb102aaa059 100644
--- a/src/osd/modules/render/bgfx/chainentry.h
+++ b/src/osd/modules/render/bgfx/chainentry.h
@@ -27,13 +27,14 @@ class bgfx_effect;
class bgfx_target;
class bgfx_entry_uniform;
class bgfx_suppressor;
+class clear_state;
class texture_manager;
class target_manager;
class bgfx_chain_entry
{
public:
- bgfx_chain_entry(std::string name, bgfx_effect* effect, std::vector<bgfx_suppressor*> suppressors, std::vector<bgfx_input_pair> inputs, std::vector<bgfx_entry_uniform*> uniforms, target_manager& targets, std::string output);
+ bgfx_chain_entry(std::string name, bgfx_effect* effect, clear_state* clear, std::vector<bgfx_suppressor*> suppressors, std::vector<bgfx_input_pair> inputs, std::vector<bgfx_entry_uniform*> uniforms, target_manager& targets, std::string output);
~bgfx_chain_entry();
void submit(int view, render_primitive* prim, texture_manager& textures, uint16_t screen_width, uint16_t screen_height, uint32_t rotation_type, bool swap_xy, uint64_t blend, int32_t screen);
@@ -56,6 +57,7 @@ private:
std::string m_name;
bgfx_effect* m_effect;
+ clear_state* m_clear;
std::vector<bgfx_suppressor*> m_suppressors;
std::vector<bgfx_input_pair> m_inputs;
std::vector<bgfx_entry_uniform*> m_uniforms;
diff --git a/src/osd/modules/render/bgfx/chainentryreader.cpp b/src/osd/modules/render/bgfx/chainentryreader.cpp
index 0aa7085cb7f..c3f214f1d3e 100644
--- a/src/osd/modules/render/bgfx/chainentryreader.cpp
+++ b/src/osd/modules/render/bgfx/chainentryreader.cpp
@@ -26,6 +26,8 @@
#include "entryuniformreader.h"
#include "suppressor.h"
#include "suppressorreader.h"
+#include "clear.h"
+#include "clearreader.h"
bgfx_chain_entry* chain_entry_reader::read_from_value(const Value& value, std::string prefix, osd_options& options, texture_manager& textures, target_manager& targets, effect_manager& effects, std::map<std::string, bgfx_slider*>& sliders, std::map<std::string, bgfx_parameter*>& params, uint32_t screen_index)
{
@@ -134,8 +136,19 @@ bgfx_chain_entry* chain_entry_reader::read_from_value(const Value& value, std::s
}
}
+ // Parse clear state
+ clear_state* clear = nullptr;
+ if (value.HasMember("clear"))
+ {
+ clear = clear_reader::read_from_value(value["clear"], prefix + "clear state: ");
+ }
+ else
+ {
+ clear = new clear_state(BGFX_CLEAR_COLOR | BGFX_CLEAR_DEPTH, 0x00000000, 1.0f, 0);
+ }
+
std::string output = value["output"].GetString();
- return new bgfx_chain_entry(name, effect, suppressors, inputs, uniforms, targets, output);
+ return new bgfx_chain_entry(name, effect, clear, suppressors, inputs, uniforms, targets, output);
}
bool chain_entry_reader::validate_parameters(const Value& value, std::string prefix)
diff --git a/src/osd/modules/render/bgfx/chainmanager.cpp b/src/osd/modules/render/bgfx/chainmanager.cpp
index 5eaf6fc1378..25f79e5e456 100644
--- a/src/osd/modules/render/bgfx/chainmanager.cpp
+++ b/src/osd/modules/render/bgfx/chainmanager.cpp
@@ -391,7 +391,7 @@ uint32_t chain_manager::handle_screen_chains(uint32_t view, render_primitive *st
uint32_t screen_index = 0;
for (render_primitive* prim : screens)
{
- if (m_current_chain[screen_index] == CHAIN_NONE)
+ if (m_current_chain[screen_index] == CHAIN_NONE || screen_chain(screen_index) == nullptr)
{
screen_index++;
continue;
@@ -449,7 +449,7 @@ std::vector<ui_menu_item> chain_manager::get_slider_list()
for (bgfx_slider* slider : chain_sliders)
{
slider_state* core_slider = slider->core_slider();
-
+
ui_menu_item item;
item.text = core_slider->description;
item.subtext = "";
@@ -457,7 +457,7 @@ std::vector<ui_menu_item> chain_manager::get_slider_list()
item.ref = core_slider;
item.type = ui_menu_item_type::UI_MENU_ITEM_TYPE_SLIDER;
m_selection_sliders.push_back(item);
-
+
sliders.push_back(item);
}
@@ -469,7 +469,7 @@ std::vector<ui_menu_item> chain_manager::get_slider_list()
item.flags = 0;
item.ref = nullptr;
item.type = ui_menu_item_type::UI_MENU_ITEM_TYPE_SEPARATOR;
-
+
sliders.push_back(item);
}
}
diff --git a/src/osd/modules/render/bgfx/clear.cpp b/src/osd/modules/render/bgfx/clear.cpp
new file mode 100644
index 00000000000..2e6b27a4fe3
--- /dev/null
+++ b/src/osd/modules/render/bgfx/clear.cpp
@@ -0,0 +1,22 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+//============================================================
+//
+// clear.cpp - View clear info for a BGFX chain entry
+//
+//============================================================
+
+#include "clear.h"
+
+clear_state::clear_state(uint64_t flags, uint32_t color, float depth, uint8_t stencil)
+ : m_flags(flags)
+ , m_color(color)
+ , m_depth(depth)
+ , m_stencil(stencil)
+{
+}
+
+void clear_state::bind(int view) const
+{
+ bgfx::setViewClear(view, m_flags, m_color, m_depth, m_stencil);
+}
diff --git a/src/osd/modules/render/bgfx/clear.h b/src/osd/modules/render/bgfx/clear.h
new file mode 100644
index 00000000000..3d45f9a7d62
--- /dev/null
+++ b/src/osd/modules/render/bgfx/clear.h
@@ -0,0 +1,30 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+//============================================================
+//
+// clear.h - View clear info for a BGFX chain entry
+//
+//============================================================
+
+#pragma once
+
+#ifndef __DRAWBGFX_CLEAR__
+#define __DRAWBGFX_CLEAR__
+
+#include <bgfx/bgfx.h>
+
+class clear_state
+{
+public:
+ clear_state(uint64_t flags, uint32_t color, float depth, uint8_t stencil);
+
+ void bind(int view) const;
+
+private:
+ const uint64_t m_flags;
+ const uint32_t m_color;
+ const float m_depth;
+ const uint8_t m_stencil;
+};
+
+#endif // __DRAWBGFX_CLEAR__
diff --git a/src/osd/modules/render/bgfx/clearreader.cpp b/src/osd/modules/render/bgfx/clearreader.cpp
new file mode 100644
index 00000000000..78c3d139d25
--- /dev/null
+++ b/src/osd/modules/render/bgfx/clearreader.cpp
@@ -0,0 +1,62 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+//============================================================
+//
+// clearreader.cpp - BGFX clear state JSON reader
+//
+//============================================================
+
+#include <bgfx/bgfx.h>
+
+#include "clearreader.h"
+
+#include "clear.h"
+
+clear_state* clear_reader::read_from_value(const Value& value, std::string prefix)
+{
+ if (!validate_parameters(value, prefix))
+ {
+ return nullptr;
+ }
+
+ uint64_t clear_flags = 0;
+ uint32_t clear_color = 0;
+ float clear_depth = 1.0f;
+ uint8_t clear_stencil = 0;
+
+ if (value.HasMember("clearcolor"))
+ {
+ const Value& colors = value["clearcolor"];
+ for (int i = 0; i < colors.Size(); i++)
+ {
+ if (!READER_CHECK(colors[i].IsNumber(), (prefix + "clearcolor[" + std::to_string(i) + "] must be a numeric value\n").c_str())) return nullptr;
+ int32_t value = int32_t(float(colors[i].GetDouble()) * 255.0f);
+ if (value > 255) value = 255;
+ if (value < 0) value = 0;
+ clear_color |= value << (24 - (i * 3));
+ }
+ clear_flags |= BGFX_CLEAR_COLOR;
+ }
+
+ if (value.HasMember("cleardepth"))
+ {
+ get_float(value, "cleardepth", &clear_depth, &clear_depth);
+ clear_flags |= BGFX_CLEAR_DEPTH;
+ }
+
+ if (value.HasMember("clearstencil"))
+ {
+ clear_stencil = uint8_t(get_int(value, "clearstencil", clear_stencil));
+ clear_flags |= BGFX_CLEAR_STENCIL;
+ }
+
+ return new clear_state(clear_flags, clear_color, clear_depth, clear_stencil);
+}
+
+bool clear_reader::validate_parameters(const Value& value, std::string prefix)
+{
+ if (!READER_CHECK(!value.HasMember("clearcolor") || (value["clearcolor"].IsArray() && value["clearcolor"].GetArray().Size() == 4), (prefix + "'clearcolor' must be an array of four numeric RGBA values representing the color to which to clear the color buffer\n").c_str())) return false;
+ if (!READER_CHECK(!value.HasMember("cleardepth") || value["cleardepth"].IsNumber(), (prefix + "'cleardepth' must be a numeric value representing the depth to which to clear the depth buffer\n").c_str())) return false;
+ if (!READER_CHECK(!value.HasMember("clearstencil") || value["clearstencil"].IsNumber(), (prefix + "'clearstencil' must be a numeric value representing the stencil value to which to clear the stencil buffer\n").c_str())) return false;
+ return true;
+}
diff --git a/src/osd/modules/render/bgfx/clearreader.h b/src/osd/modules/render/bgfx/clearreader.h
new file mode 100644
index 00000000000..80605ea35f3
--- /dev/null
+++ b/src/osd/modules/render/bgfx/clearreader.h
@@ -0,0 +1,31 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+//============================================================
+//
+// clearreader.h - BGFX clear state JSON reader
+//
+//============================================================
+
+#pragma once
+
+#ifndef __DRAWBGFX_CLEAR_READER__
+#define __DRAWBGFX_CLEAR_READER__
+
+#include <string>
+
+#include "statereader.h"
+
+class clear_state;
+
+class clear_reader : public state_reader {
+public:
+ static clear_state* read_from_value(const Value& value, std::string prefix);
+
+private:
+ static bool validate_parameters(const Value& value, std::string prefix);
+
+ static const int FLAG_COUNT = 3;
+ static const string_to_enum FLAG_NAMES[FLAG_COUNT];
+};
+
+#endif // __DRAWBGFX_CLEAR_READER__
diff --git a/src/osd/modules/render/bgfx/effectreader.cpp b/src/osd/modules/render/bgfx/effectreader.cpp
index f8e21974ead..f2a00cff562 100644
--- a/src/osd/modules/render/bgfx/effectreader.cpp
+++ b/src/osd/modules/render/bgfx/effectreader.cpp
@@ -19,6 +19,7 @@
#include "writereader.h"
#include "shadermanager.h"
#include "uniformreader.h"
+#include "uniform.h"
#include "effectreader.h"
@@ -52,6 +53,17 @@ bgfx_effect* effect_reader::read_from_value(const Value& value, std::string pref
std::string vertex_name(value["vertex"].GetString());
bgfx::ShaderHandle vertex_shader = shaders.shader(vertex_name);
+ if (vertex_shader.idx == 0xffff)
+ {
+ for (bgfx_uniform* uniform : uniforms)
+ {
+ if (uniform != nullptr)
+ {
+ delete uniform;
+ }
+ }
+ return nullptr;
+ }
std::string fragment_name("");
if (value.HasMember("fragment"))
@@ -63,6 +75,17 @@ bgfx_effect* effect_reader::read_from_value(const Value& value, std::string pref
fragment_name = value["pixel"].GetString();
}
bgfx::ShaderHandle fragment_shader = shaders.shader(fragment_name);
+ if (fragment_shader.idx == 0xffff)
+ {
+ for (bgfx_uniform* uniform : uniforms)
+ {
+ if (uniform != nullptr)
+ {
+ delete uniform;
+ }
+ }
+ return nullptr;
+ }
return new bgfx_effect(blend | depth | cull | write, vertex_shader, fragment_shader, uniforms);
}
diff --git a/src/osd/modules/render/bgfx/shadermanager.cpp b/src/osd/modules/render/bgfx/shadermanager.cpp
index 12dfd15910b..8471b360549 100644
--- a/src/osd/modules/render/bgfx/shadermanager.cpp
+++ b/src/osd/modules/render/bgfx/shadermanager.cpp
@@ -69,23 +69,35 @@ bgfx::ShaderHandle shader_manager::load_shader(std::string name)
fatalerror("Unknown BGFX renderer type %d", bgfx::getRendererType());
}
- bgfx::ShaderHandle handle = bgfx::createShader(load_mem(shader_path + name + ".bin"));
+ const bgfx::Memory* mem = load_mem(shader_path + name + ".bin");
+ if (mem != nullptr)
+ {
+ bgfx::ShaderHandle handle = bgfx::createShader(mem);
+
+ m_shaders[name] = handle;
- m_shaders[name] = handle;
+ return handle;
+ }
- return handle;
+ return BGFX_INVALID_HANDLE;
}
const bgfx::Memory* shader_manager::load_mem(std::string name)
{
bx::CrtFileReader reader;
- bx::open(&reader, name.c_str());
-
- uint32_t size(bx::getSize(&reader));
- const bgfx::Memory* mem = bgfx::alloc(size + 1);
- bx::read(&reader, mem->data, size);
- bx::close(&reader);
+ if (bx::open(&reader, name.c_str()))
+ {
+ uint32_t size(bx::getSize(&reader));
+ const bgfx::Memory* mem = bgfx::alloc(size + 1);
+ bx::read(&reader, mem->data, size);
+ bx::close(&reader);
- mem->data[mem->size - 1] = '\0';
- return mem;
+ mem->data[mem->size - 1] = '\0';
+ return mem;
+ }
+ else
+ {
+ printf("Unable to load shader %s\n", name.c_str());
+ }
+ return nullptr;
}
diff --git a/src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_distortion.sc b/src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_distortion.sc
index 0f69c288c5b..1547324f894 100644
--- a/src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_distortion.sc
+++ b/src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_distortion.sc
@@ -192,7 +192,7 @@ void main()
// Clamp
if (BaseCoord.x > 1.0 || BaseCoord.y > 1.0 || BaseCoord.x < 0.0 || BaseCoord.y < 0.0)
{
- gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
}
else
{