diff options
author | Erik Kundiman <erik@megapahit.org> | 2024-11-26 12:05:25 +0800 |
---|---|---|
committer | Erik Kundiman <erik@megapahit.org> | 2024-11-26 12:05:25 +0800 |
commit | a40795bd6ffcfff71bead4869d79cf5a73d5a7af (patch) | |
tree | 6c4c1fbb421f737c0b62fcda51ca7ca0ce8294f4 /indra/llrender/llshadermgr.cpp | |
parent | 30842e230e2b3d365e8415f0350f8d10ce8b0637 (diff) | |
parent | d65fb7cec8ce36ce7f6ff082f8d04bdd8bc0208c (diff) |
Merge remote-tracking branch 'secondlife/release/2024.09-ExtraFPS' into 2024.09-ExtraFPS
Diffstat (limited to 'indra/llrender/llshadermgr.cpp')
-rw-r--r-- | indra/llrender/llshadermgr.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp index e02dd4771e..47f1032c34 100644 --- a/indra/llrender/llshadermgr.cpp +++ b/indra/llrender/llshadermgr.cpp @@ -223,6 +223,14 @@ bool LLShaderMgr::attachShaderFeatures(LLGLSLShader * shader) } } + if (features->hasFullGBuffer) + { + if (!shader->attachFragmentObject("deferred/gbufferUtil.glsl")) + { + return false; + } + } + if (features->hasScreenSpaceReflections || features->hasReflectionProbes) { if (!shader->attachFragmentObject("deferred/screenSpaceReflUtil.glsl")) @@ -606,7 +614,7 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev extra_code_text[extra_code_count++] = strdup("#define GBUFFER_FLAG_HAS_ATMOS 0.34\n"); // bit 0 extra_code_text[extra_code_count++] = strdup("#define GBUFFER_FLAG_HAS_PBR 0.67\n"); // bit 1 extra_code_text[extra_code_count++] = strdup("#define GBUFFER_FLAG_HAS_HDRI 1.0\n"); // bit 2 - extra_code_text[extra_code_count++] = strdup("#define GET_GBUFFER_FLAG(flag) (abs(norm.w-flag)< 0.1)\n"); + extra_code_text[extra_code_count++] = strdup("#define GET_GBUFFER_FLAG(data, flag) (abs(data-flag)< 0.1)\n"); if (defines) { @@ -717,6 +725,9 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev } } + // Master definition can be found in deferredUtil.glsl + extra_code_text[extra_code_count++] = strdup("struct GBufferInfo { vec4 albedo; vec4 specular; vec3 normal; vec4 emissive; float gbufferFlag; float envIntensity; };\n"); + //copy file into memory enum { flag_write_to_out_of_extra_block_area = 0x01 @@ -1249,6 +1260,7 @@ void LLShaderMgr::initAttribsAndUniforms() mReservedUniforms.push_back("sky_hdr_scale"); mReservedUniforms.push_back("sky_sunlight_scale"); mReservedUniforms.push_back("sky_ambient_scale"); + mReservedUniforms.push_back("classic_mode"); mReservedUniforms.push_back("blue_horizon"); mReservedUniforms.push_back("blue_density"); mReservedUniforms.push_back("haze_horizon"); |