summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/app_settings')
-rwxr-xr-xindra/newview/app_settings/message.xml751
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/CASF.glsl19
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/MPHDRDisplayGammaF.glsl2
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/SMAA.glsl16
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/postDeferredTonemap.glsl28
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl2
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl2
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightF.glsl2
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl1
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/materialF.glsl1
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl1
-rw-r--r--indra/newview/app_settings/shaders/class3/environment/waterF.glsl7
14 files changed, 816 insertions, 24 deletions
diff --git a/indra/newview/app_settings/message.xml b/indra/newview/app_settings/message.xml
new file mode 100755
index 0000000000..dee3fd72dd
--- /dev/null
+++ b/indra/newview/app_settings/message.xml
@@ -0,0 +1,751 @@
+<?xml version="1.0"?>
+<llsd>
+ <map>
+ <key>serverDefaults</key>
+ <!--
+ a map of server names to default message transport
+ -->
+ <map>
+ <key>simulator</key>
+ <string>template</string>
+
+ <key>spaceserver</key>
+ <string>template</string>
+
+ <key>dataserver</key>
+ <string>template</string>
+
+ <key>logDataserver</key>
+ <string>template</string>
+
+ <key>inventoryDataserver</key>
+ <string>template</string>
+
+ <key>rpcserver</key>
+ <string>template</string>
+
+ <key>mapserver</key>
+ <string>template</string>
+
+ <key>viewer</key>
+ <string>template</string>
+
+ </map>
+ <key>messages</key>
+ <!--
+ a map of individual message names that override defaults
+ -->
+ <map>
+ <!--
+ Circuit related messages
+ -->
+ <key>PacketAck</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>OpenCircuit</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>CloseCircuit</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>StartPingCheck</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>CompletePingCheck</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>AddCircuitCode</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>UseCircuitCode</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>CreateTrustedCircuit</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>RequestTrustedCircuit</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <!--
+ Simulator to Launcher
+ until we get a HTTP server in the launcher
+ -->
+ <key>ReportAutosaveCrash</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>SetCPURatio</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <!--
+ Viewer to simulator messages sent before UntrustedSimulatorMessage cap received.
+ -->
+ <key>CompleteAgentMovement</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>EconomyDataRequest</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>ViewerEffect</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>RegionHandshakeReply</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <!--
+ Viewer to simulator messages sent unreliably.
+ -->
+ <key>AgentUpdate</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <!--
+ Messages created by LLThrottleGroup clients
+ -->
+ <key>ImagePacket</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>LayerData</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>ObjectUpdateCached</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>ObjectUpdateCompressed</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>ObjectUpdate</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>ImprovedTerseObjectUpdate</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>AvatarAnimation</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>ObjectAnimation</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>AvatarAppearance</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <!-- Simulator to simulator reliable messages -->
+ <key>GodKickUser</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>RoutedMoneyBalanceReply</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <!-- Simulator to simulator unreliable messages -->
+ <key>EdgeDataPacket</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>CoarseLocationUpdate</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ <key>only-send-latest</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>SimulatorLoad</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>EstablishAgentCommunication</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>AgentGroupDataUpdate</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>AgentDropGroup</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>ChatterBoxSessionStartReply</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>ChatterBoxSessionEventReply</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>ForceCloseChatterBoxSession</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>ChatterBoxSessionAgentListUpdates</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>ChatterBoxSessionUpdate</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>ChatterBoxInvitation</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <!-- Client to server -->
+ <key>ParcelVoiceInfoRequest</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <!-- Server to client -->
+ <key>DisplayNameUpdate</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>ParcelVoiceInfo</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>ParcelNavigateMedia</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>ParcelObjectOwnersReply</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>ParcelProperties</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>LandStatReply</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>PlacesReply</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>SetDisplayNameReply</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>SimConsoleResponse</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>DirLandReply</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>avatarnotesrequest</key>
+ <map>
+ <key>service_name</key>
+ <string>avatar-notes</string>
+ <key>builder</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>avatarclassifiedsrequest</key>
+ <map>
+ <key>service_name</key>
+ <string>avatar-classifieds</string>
+ <key>builder</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>avatarpicksrequest</key>
+ <map>
+ <key>service_name</key>
+ <string>avatar-pick</string>
+ <key>builder</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>pickinforequest</key>
+ <map>
+ <key>service_name</key>
+ <string>pick-info</string>
+ <key>builder</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>ProvisionVoiceAccountRequest</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>VoiceSignalingRequest</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+ <!-- Server to client -->
+ <key>RequiredVoiceVersion</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>EnableSimulator</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>TeleportFinish</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>TeleportFailed</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>CrossedRegion</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>NavMeshStatusUpdate</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <key>AgentStateUpdate</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ <!-- UDPDeprecated Messages -->
+ <key>ScriptRunningReply</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>LandStatReply</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>StartGroupProposal</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>FetchInventoryDescendents</key>
+ <map>
+ <key>flavor</key>
+ <string>template</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>GroupProposalBallot</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>RpcScriptRequestInboundForward</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>false</boolean>
+ </map>
+
+ <key>ObjectPhysicsProperties</key>
+ <map>
+ <key>flavor</key>
+ <string>llsd</string>
+ <key>trusted-sender</key>
+ <boolean>true</boolean>
+ </map>
+
+ </map>
+ <key>capBans</key>
+ <map>
+ <key>MapLayer</key>
+ <boolean>false</boolean>
+
+ <key>MapLayerGod</key>
+ <boolean>false</boolean>
+
+ <key>NewFileAgentInventory</key>
+ <boolean>false</boolean>
+
+ <key>UpdateGestureAgentInventory</key>
+ <boolean>false</boolean>
+
+ <key>UpdateNotecardAgentInventory</key>
+ <boolean>false</boolean>
+
+ <key>UpdateScriptAgentInventory</key>
+ <boolean>false</boolean>
+
+ <key>UpdateGestureTaskInventory</key>
+ <boolean>false</boolean>
+
+ <key>UpdateNotecardTaskInventory</key>
+ <boolean>false</boolean>
+
+ <key>UpdateScriptTaskInventory</key>
+ <boolean>false</boolean>
+
+ <key>ViewerStartAuction</key>
+ <boolean>true</boolean>
+
+ <key>ParcelGodReserveForNewbie</key>
+ <boolean>true</boolean>
+
+ <key>SendUserReport</key>
+ <boolean>false</boolean>
+
+ <key>SendUserReportWithScreenshot</key>
+ <boolean>false</boolean>
+
+ <key>RequestTextureDownload</key>
+ <boolean>true</boolean>
+
+ <key>EventQueueGet</key>
+ <boolean>false</boolean>
+
+ <key>UntrustedSimulatorMessage</key>
+ <boolean>false</boolean>
+
+ <key>SendPostcard</key>
+ <boolean>false</boolean>
+
+ <key>SendPostcard2</key>
+ <boolean>true</boolean>
+
+ <key>SendPostcard3</key>
+ <boolean>true</boolean>
+
+ <key>ParcelVoiceInfoRequest</key>
+ <boolean>false</boolean>
+
+ <key>ChatSessionRequest</key>
+ <boolean>false</boolean>
+
+ <key>ProvisionVoiceAccountRequest</key>
+ <boolean>false</boolean>
+
+ <key>VoiceSignalingRequest</key>
+ <boolean>false</boolean>
+
+ <key>RemoteParcelRequest</key>
+ <boolean>false</boolean>
+
+ <key>SearchStatTracking</key>
+ <boolean>false</boolean>
+
+ <key>ParcelPropertiesUpdate</key>
+ <boolean>false</boolean>
+
+ <key>EstateChangeInfo</key>
+ <boolean>true</boolean>
+
+ <key>FetchInventoryDescendents2</key>
+ <boolean>false</boolean>
+
+ <key>FetchInventory2</key>
+ <boolean>false</boolean>
+
+ <key>FetchLibDescendents2</key>
+ <boolean>false</boolean>
+
+ <key>FetchLib2</key>
+ <boolean>false</boolean>
+
+ <key>UploadBakedTexture</key>
+ <boolean>true</boolean>
+
+ <key>ObjectMedia</key>
+ <boolean>false</boolean>
+
+ <key>ObjectMediaNavigate</key>
+ <boolean>false</boolean>
+
+ </map>
+
+ <key>messageBans</key>
+ <map>
+ <key>trusted</key>
+ <map>
+ </map>
+
+ <key>untrusted</key>
+ <map>
+ </map>
+ </map>
+
+ <key>maxQueuedEvents</key>
+ <integer>100</integer>
+ </map>
+</llsd>
diff --git a/indra/newview/app_settings/shaders/class1/deferred/CASF.glsl b/indra/newview/app_settings/shaders/class1/deferred/CASF.glsl
index 017855325c..8e12d09443 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/CASF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/CASF.glsl
@@ -2545,12 +2545,31 @@ A_STATIC void CasSetup(
#endif
#ifdef A_GPU
+
+#ifdef LEGACY_GAMMA
+uniform float gamma;
+
+vec3 legacyGamma(vec3 color)
+{
+ vec3 c = 1. - clamp(color, vec3(0.), vec3(1.));
+ c = 1. - pow(c, vec3(gamma)); // s/b inverted already CPU-side
+
+ return c;
+}
+#endif
+
void main()
{
vec4 diff = vec4(0.f);
uvec2 point = uvec2(vary_fragcoord * out_screen_res.xy);
CasFilter(diff.r, diff.g, diff.b, point, cas_param_0, cas_param_1, true);
diff.a = texture(diffuseRect, vary_fragcoord).a;
+ diff.rgb = linear_to_srgb(diff.rgb);
+
+#ifdef LEGACY_GAMMA
+ diff.rgb = legacyGamma(diff.rgb);
+#endif
+
frag_color = diff;
}
#endif
diff --git a/indra/newview/app_settings/shaders/class1/deferred/MPHDRDisplayGammaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/MPHDRDisplayGammaF.glsl
index 7107cfcbce..503974cb7c 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/MPHDRDisplayGammaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/MPHDRDisplayGammaF.glsl
@@ -30,7 +30,7 @@ out vec4 frag_color;
uniform sampler2D diffuseRect;
uniform float gamma = 2.2;
-uniform float mpHDRBoost;
+uniform float mpHDRBoost = 1.0;
in vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/SMAA.glsl b/indra/newview/app_settings/shaders/class1/deferred/SMAA.glsl
index fdb77cce6e..10a48f1e01 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/SMAA.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/SMAA.glsl
@@ -1351,6 +1351,10 @@ float4 SMAABlendingWeightCalculationPS(float2 texcoord,
//-----------------------------------------------------------------------------
// Neighborhood Blending Pixel Shader (Third Pass)
+vec3 srgb_to_linear(vec3 cs);
+vec4 srgb_to_linear4(vec4 cs);
+vec3 linear_to_srgb(vec3 cl);
+
float4 SMAANeighborhoodBlendingPS(float2 texcoord,
float4 offset,
SMAATexture2D(colorTex),
@@ -1369,6 +1373,7 @@ float4 SMAANeighborhoodBlendingPS(float2 texcoord,
SMAA_BRANCH
if (dot(a, float4(1.0, 1.0, 1.0, 1.0)) < 1e-5) {
float4 color = SMAASampleLevelZero(colorTex, texcoord);
+ //color.rgb = srgb_to_linear(color.rgb);
#if SMAA_REPROJECTION
float2 velocity = SMAA_DECODE_VELOCITY(SMAASampleLevelZero(velocityTex, texcoord));
@@ -1377,6 +1382,7 @@ float4 SMAANeighborhoodBlendingPS(float2 texcoord,
color.a = sqrt(5.0 * length(velocity));
#endif
+ //color.rgb = linear_to_srgb(color.rgb);
return color;
} else {
bool h = max(a.x, a.z) > max(a.y, a.w); // max(horizontal) > max(vertical)
@@ -1393,8 +1399,13 @@ float4 SMAANeighborhoodBlendingPS(float2 texcoord,
// We exploit bilinear filtering to mix current pixel with the chosen
// neighbor:
- float4 color = blendingWeight.x * SMAASampleLevelZero(colorTex, blendingCoord.xy);
- color += blendingWeight.y * SMAASampleLevelZero(colorTex, blendingCoord.zw);
+ float4 color = SMAASampleLevelZero(colorTex, blendingCoord.xy);
+ //color.rgb = srgb_to_linear(color.rgb);
+ color = blendingWeight.x * color;
+
+ float4 color2 = SMAASampleLevelZero(colorTex, blendingCoord.zw);
+ //color2.rgb = srgb_to_linear(color2.rgb);
+ color += blendingWeight.y * color2;
#if SMAA_REPROJECTION
// Antialias velocity for proper reprojection in a later stage:
@@ -1405,6 +1416,7 @@ float4 SMAANeighborhoodBlendingPS(float2 texcoord,
color.a = sqrt(5.0 * length(velocity));
#endif
+ //color.rgb = linear_to_srgb(color.rgb);
return color;
}
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl
index 197ce48a45..a24e7c0b90 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl
@@ -43,8 +43,6 @@ vec3 legacyGamma(vec3 color)
return c;
}
-vec3 clampHDRRange(vec3 color);
-
void main()
{
//this is the one of the rare spots where diffuseRect contains linear color values (not sRGB)
@@ -55,7 +53,7 @@ void main()
diff.rgb = legacyGamma(diff.rgb);
#endif
- diff.rgb = clampHDRRange(diff.rgb);
+ diff.rgb = clamp(diff.rgb, vec3(0.0), vec3(1.0));
frag_color = diff;
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredTonemap.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredTonemap.glsl
index 1f01c7f16a..b1218d61af 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredTonemap.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredTonemap.glsl
@@ -31,11 +31,25 @@ uniform sampler2D diffuseRect;
in vec2 vary_fragcoord;
+#ifdef GAMMA_CORRECT
+uniform float gamma;
+#endif
+
vec3 linear_to_srgb(vec3 cl);
vec3 toneMap(vec3 color);
vec3 clampHDRRange(vec3 color);
+#ifdef GAMMA_CORRECT
+vec3 legacyGamma(vec3 color)
+{
+ vec3 c = 1. - clamp(color, vec3(0.), vec3(1.));
+ c = 1. - pow(c, vec3(gamma)); // s/b inverted already CPU-side
+
+ return c;
+}
+#endif
+
void main()
{
//this is the one of the rare spots where diffuseRect contains linear color values (not sRGB)
@@ -47,8 +61,18 @@ void main()
diff.rgb = clamp(diff.rgb, vec3(0.0), vec3(1.0));
#endif
- diff.rgb = clampHDRRange(diff.rgb);
+#ifdef GAMMA_CORRECT
+ diff.rgb = linear_to_srgb(diff.rgb);
+
+#ifdef LEGACY_GAMMA
+ diff.rgb = legacyGamma(diff.rgb);
+#endif
+
+#endif
+
+ diff.rgb = clamp(diff.rgb, vec3(0.0), vec3(1.0)); // We should always be 0-1 past this point
+
//debugExposure(diff.rgb);
- frag_color = max(diff, vec4(0));
+ frag_color = diff;
}
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl
index c7cb076099..ffc5d86d9d 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl
@@ -28,7 +28,6 @@ out vec4 frag_color;
uniform float minimum_alpha;
vec3 atmosLighting(vec3 light);
-vec3 scaleSoftClip(vec3 light);
in vec4 vertex_color;
in vec2 vary_texcoord0;
@@ -45,7 +44,6 @@ void default_lighting()
color *= vertex_color;
color.rgb = atmosLighting(color.rgb);
- color.rgb = scaleSoftClip(color.rgb);
frag_color = max(color, vec4(0));
}
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl
index 77324edcff..0519ae1090 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl
@@ -30,7 +30,6 @@ uniform float minimum_alpha;
uniform sampler2D diffuseMap;
vec3 atmosLighting(vec3 light);
-vec3 scaleSoftClip(vec3 light);
in vec4 vertex_color;
in vec2 vary_texcoord0;
@@ -48,7 +47,6 @@ void default_lighting()
color.rgb = atmosLighting(color.rgb);
- color.rgb = scaleSoftClip(color.rgb);
frag_color = max(color, vec4(0));
}
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl
index e8523935ed..2d43ef60be 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl
@@ -29,7 +29,6 @@ in vec4 vertex_color;
in vec2 vary_texcoord0;
vec3 atmosLighting(vec3 light);
-vec3 scaleSoftClip(vec3 light);
void default_lighting()
{
@@ -37,7 +36,6 @@ void default_lighting()
color.rgb = atmosLighting(color.rgb);
- color.rgb = scaleSoftClip(color.rgb);
frag_color = max(color, vec4(0));
}
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl
index 95200444b9..83c36dea6d 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl
@@ -31,7 +31,7 @@ in vec2 vary_texcoord0;
uniform sampler2D diffuseMap;
vec3 atmosLighting(vec3 light);
-vec3 scaleSoftClip(vec3 light);
+//vec3 scaleSoftClip(vec3 light);
void default_lighting()
{
@@ -39,7 +39,7 @@ void default_lighting()
color.rgb = atmosLighting(color.rgb);
- color.rgb = scaleSoftClip(color.rgb);
+ //color.rgb = scaleSoftClip(color.rgb);
frag_color = max(color, vec4(0));
}
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
index a892ff9cdc..6fc1747089 100644
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
@@ -25,7 +25,6 @@
vec3 getAdditiveColor();
vec3 getAtmosAttenuation();
-vec3 scaleSoftClipFrag(vec3 light);
vec3 srgb_to_linear(vec3 col);
vec3 linear_to_srgb(vec3 col);
diff --git a/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl
index f8803f1a29..9b6b2e5b33 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl
@@ -39,7 +39,6 @@ uniform int sun_up_factor;
uniform int classic_mode;
vec4 applySkyAndWaterFog(vec3 pos, vec3 additive, vec3 atten, vec4 color);
-vec3 scaleSoftClipFragLinear(vec3 l);
void calcAtmosphericVarsLinear(vec3 inPositionEye, vec3 norm, vec3 light_dir, out vec3 sunlit, out vec3 amblit, out vec3 atten, out vec3 additive);
void calcHalfVectors(vec3 lv, vec3 n, vec3 v, out vec3 h, out vec3 l, out float nh, out float nl, out float nv, out float vh, out float lightDist);
diff --git a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl
index 6cec65ad83..2b42d757cb 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl
@@ -64,7 +64,6 @@ vec4 getPositionWithDepth(vec2 pos_screen, float depth);
void calcAtmosphericVarsLinear(vec3 inPositionEye, vec3 norm, vec3 light_dir, out vec3 sunlit, out vec3 amblit, out vec3 atten, out vec3 additive);
vec3 atmosFragLightingLinear(vec3 l, vec3 additive, vec3 atten);
-vec3 scaleSoftClipFragLinear(vec3 l);
// reflection probe interface
void sampleReflectionProbes(inout vec3 ambenv, inout vec3 glossenv,
diff --git a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl
index b9de4edc67..c2167dfcba 100644
--- a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl
+++ b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl
@@ -33,7 +33,6 @@ out vec4 frag_color;
float sampleDirectionalShadow(vec3 pos, vec3 norm, vec2 pos_screen);
#endif
-vec3 scaleSoftClipFragLinear(vec3 l);
void calcAtmosphericVarsLinear(vec3 inPositionEye, vec3 norm, vec3 light_dir, out vec3 sunlit, out vec3 amblit, out vec3 atten, out vec3 additive);
vec4 applyWaterFogViewLinear(vec3 pos, vec4 color);
@@ -119,7 +118,6 @@ vec3 srgb_to_linear(vec3 col);
vec3 linear_to_srgb(vec3 col);
vec3 atmosLighting(vec3 light);
-vec3 scaleSoftClip(vec3 light);
vec3 toneMapNoExposure(vec3 color);
vec3 vN, vT, vB;
@@ -328,7 +326,7 @@ void main()
radiance *= df2.y;
//radiance = toneMapNoExposure(radiance);
vec3 color = vec3(0);
- color = mix(fb.rgb, radiance, min(1.0, df2.x)) + punctual.rgb;
+ color = mix(fb.rgb, radiance, min(5.0, df2.x)) + punctual.rgb;
float water_haze_scale = 4.0;
@@ -346,6 +344,5 @@ void main()
float spec = min(max(max(punctual.r, punctual.g), punctual.b), 0.0);
- frag_color = min(vec4(1),max(vec4(color.rgb, spec * water_mask), vec4(0)));
+ frag_color = min(vec4(5),max(vec4(color.rgb, spec * water_mask), vec4(0)));
}
-