The driver now loads runtime shaders from a shader directory instead of relying on generated C++ shader bytecode headers.
C:\VirtualDisplayDriver\Shadersby defaultShadersnext toMttVDD.dllas a fallback- The build also copies the sample
.hlslfiles from this folder into the packaged output folder
.hlslfiles compiled at runtime withD3DCompileFromFile().csofiles loaded directly as precompiled pixel shaders
PSMain- If you prefer, compiled
.csoshaders can skip source-level entry points entirely
cbuffer PerFrameBuffer : register(b0)
{
float4 resolution;
float time;
float param0;
};
Texture2D InputTexture : register(t0);
SamplerState InputSampler : register(s0);resolution.xycontains the current frame sizetimeis seconds since the driver process startedparam0is the configurable runtime parameter fromshader_param0- The built-in fullscreen vertex shader supplies
SV_POSITIONandTEXCOORD0
Add or update these settings in vdd_settings.xml:
<shaders>
<shader_renderer>true</shader_renderer>
<shader_hot_reload>true</shader_hot_reload>
<shader_directory>Shaders</shader_directory>
<shader_file>wave_shader.hlsl</shader_file>
<shader_param0>1.0</shader_param0>
</shaders>passthrough_shader.hlslkeeps the source frame unchangedwave_shader.hlsloverlays an animated wave and bottom bar on the source framevortex_shader.hlsloverlays a red/blue split tint on the source frame
fxc.exe /T ps_5_0 /E PSMain /Fo wave_shader.cso wave_shader.hlsl
fxc.exe /T ps_5_0 /E PSMain /Fo vortex_shader.cso vortex_shader.hlslUse .hlsl or .cso files for runtime shaders. The old generated *.h shader blobs have been removed.