From 3172371fcd26285582a8595dd0b5d5d9193fcf4c Mon Sep 17 00:00:00 2001 From: "therealmogminer@gmail.com" Date: Wed, 2 Mar 2016 00:31:40 +0100 Subject: [PATCH 01/30] More work on bgfx data-driven shaders, nw --- bgfx/chains/test.json | 44 ++--- scripts/src/osd/modules.lua | 23 +-- shaders/dx11/fs_tint.bin | Bin 503 -> 543 bytes shaders/dx9/fs_tint.bin | Bin 368 -> 420 bytes shaders/gles/fs_tint.bin | Bin 346 -> 375 bytes shaders/glsl/fs_tint.bin | Bin 277 -> 306 bytes shaders/metal/fs_tint.bin | Bin 753 -> 784 bytes src/emu/ui/ui.h | 2 +- src/osd/modules/render/bgfx/chain.cpp | 87 +++++++++- src/osd/modules/render/bgfx/chain.h | 12 +- src/osd/modules/render/bgfx/chainentry.cpp | 39 ++++- src/osd/modules/render/bgfx/chainentry.h | 16 +- .../modules/render/bgfx/chainentryreader.cpp | 31 +++- .../modules/render/bgfx/chainentryreader.h | 5 +- src/osd/modules/render/bgfx/chainmanager.cpp | 12 +- src/osd/modules/render/bgfx/chainmanager.h | 8 +- src/osd/modules/render/bgfx/chainreader.cpp | 92 +++++++---- src/osd/modules/render/bgfx/chainreader.h | 5 +- src/osd/modules/render/bgfx/effect.cpp | 6 +- src/osd/modules/render/bgfx/effect.h | 22 ++- src/osd/modules/render/bgfx/effectreader.cpp | 7 +- src/osd/modules/render/bgfx/entryuniform.h | 33 ++++ .../render/bgfx/entryuniformreader.cpp | 39 +++++ .../modules/render/bgfx/entryuniformreader.h | 32 ++++ src/osd/modules/render/bgfx/fs_tint.sc | 2 +- src/osd/modules/render/bgfx/inputpair.cpp | 12 +- src/osd/modules/render/bgfx/inputpair.h | 14 +- src/osd/modules/render/bgfx/paramreader.cpp | 2 +- src/osd/modules/render/bgfx/slider.cpp | 129 ++++++++++----- src/osd/modules/render/bgfx/slider.h | 53 ++++-- src/osd/modules/render/bgfx/sliderreader.cpp | 151 +++++++++++++----- src/osd/modules/render/bgfx/sliderreader.h | 9 +- src/osd/modules/render/bgfx/slideruniform.cpp | 34 ++++ src/osd/modules/render/bgfx/slideruniform.h | 34 ++++ .../render/bgfx/slideruniformreader.cpp | 42 +++++ .../modules/render/bgfx/slideruniformreader.h | 32 ++++ src/osd/modules/render/bgfx/statereader.cpp | 17 +- src/osd/modules/render/bgfx/statereader.h | 10 +- src/osd/modules/render/bgfx/target.cpp | 10 +- src/osd/modules/render/bgfx/target.h | 17 +- src/osd/modules/render/bgfx/targetmanager.cpp | 27 +++- src/osd/modules/render/bgfx/targetmanager.h | 9 +- src/osd/modules/render/bgfx/texture.cpp | 13 +- src/osd/modules/render/bgfx/texture.h | 3 +- .../modules/render/bgfx/texturemanager.cpp | 4 +- src/osd/modules/render/bgfx/uniform.cpp | 2 +- src/osd/modules/render/bgfx/valueuniform.cpp | 25 +++ src/osd/modules/render/bgfx/valueuniform.h | 31 ++++ .../render/bgfx/valueuniformreader.cpp | 40 +++++ .../modules/render/bgfx/valueuniformreader.h | 31 ++++ src/osd/modules/render/bgfx/vertex.h | 35 ++++ src/osd/modules/render/d3d/d3dhlsl.cpp | 2 +- src/osd/modules/render/d3d/d3dhlsl.h | 2 +- src/osd/modules/render/drawbgfx.cpp | 114 +++++++++---- src/osd/modules/render/drawbgfx.h | 29 +--- 55 files changed, 1152 insertions(+), 298 deletions(-) create mode 100644 src/osd/modules/render/bgfx/entryuniform.h create mode 100644 src/osd/modules/render/bgfx/entryuniformreader.cpp create mode 100644 src/osd/modules/render/bgfx/entryuniformreader.h create mode 100644 src/osd/modules/render/bgfx/slideruniform.cpp create mode 100644 src/osd/modules/render/bgfx/slideruniform.h create mode 100644 src/osd/modules/render/bgfx/slideruniformreader.cpp create mode 100644 src/osd/modules/render/bgfx/slideruniformreader.h create mode 100644 src/osd/modules/render/bgfx/valueuniform.cpp create mode 100644 src/osd/modules/render/bgfx/valueuniform.h create mode 100644 src/osd/modules/render/bgfx/valueuniformreader.cpp create mode 100644 src/osd/modules/render/bgfx/valueuniformreader.h create mode 100644 src/osd/modules/render/bgfx/vertex.h diff --git a/bgfx/chains/test.json b/bgfx/chains/test.json index bc5603a18f2..34ddc00fc5c 100644 --- a/bgfx/chains/test.json +++ b/bgfx/chains/test.json @@ -1,26 +1,26 @@ { "name": "Test Shader Chain", "author": "Ryan Holtz", "sliders": [ - { "type": "bool", "name": "adjustments", "text": "Enable Adjustments", "default": false }, - { "type": "float", "name": "ratio_amount", "text": "Ratio Amount", "default": 0, "max": 1, "min": 0 }, - - { "type": "color", "name": "red_ratios", "text": "Red Amount", "default": [ 1, 0, 0 ], "max": [ 1, 1, 1 ], "min": [ 0, 0, 0 ] }, - { "type": "color", "name": "grn_ratios", "text": "Green Amount", "default": [ 0, 1, 0 ], "max": [ 1, 1, 1 ], "min": [ 0, 0, 0 ] }, - { "type": "color", "name": "blu_ratios", "text": "Blue Amount", "default": [ 0, 0, 1 ], "max": [ 1, 1, 1 ], "min": [ 0, 0, 0 ] }, - { "type": "color", "name": "tint", "text": "Tint", "default": [ 1, 1, 1 ], "max": [ 1, 1, 1 ], "min": [ 0, 0, 0 ] }, - { "type": "color", "name": "phosphor", "text": "Phosphor Amount", "default": [ 0, 0, 0 ], "max": [ 1, 1, 1 ], "min": [ 0, 0, 0 ] }, - { "type": "vec2", "name": "shift", "text": "Frame Shift", "default": [ 0, 0 ], "max": [ 25, 25 ], "min": [ -25, -25 ] } + { "type": "int_enum", "name": "adjustments", "text": "Enable Adjustments", "default": 0, "max": 1, "min": 0, "step": 1, "scale": 1.0, "format": "%s", "screen": "any", "strings": [ "On", "Off" ] }, + { "type": "float", "name": "ratio_amount", "text": "Ratio Amount", "default": 0, "max": 100, "min": 0, "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "any" }, + { "type": "color", "name": "red_ratios", "text": "Color Matrix, Red from ", "default": [ 200, 0, 0 ], "max": [ 400, 400, 400 ], "min": [ -400, -400, -400 ], "step": 1, "scale": 0.005, "format": "%2.3f", "screen": "any" }, + { "type": "color", "name": "grn_ratios", "text": "Color Matrix, Green from ", "default": [ 0, 200, 0 ], "max": [ 400, 400, 400 ], "min": [ -400, -400, -400 ], "step": 1, "scale": 0.005, "format": "%2.3f", "screen": "any" }, + { "type": "color", "name": "blu_ratios", "text": "Color Matrix, Blue from ", "default": [ 0, 0, 200 ], "max": [ 400, 400, 400 ], "min": [ -400, -400, -400 ], "step": 1, "scale": 0.005, "format": "%2.3f", "screen": "any" }, + { "type": "color", "name": "tint", "text": "Tint ", "default": [ 100, 100, 100 ], "max": [ 100, 100, 100 ], "min": [ 0, 0, 0 ], "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "any" }, + { "type": "color", "name": "phosphor", "text": "Phosphor Life, ", "default": [ 0, 0, 0 ], "max": [ 100, 100, 100 ], "min": [ 0, 0, 0 ], "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "any" }, + { "type": "vec2", "name": "shift", "text": "Frame Shift ", "default": [ 0, 0 ], "max": [ 25, 25 ], "min": [ -25, -25 ], "step": 1, "scale": 1.0, "format": "%2.f", "screen": "raster" } ], "parameters": [ { "name": "alternating", "type": "frame_mask", "period": 2 } ], "targets": [ { "name": "native", - "screen": true + "mode": "native", + "prescale": 1 }, { "name": "previous", - "screen": true, - "prescale": true + "mode": "native", + "prescale": 1 } ], "passes": [ @@ -31,10 +31,10 @@ { "type": "slider", "name": "ratio_amount", "value": 0 } ], "uniforms": [ - { "name": "u_ratio_amount", "slider": "ratio_amount" }, - { "name": "u_red_ratios", "slider": "red_ratios" }, - { "name": "u_grn_ratios", "slider": "grn_ratios" }, - { "name": "u_blu_ratios", "slider": "blu_ratios" } + { "uniform": "u_ratio_amount", "slider": "ratio_amount" }, + { "uniform": "u_red_ratios", "slider": "red_ratios" }, + { "uniform": "u_grn_ratios", "slider": "grn_ratios" }, + { "uniform": "u_blu_ratios", "slider": "blu_ratios" } ], "input": [ { "sampler": "s_tex", "texture": "screen" } @@ -47,8 +47,8 @@ { "type": "slider", "name": "adjustments", "value": false } ], "uniforms": [ - { "name": "u_tint", "slider": "tint" }, - { "name": "u_shift", "slider": "shift" } + { "uniform": "u_tint", "slider": "tint" }, + { "uniform": "u_shift", "slider": "shift" } ], "input": [ { "sampler": "s_tex", "texture": "native" } @@ -62,8 +62,8 @@ { "type": "slider", "name": "phosphor", "value": [ 0, 0, 0 ] } ], "uniforms": [ - { "name": "u_passthrough", "value": [ 0 ] }, - { "name": "u_phosphor", "slider": "phosphor" } + { "uniform": "u_passthrough", "value": [ 0 ] }, + { "uniform": "u_phosphor", "slider": "phosphor" } ], "input": [ { "sampler": "s_tex", "texture": "native" }, @@ -78,8 +78,8 @@ { "type": "slider", "name": "phosphor", "value": [ 0, 0, 0 ] } ], "uniforms": [ - { "name": "u_passthrough", "value": [ 1 ] }, - { "name": "u_phosphor", "slider": "phosphor" } + { "uniform": "u_passthrough", "value": [ 1 ] }, + { "uniform": "u_phosphor", "slider": "phosphor" } ], "input": [ { "sampler": "s_tex", "texture": "native" }, diff --git a/scripts/src/osd/modules.lua b/scripts/src/osd/modules.lua index 5cef56772a3..d8cc99966c1 100644 --- a/scripts/src/osd/modules.lua +++ b/scripts/src/osd/modules.lua @@ -120,29 +120,34 @@ function osdmodulesbuild() MAME_DIR .. "src/osd/modules/render/drawbgfx.cpp", MAME_DIR .. "src/osd/modules/render/binpacker.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/blendreader.cpp", + MAME_DIR .. "src/osd/modules/render/bgfx/chain.cpp", + MAME_DIR .. "src/osd/modules/render/bgfx/chainentry.cpp", + 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/cullreader.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/depthreader.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/effect.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/effectmanager.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/effectreader.cpp", - MAME_DIR .. "src/osd/modules/render/bgfx/chain.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/chainentry.cpp", - MAME_DIR .. "src/osd/modules/render/bgfx/chainentryreader.cpp", + MAME_DIR .. "src/osd/modules/render/bgfx/entryuniformreader.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/inputpair.cpp", - MAME_DIR .. "src/osd/modules/render/bgfx/shadermanager.cpp", - MAME_DIR .. "src/osd/modules/render/bgfx/statereader.cpp", - MAME_DIR .. "src/osd/modules/render/bgfx/slider.cpp", - MAME_DIR .. "src/osd/modules/render/bgfx/sliderreader.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/parameter.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/paramreader.cpp", + MAME_DIR .. "src/osd/modules/render/bgfx/shadermanager.cpp", + MAME_DIR .. "src/osd/modules/render/bgfx/slider.cpp", + MAME_DIR .. "src/osd/modules/render/bgfx/sliderreader.cpp", + MAME_DIR .. "src/osd/modules/render/bgfx/slideruniform.cpp", + MAME_DIR .. "src/osd/modules/render/bgfx/slideruniformreader.cpp", + MAME_DIR .. "src/osd/modules/render/bgfx/statereader.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/target.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/targetmanager.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/texture.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/texturemanager.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/uniform.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/uniformreader.cpp", + MAME_DIR .. "src/osd/modules/render/bgfx/valueuniform.cpp", + MAME_DIR .. "src/osd/modules/render/bgfx/valueuniformreader.cpp", MAME_DIR .. "src/osd/modules/render/bgfx/writereader.cpp", } includedirs { diff --git a/shaders/dx11/fs_tint.bin b/shaders/dx11/fs_tint.bin index eca7aa371a11ac125948dec761acaf2842a4e1f0..f87cfb38dc54abc48cbfff712a9e556cd5629eb5 100644 GIT binary patch delta 131 zcmey)JfCHPq4Wzzmk1~4zgvzhym*19ZjyD=I?aQVA2Kp9Fua)Pv!9a($Z`O3oF|Jg zhBGov&S7+S1#-DRF$ge#6uI>&07(d7a)2@z80=vz3kC*ukXjIM<3rGllP@r;0{|P# B8RP%} delta 91 zcmbQw@|}5tq4WVpmk1|koe$eOYi=>KU7ayQ!}opqQbq;_h659Q_H#Y~G8}-|aZH2PbWD^YoJp&yD13gm^0cII!YHBKIDU`)0 R=jY@X8E9H_)pBt$004Hs5bFQ{ delta 38 tcmey)bc<<%A*0GhBYsB7()g0hyb?_XErqi9*HkMyJd)O5;m1^GX!770ObRO*9Pj40IF>^h`knm}Q`;si~l)P!^w@ QpOar?plQuj%f-b20Gx9Xwg3PC delta 37 scmdnQG?i(BA>;jtMyDi8<4ZF0N;DO;6w2b0^Kt^fc4 delta 39 vcmbQh_K}sxE!cyFvH8