Merge pull request #13975 from iwubcode/shader_includes

VideoBackends / VideoCommon: add support for specifying include files in shader code
This commit is contained in:
JMC47
2025-11-02 13:17:28 -05:00
committed by GitHub
40 changed files with 450 additions and 113 deletions

View File

@@ -412,7 +412,7 @@ bool FramebufferManager::CompileConversionPipelines()
EFBReinterpretType convtype = static_cast<EFBReinterpretType>(i);
std::unique_ptr<AbstractShader> pixel_shader = g_gfx->CreateShaderFromSource(
ShaderStage::Pixel,
FramebufferShaderGen::GenerateFormatConversionShader(convtype, GetEFBSamples()),
FramebufferShaderGen::GenerateFormatConversionShader(convtype, GetEFBSamples()), nullptr,
fmt::format("Framebuffer conversion pixel shader {}", convtype));
if (!pixel_shader)
return false;
@@ -644,7 +644,7 @@ bool FramebufferManager::CompileReadbackPipelines()
{
auto depth_resolve_shader = g_gfx->CreateShaderFromSource(
ShaderStage::Pixel, FramebufferShaderGen::GenerateResolveDepthPixelShader(GetEFBSamples()),
"Depth resolve pixel shader");
nullptr, "Depth resolve pixel shader");
if (!depth_resolve_shader)
return false;
@@ -658,7 +658,7 @@ bool FramebufferManager::CompileReadbackPipelines()
config.framebuffer_state.color_texture_format = GetEFBColorFormat();
auto color_resolve_shader = g_gfx->CreateShaderFromSource(
ShaderStage::Pixel,
FramebufferShaderGen::GenerateResolveColorPixelShader(GetEFBSamples()),
FramebufferShaderGen::GenerateResolveColorPixelShader(GetEFBSamples()), nullptr,
"Color resolve pixel shader");
if (!color_resolve_shader)
return false;
@@ -672,7 +672,7 @@ bool FramebufferManager::CompileReadbackPipelines()
// EFB restore pipeline
auto restore_shader = g_gfx->CreateShaderFromSource(
ShaderStage::Pixel, FramebufferShaderGen::GenerateEFBRestorePixelShader(),
ShaderStage::Pixel, FramebufferShaderGen::GenerateEFBRestorePixelShader(), nullptr,
"EFB restore pixel shader");
if (!restore_shader)
return false;
@@ -888,7 +888,7 @@ void FramebufferManager::ClearEFB(const MathUtil::Rectangle<int>& rc, bool color
bool FramebufferManager::CompileClearPipelines()
{
auto vertex_shader = g_gfx->CreateShaderFromSource(
ShaderStage::Vertex, FramebufferShaderGen::GenerateClearVertexShader(),
ShaderStage::Vertex, FramebufferShaderGen::GenerateClearVertexShader(), nullptr,
"Clear vertex shader");
if (!vertex_shader)
return false;
@@ -1063,7 +1063,7 @@ bool FramebufferManager::CompilePokePipelines()
return false;
auto poke_vertex_shader = g_gfx->CreateShaderFromSource(
ShaderStage::Vertex, FramebufferShaderGen::GenerateEFBPokeVertexShader(),
ShaderStage::Vertex, FramebufferShaderGen::GenerateEFBPokeVertexShader(), nullptr,
"EFB poke vertex shader");
if (!poke_vertex_shader)
return false;