Skip to content

Commit c2cc30f

Browse files
SuperResolutionFSR: Fix crash in OpenGL backend
1 parent 7fddbf2 commit c2cc30f

File tree

3 files changed

+12
-15
lines changed

3 files changed

+12
-15
lines changed

Graphics/SuperResolution/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ if(DILIGENT_FSR_SUPPORTED)
7373
${CMAKE_CURRENT_SOURCE_DIR}/shaders/FSR_ContrastAdaptiveSharpening.fx
7474
${CMAKE_CURRENT_SOURCE_DIR}/shaders/fsr1/ffx_common_types.h
7575
${CMAKE_CURRENT_SOURCE_DIR}/shaders/fsr1/ffx_core.h
76+
${CMAKE_CURRENT_SOURCE_DIR}/shaders/fsr1/ffx_core_cpu.h
7677
${CMAKE_CURRENT_SOURCE_DIR}/shaders/fsr1/ffx_core_glsl.h
7778
${CMAKE_CURRENT_SOURCE_DIR}/shaders/fsr1/ffx_core_gpu_common.h
7879
${CMAKE_CURRENT_SOURCE_DIR}/shaders/fsr1/ffx_core_gpu_common_half.h
Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
1-
struct FSR_VSOutput
2-
{
3-
float4 Position : SV_Position;
4-
};
5-
6-
void FSR_FullQuadVS(in uint VertexId : SV_VertexID, out FSR_VSOutput VSOut)
1+
float4 FSR_FullQuadVS(in uint VertexId : SV_VertexID) : SV_Position
72
{
83
float2 PosXY[3];
94
PosXY[0] = float2(-1.0, -1.0);
105
PosXY[1] = float2(-1.0, +3.0);
116
PosXY[2] = float2(+3.0, -1.0);
127

13-
VSOut.Position = float4(PosXY[VertexId % 3u], 0.0, 1.0);
8+
return float4(PosXY[VertexId % 3u], 0.0, 1.0);
149
}

Graphics/SuperResolution/src/FSRProvider.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -248,13 +248,14 @@ FSRProvider::FSRProvider(IRenderDevice* pDevice) :
248248

249249
auto CreateShader = [&](SHADER_TYPE Type, const char* Name, const char* EntryPoint, const char* FilePath, const ShaderMacroArray& ShaderMacros = {}) {
250250
ShaderCreateInfo ShaderCI;
251-
ShaderCI.SourceLanguage = SHADER_SOURCE_LANGUAGE_HLSL;
252-
ShaderCI.Desc.ShaderType = Type;
253-
ShaderCI.Desc.Name = Name;
254-
ShaderCI.EntryPoint = EntryPoint;
255-
ShaderCI.FilePath = FilePath;
256-
ShaderCI.Macros = ShaderMacros;
257-
ShaderCI.pShaderSourceStreamFactory = m_pShaderSourceFactory;
251+
ShaderCI.SourceLanguage = SHADER_SOURCE_LANGUAGE_HLSL;
252+
ShaderCI.Desc.ShaderType = Type;
253+
ShaderCI.Desc.Name = Name;
254+
ShaderCI.Desc.UseCombinedTextureSamplers = true;
255+
ShaderCI.EntryPoint = EntryPoint;
256+
ShaderCI.FilePath = FilePath;
257+
ShaderCI.Macros = ShaderMacros;
258+
ShaderCI.pShaderSourceStreamFactory = m_pShaderSourceFactory;
258259
RefCntAutoPtr<IShader> pShader;
259260
pDevice->CreateShader(ShaderCI, &pShader);
260261
return pShader;
@@ -278,7 +279,7 @@ FSRProvider::PipelineData& FSRProvider::GetOrCreatePipelines(TEXTURE_FORMAT Outp
278279
ResourceLayout
279280
.SetDefaultVariableType(SHADER_RESOURCE_VARIABLE_TYPE_DYNAMIC)
280281
.AddVariable(SHADER_TYPE_PIXEL, "cbFSRAttribs", SHADER_RESOURCE_VARIABLE_TYPE_MUTABLE)
281-
.AddImmutableSampler(SHADER_TYPE_PIXEL, "g_TextureSource_sampler", Sam_PointClamp);
282+
.AddImmutableSampler(SHADER_TYPE_PIXEL, "g_TextureSource", Sam_PointClamp);
282283

283284
GraphicsPipelineStateCreateInfoX PSOCreateInfo{"FSR::EASU PSO"};
284285
PSOCreateInfo

0 commit comments

Comments
 (0)