Skip to content

Instantly share code, notes, and snippets.

@kristiker
Created June 12, 2023 22:12
Show Gist options
  • Save kristiker/be683a87aa9e4349ce38db54da7297c1 to your computer and use it in GitHub Desktop.
Save kristiker/be683a87aa9e4349ce38db54da7297c1 to your computer and use it in GitHub Desktop.
//=================================================================================================
// Reconstructed with VRF - https://vrf.steamdb.info/
//=================================================================================================
HEADER
{
Description = "Shader used by the particle system";
DevShader = true;
Version = 0;
}
MODES
{
CsgoForward();
GBuffer(S_MODE_GBUFFER);
ToolsVis(S_MODE_TOOLS_VIS);
ToolsShadingComplexity(S_MODE_TOOLS_SHADING_COMPLEXITY);
ToolsWireframe(S_MODE_TOOLS_WIREFRAME);
}
FEATURES
{
Feature( F_DRAW_AS_TRAIL, 0..1, "" );
Feature( F_MOTION_VECTORS, 0..1, "" );
Feature( F_TEXTURE_LAYERS, 0..4 (0="None", 1="TextureLayer1", 2="TextureLayer2", 3="TextureLayer3", 4="TextureLayer4"), "" );
Feature( F_REFRACT, 0..1, "" );
Feature( F_HSV_SHIFT, 0..1, "" );
Feature( F_PARTICLE_SHADOWS, 0..1, "" );
Feature( F_REVERSE_DEPTH, 0..1, "" );
Feature( F_DISABLE_DEPTHTEST, 0..1, "" );
Feature( F_LIGHTEN_MODE, 0..1, "" );
Feature( F_FOG_PARTICLES, 0..1, "" );
Feature( F_OPAQUE, 0..1, "" );
Feature( F_SELF_ILLUM_PER_PARTICLE, 0..1, "" );
Feature( F_ENABLE_DESCRIPTOR_SET, 0..1, "" );
FeatureRule( Allow1( F_REVERSE_DEPTH, F_DISABLE_DEPTHTEST ), "Cannot disable depth test and use reverse depth test at the same time" );
FeatureRule( Requires1( F_MOTION_VECTORS, F_TEXTURE_LAYERS == 0, F_TEXTURE_LAYERS == 1, F_TEXTURE_LAYERS == 2 ), "Maximum cbuffer allowances for motion + layers is 2 layers and 1 motion" );
FeatureRule( Allow1( F_PARTICLE_SHADOWS, F_REVERSE_DEPTH ), "Particle shadows and Reverse Depth are incompatible" );
FeatureRule( Allow1( F_PARTICLE_SHADOWS, F_DISABLE_DEPTHTEST ), "Particle shadows and Disable Depth Test are incompatible" );
FeatureRule( Allow1( F_PARTICLE_SHADOWS, F_DRAW_AS_TRAIL ), "Particle shadows and Trails are incompatible" );
FeatureRule( Allow1( F_PARTICLE_SHADOWS, F_LIGHTEN_MODE ), "Particle shadows and Lighten mode are incompatible" );
FeatureRule( Allow1( F_PARTICLE_SHADOWS, F_REFRACT ), "Particle shadows and Refract are incompatible" );
FeatureRule( Allow1( F_PARTICLE_SHADOWS, F_OPAQUE ), "Particle shadows and Opaque are incompatible" );
}
COMMON
{
#include "system.fxc"
cbuffer PerViewBarnLightConstantBuffer2_t
{
float4x3 g_mBarnIlluminationFromWorld[315];
float4x4 g_mBarnFrustumInv[315];
float4 g_vBarnLightLuminaireInfo0[315];
float4 g_vBarnLightLuminaireInfo1[315];
float4 g_vBarnLightLuminaireInfo2[315];
float4 g_vBarnLightLuminaireInfo3[315];
};
cbuffer PerViewBarnLightConstantBuffer_t
{
float4 g_vNumBarnLights;
float4x4 g_mBarnFrustum[315];
float4 g_vBarnLightPosition[315];
float4 g_vBarnLightDistanceFade_vSkirt[315];
float4 g_vBarnLightColor_flCookie[315];
float4 g_vBarnLightOrientation[315];
float4 g_vBarnLightAngleFade_flContactShadowBit[315];
float4 g_vBarnLightShadowOffsetScale[315];
float4 g_vBarnLightCookieParameters[315];
float4 g_vBarnLightBakedShadowMask[315];
float4 g_vBarnLightMinRoughness_flLuminaireType_flAsBaked_fShadowScale[315];
};
cbuffer PerViewConstantBufferCsgo_t
{
bool4 g_bFogTypeEnabled;
bool4 g_bOtherFxEnabled;
bool4 g_bOtherEnabled2;
DWORD g_tBlueNoiseTextureIndex;
DWORD g_tBRDFLookupTextureIndex;
DWORD g_tCubemapFogTextureIndex;
DWORD g_tDynamicAmbientOcclusionTextureIndex;
DWORD g_tDynamicAmbientOcclusionDepthIndex;
DWORD g_tSSAOIndex;
DWORD g_tParticleShadowBufferIndex;
DWORD g_tZeroth_MomentIndex;
DWORD g_tMomentsIndex;
DWORD g_tExtra_MomentIndex;
DWORD g_tLowShaderQualityFallbackCubemap;
DWORD g_tUnused0;
float2 g_vBlueNoiseMask;
DWORD g_tUnused1;
DWORD g_tUnused2;
float4x4 g_matSkyboxToWorld;
float2 g_vAoProxyDepthInvTextureSize;
float g_flAoProxyDownres;
float g_flUnusedAfterAo;
float4 g_vWindDirection;
float4 g_vWindStrengthFreqMulHighStrength;
float4 g_vInteractionProjectionOrigin;
float4 g_vInteractionVolumeInvExtents;
float4 g_vInteractionTriggerVolumeInvMins;
float4 g_vInteractionTriggerVolumeWorldToVolumeScale;
float4 g_vGradientFogBiasAndScale;
float4 m_vGradientFogExponents;
float4 g_vGradientFogColor_Opacity;
float4 g_vGradientFogCullingParams;
float4 g_vCubeFog_Offset_Scale_Bias_Exponent;
float4 g_vCubeFog_Height_Offset_Scale_Exponent_Log2Mip;
float4x4 g_matvCubeFogSkyWsToOs;
float4 g_vCubeFogCullingParams_MaxOpacity;
float4 g_vCubeFog_ExposureBias;
float4 g_vHighPrecisionLightingOffsetWs;
float g_flEnvMapPositionBias;
float g_flScopeMagnification;
float g_flEffectStrength;
float g_flMixedResolutionViewportScale;
float g_flMBOIT_Overestimation;
float g_flMBOIT_Bias;
float g_flMBOIT_Scale;
float g_flToolsVisCubemapReflectionRoughness;
float g_flCablePixelRadiusScale;
float g_flRealTime;
};
cbuffer PerViewConstantBuffer_t;
cbuffer PerViewLightProbeVolumeConstantBuffer_t
{
DWORD g_LPV[450];
};
cbuffer PerViewLightingConstantBufferGpu_t
{
float4 g_vShadow3x3PCFTermC0;
float4 g_vShadow3x3PCFTermC1;
float4 g_vShadow3x3PCFTermC2;
float4 g_vShadow3x3PCFTermC3;
float4 g_vLightmapParams;
float4 g_vScreenSpaceDitherParams;
float4 g_vCubemapNormalizationParams;
float4 g_vAmbientLightingSH[3];
float4 g_vAmbientOcclusionProxyLightPositions[4];
float4 g_vAmbientOcclusionProxyLightConeAngles;
float4 g_vAmbientOcclusionProxyLightStrengths;
float4 g_vAmbientOcclusionProxyAmbientStrength;
float4 g_vToolsAmbientLighting;
float4 g_vFastPathSunLightDir;
float4 g_vFastPathSunLightColor;
float4 g_vFastPathSunLightBakedShadowMask;
float4 g_vLightCullParams;
float4 g_vEnvMapCullParams;
float4 g_vTileCullParams;
float4 g_vDepthCullParams;
float4 g_vVisibleEnvMapSizeConstants;
float4x3 g_matVisibleEnvMapWorldToLocal[128];
float4 g_vVisibleEnvMapBoxMin[128];
float4 g_vVisibleEnvMapBoxMax[128];
float4 g_vVisibleEnvInvEdgeWidth[128];
float4 g_vVisibleEnvMapProxySphere[128];
float4 g_vVisibleEnvMapColorRotated[128];
float4 g_vVisibleEnvMapNormalizationSH[128];
float4 g_vVisibleEnvMapData[128];
int g_nShadowCascadeCount;
float g_fShadowCascadeStrength;
float g_flShadowCascadeReceiverDepthBias;
DWORD _pad1;
float4 g_vShadowCascadeSampleThreshold;
float g_flShadowCascadeSplitLerpFactorOffset;
float g_flShadowCascadeSplitLerpFactorScale;
float g_flShadowCascadeZLerpFactorOffset;
float g_flShadowCascadeZLerpFactorScale;
float4x4 g_mWorldToShadowCascade[4];
float4x4 g_mShadowCascadeToWorld[4];
float4 g_vShadowCascadeAtlasOffset[4];
DWORD g_tShadowDepthBufferIndex;
DWORD g_tLightCookieTextureIndex;
DWORD g_tEnvironmentMapTextureIndex;
DWORD _pad2;
int4 g_nLightPropertyMasks[10];
};
cbuffer SpriteCardPushConstants_t
{
};
cbuffer SpritecardVertexControls_t
{
float4 g_vecRadiusControls;
float4 g_vecDepthControlAndRotationCenterData;
float4 g_vecOrientationFadeControlData;
float4 g_vecTexelSizeControls;
float4 g_vecExtraData2;
float4 g_vecTextureControlsVertex_Base;
float4 g_vecTextureControlsVertex_Layer1;
float4 g_vecTextureControlsVertex_Layer2;
float4 g_vecTextureControlsVertex_Layer3;
float4 g_vecTextureControlsVertex_Layer4;
float4 g_vecTextureControlsVertex_Rotation;
float2 g_vSheetSize;
float2 g_vSheetDataIndex;
float2 g_vTextureLayer1SheetDataIndex;
float2 g_vTextureLayer2SheetDataIndex;
float2 g_vTextureLayer3SheetDataIndex;
float2 g_vTextureLayer4SheetDataIndex;
float2 g_vMotionVectorsSheetDataIndex;
float2 g_vNormalSheetDataIndex;
float2 m_vSphericalHarmonicLightingSheetDataIndex;
int g_nLPVIndex;
float g_flPADDING;
int3 g_nTextureVertexFlags;
int g_nControlWord;
float3 g_vExtraAmbientLight;
float g_flPADDING2;
};
struct VS_INPUT
{
float4 m_vTint : COLOR0 < Semantic( None ); >;
float4 m_vTint1 : COLOR1 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1
float4 m_vPos : POSITION0 < Semantic( None ); >; // S_DRAW_AS_TRAIL=0, S_MODE_GBUFFER=1, S_PARTICLE_SHADOWS=1
float4 m_vCornerID : TEXCOORD0 < Semantic( None ); >;
float4 m_vSeedAndTimeData : TEXCOORD1 < Semantic( None ); >;
float4 m_vPosAndRadius0 : TEXCOORD3 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1
float4 m_vPosAndRadius1 : TEXCOORD4 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1
float4 m_flSelfIllum : TEXCOORD5 < Semantic( None ); >;
float4 m_vPosAndRadius2 : TEXCOORD5 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1
float4 m_vPosAndRadius3 : TEXCOORD6 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1
float4 m_vSegmentDistanceAndExtraData : TEXCOORD7 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1
float4 m_vCropDomain : TEXCOORD8 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1
float4 m_vParticleNormal0 : TEXCOORD9 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1
float4 m_vSelfIllum : TEXCOORD11 < Semantic( None ); >;
float4 m_vParticleNormal1 : TEXCOORD10 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1
float4 m_vSequenceData : TEXCOORD2 < Semantic( None ); >;
float4 m_vRotationAndRadiusData : TEXCOORD3 < Semantic( None ); >; // S_DRAW_AS_TRAIL=0, S_MODE_GBUFFER=1, S_PARTICLE_SHADOWS=1
float4 m_vParticleNormal : TEXCOORD4 < Semantic( None ); >; // S_DRAW_AS_TRAIL=0, S_MODE_GBUFFER=1, S_PARTICLE_SHADOWS=1
};
}
VS
{
StaticCombo( S_MOLTEN_VK, 0..1 );
StaticCombo( S_MODE_GBUFFER, 0..1 );
StaticCombo( S_MODE_TOOLS_VIS, 0..1 );
StaticCombo( S_MODE_TOOLS_SHADING_COMPLEXITY, 0..1 );
StaticCombo( S_MODE_TOOLS_WIREFRAME, 0..1 );
StaticCombo( S_DRAW_AS_TRAIL, F_DRAW_AS_TRAIL );
StaticCombo( S_MOTION_VECTORS, F_MOTION_VECTORS );
StaticCombo( S_SELF_ILLUM_PER_PARTICLE, F_SELF_ILLUM_PER_PARTICLE );
StaticCombo( S_PARTICLE_SHADOWS, F_PARTICLE_SHADOWS );
StaticCombo( S_ENABLE_DESCRIPTOR_SET, F_ENABLE_DESCRIPTOR_SET );
StaticCombo( S_TEXTURE_LAYERS, F_TEXTURE_LAYERS );
StaticComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, S_MOTION_VECTORS ) );
StaticComboRule( Allow1( S_MODE_TOOLS_VIS, S_SELF_ILLUM_PER_PARTICLE ) );
StaticComboRule( Allow1( S_MODE_GBUFFER, S_MODE_TOOLS_WIREFRAME ) );
StaticComboRule( Allow1( S_MODE_GBUFFER, S_DRAW_AS_TRAIL ) );
StaticComboRule( Allow1( S_MODE_GBUFFER, S_PARTICLE_SHADOWS ) );
StaticComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, S_PARTICLE_SHADOWS ) );
StaticComboRule( Allow1( S_MODE_TOOLS_SHADING_COMPLEXITY, S_PARTICLE_SHADOWS ) );
StaticComboRule( Requires1( S_MODE_TOOLS_VIS, S_TEXTURE_LAYERS == 0, S_TEXTURE_LAYERS == 1, S_TEXTURE_LAYERS == 2, S_TEXTURE_LAYERS == 3 ) );
StaticComboRule( Requires1( S_MOTION_VECTORS, S_TEXTURE_LAYERS == 0, S_TEXTURE_LAYERS == 1, S_TEXTURE_LAYERS == 2 ) );
StaticComboRule( Allow1( S_PARTICLE_SHADOWS, S_DRAW_AS_TRAIL ) );
DynamicCombo( D_QUAD_OVERDRAW, 0..1 );
DynamicCombo( D_SUPPORT_FRAME_CROP, 0..1 );
DynamicCombo( D_BAKED_LIGHTING_FROM_PROBE, 0..1 );
DynamicCombo( D_PANORAMA_PARTICLE, 0..1 );
DynamicComboRule( Requires1( D_QUAD_OVERDRAW, S_MODE_TOOLS_SHADING_COMPLEXITY ) );
DynamicComboRule( Requires1( D_PANORAMA_PARTICLE, D_QUAD_OVERDRAW == 0 ) );
DynamicComboRule( Requires1( D_PANORAMA_PARTICLE, D_BAKED_LIGHTING_FROM_PROBE == 0 ) );
DynamicComboRule( Allow1( S_MODE_GBUFFER, D_PANORAMA_PARTICLE ) );
DynamicComboRule( Allow1( S_PARTICLE_SHADOWS, D_PANORAMA_PARTICLE ) );
DynamicComboRule( Allow1( S_MOTION_VECTORS, D_SUPPORT_FRAME_CROP ) );
ExternalDescriptorSet g_lightBinnerGpuSet < Attribute("g_lightBinnerGpuSet"); >;
ExternalDescriptorSet g_particleManagerDescSet < Attribute("g_particleManagerDescSet"); >;
// --------- SPIRV -> HLSL begin ---------
static float _2;
static float4 _17208;
cbuffer _2653_4459 : register(b15)
{
column_major float4x4 _4459_m0 : packoffset(c0);
float4 _4459_m1 : packoffset(c17);
float _4459_m2 : packoffset(c18.z);
float _4459_m3 : packoffset(c18.w);
float3 _4459_m4 : packoffset(c19);
float _4459_m5 : packoffset(c19.w);
float3 _4459_m6 : packoffset(c20);
float _4459_m7 : packoffset(c20.w);
float3 _4459_m8 : packoffset(c21);
float3 _4459_m9 : packoffset(c22);
float2 _4459_m10 : packoffset(c23.z);
float2 _4459_m11 : packoffset(c26);
float2 _4459_m12 : packoffset(c26.z);
float4 _4459_m13 : packoffset(c33);
};
cbuffer _1152_5538 : register(b0)
{
float4 _5538_m0 : packoffset(c0);
float4 _5538_m1 : packoffset(c1);
float4 _5538_m2 : packoffset(c2);
float4 _5538_m3 : packoffset(c3);
float4 _5538_m4[3] : packoffset(c7);
float4 _5538_m5 : packoffset(c17);
float4 _5538_m6 : packoffset(c19);
uint4 _5538_m7 : packoffset(c21);
uint4 _5538_m8 : packoffset(c23);
float4 _5538_m9 : packoffset(c24);
};
ByteAddressBuffer _4440 : register(t30);
cbuffer _1032_5037 : register(b20)
{
float4 _5037_m0 : packoffset(c30);
float _5037_m1 : packoffset(c31.w);
};
cbuffer _1882_3553 : register(b18)
{
float4 _3553_m0 : packoffset(c0);
float4 _3553_m1 : packoffset(c1);
float4 _3553_m2 : packoffset(c2);
float4 _3553_m3 : packoffset(c3);
float4 _3553_m4 : packoffset(c4);
float4 _3553_m5 : packoffset(c5);
float2 _3553_m6 : packoffset(c11);
float2 _3553_m7 : packoffset(c11.z);
uint3 _3553_m8 : packoffset(c16);
uint _3553_m9 : packoffset(c16.w);
};
cbuffer _2763_4528 : register(b2)
{
column_major float4x4 _4528_m0[315] : packoffset(c1);
float4 _4528_m1[315] : packoffset(c1261);
float4 _4528_m2[315] : packoffset(c1576);
float4 _4528_m3[315] : packoffset(c1891);
float4 _4528_m4[315] : packoffset(c2206);
float4 _4528_m5[315] : packoffset(c2521);
float4 _4528_m6[315] : packoffset(c2836);
float4 _4528_m7[315] : packoffset(c3151);
float4 _4528_m8[315] : packoffset(c3781);
};
cbuffer _462_5435 : register(b3)
{
column_major float4x3 _5435_m0[315] : packoffset(c0);
};
Texture2D<float4> _25287;
SamplerState __25287_sampler;
Texture3D<float4> _25289;
SamplerState __25289_sampler;
Texture3D<float4> _25291;
SamplerState __25291_sampler;
Texture2D<float4> _25293;
SamplerComparisonState __25293_sampler;
static float4 gl_Position;
static float gl_ClipDistance[1];
static float2 _5759;
static float4 _5760;
static float4 _5761;
static float4 _5936;
static float3 _5105;
static float4 _5762;
static float3 _5763;
static float4 _3486;
static float4 _5188;
static float3 _3488;
static float3 _3489;
static float4 _3490;
static float4 _3491;
struct SPIRV_Cross_Input
{
float2 _5759 : TEXCOORD0;
float4 _5760 : TEXCOORD1;
float4 _5761 : TEXCOORD2;
float4 _5936 : TEXCOORD3;
float3 _5105 : TEXCOORD4;
float4 _5762 : TEXCOORD5;
float3 _5763 : TEXCOORD6;
};
struct SPIRV_Cross_Output
{
float4 _3486 : TEXCOORD0;
float4 _5188 : TEXCOORD1;
float3 _3488 : TEXCOORD2;
float3 _3489 : TEXCOORD3;
nointerpolation float4 _3490 : TEXCOORD4;
float4 _3491 : TEXCOORD5;
float4 gl_Position : SV_Position;
float gl_ClipDistance0 : SV_ClipDistance0;
};
void MainVs_inner()
{
float3 _21709;
if ((min(4u, ((_3553_m9 >> 1u) & 7u)) == 0u) && (_3553_m2.z == 0.0f))
{
float3 _12501;
if ((_4459_m10.y / _4459_m10.x) > 1.77777779102325439453125f)
{
Wave ops requires SM 6.0 or higher.// --------- SPIRV -> HLSL end ---------
}
PS
{
StaticCombo( S_MOLTEN_VK, 0..1 );
StaticCombo( S_MODE_GBUFFER, 0..1 );
StaticCombo( S_MODE_TOOLS_VIS, 0..1 );
StaticCombo( S_MODE_TOOLS_SHADING_COMPLEXITY, 0..1 );
StaticCombo( S_MODE_TOOLS_WIREFRAME, 0..1 );
StaticCombo( S_REVERSE_DEPTH, F_REVERSE_DEPTH );
StaticCombo( S_MOTION_VECTORS, F_MOTION_VECTORS );
StaticCombo( S_REFRACT, F_REFRACT );
StaticCombo( S_OPAQUE, F_OPAQUE );
StaticCombo( S_HSV_SHIFT, F_HSV_SHIFT );
StaticCombo( S_DRAW_AS_TRAIL, F_DRAW_AS_TRAIL );
StaticCombo( S_TEXTURE_LAYERS, F_TEXTURE_LAYERS );
StaticCombo( S_PARTICLE_SHADOWS, F_PARTICLE_SHADOWS );
StaticCombo( S_ENABLE_DESCRIPTOR_SET, F_ENABLE_DESCRIPTOR_SET );
StaticComboRule( Allow1( S_MODE_TOOLS_SHADING_COMPLEXITY, S_REVERSE_DEPTH ) );
StaticComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, S_MOTION_VECTORS ) );
StaticComboRule( Allow1( S_MODE_TOOLS_SHADING_COMPLEXITY, S_REFRACT ) );
StaticComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, S_REFRACT ) );
StaticComboRule( Allow1( S_MODE_TOOLS_SHADING_COMPLEXITY, S_OPAQUE ) );
StaticComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, S_OPAQUE ) );
StaticComboRule( Allow1( S_MODE_GBUFFER, S_MODE_TOOLS_WIREFRAME ) );
StaticComboRule( Allow1( S_MODE_GBUFFER, S_DRAW_AS_TRAIL ) );
StaticComboRule( Allow1( S_MODE_GBUFFER, S_OPAQUE ) );
StaticComboRule( Allow1( S_MODE_GBUFFER, S_REFRACT ) );
StaticComboRule( Allow1( S_MODE_GBUFFER, S_REVERSE_DEPTH ) );
StaticComboRule( Allow1( S_MODE_GBUFFER, S_PARTICLE_SHADOWS ) );
StaticComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, S_PARTICLE_SHADOWS ) );
StaticComboRule( Requires1( S_MOTION_VECTORS, S_TEXTURE_LAYERS == 0, S_TEXTURE_LAYERS == 1, S_TEXTURE_LAYERS == 2 ) );
StaticComboRule( Allow1( S_PARTICLE_SHADOWS, S_REVERSE_DEPTH ) );
StaticComboRule( Allow1( S_PARTICLE_SHADOWS, S_DRAW_AS_TRAIL ) );
StaticComboRule( Allow1( S_PARTICLE_SHADOWS, S_REFRACT ) );
StaticComboRule( Allow1( S_PARTICLE_SHADOWS, S_OPAQUE ) );
DynamicCombo( D_DEPTH_FEATHERING, 0..1 );
DynamicCombo( D_SCENE_DEPTH_MSAA, 0..1 );
DynamicCombo( D_FASTPATH, 0..1 );
DynamicCombo( D_SHADOW_MODE, 0..1 );
DynamicCombo( D_QUAD_OVERDRAW, 0..1 );
DynamicCombo( D_MBOIT_PASS1, 0..1 );
DynamicCombo( D_MBOIT_PASS2, 0..1 );
DynamicCombo( D_PANORAMA_PARTICLE, 0..1 );
DynamicComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, D_DEPTH_FEATHERING ) );
DynamicComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, D_SCENE_DEPTH_MSAA ) );
DynamicComboRule( Allow1( S_REFRACT, D_FASTPATH ) );
DynamicComboRule( Allow1( S_MODE_TOOLS_SHADING_COMPLEXITY, D_FASTPATH ) );
DynamicComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, D_FASTPATH ) );
DynamicComboRule( Allow1( S_OPAQUE, D_DEPTH_FEATHERING ) );
DynamicComboRule( Requires1( D_SHADOW_MODE, S_MODE_GBUFFER ) );
DynamicComboRule( Requires1( D_QUAD_OVERDRAW, S_MODE_TOOLS_SHADING_COMPLEXITY ) );
DynamicComboRule( Allow1( S_MODE_GBUFFER, D_MBOIT_PASS1, D_MBOIT_PASS2 ) );
DynamicComboRule( Allow1( S_MODE_TOOLS_SHADING_COMPLEXITY, D_MBOIT_PASS1, D_MBOIT_PASS2 ) );
DynamicComboRule( Allow1( S_OPAQUE, D_MBOIT_PASS1, D_MBOIT_PASS2 ) );
DynamicComboRule( Requires1( D_PANORAMA_PARTICLE, D_QUAD_OVERDRAW == 0 ) );
DynamicComboRule( Requires1( D_PANORAMA_PARTICLE, S_MODE_TOOLS_VIS == 0 ) );
DynamicComboRule( Requires1( D_PANORAMA_PARTICLE, S_MODE_TOOLS_SHADING_COMPLEXITY == 0 ) );
DynamicComboRule( Requires1( D_PANORAMA_PARTICLE, S_MODE_TOOLS_WIREFRAME == 0 ) );
DynamicComboRule( Allow1( S_MODE_GBUFFER, D_PANORAMA_PARTICLE ) );
DynamicComboRule( Allow1( S_PARTICLE_SHADOWS, D_PANORAMA_PARTICLE ) );
DynamicComboRule( Allow1( D_MBOIT_PASS1, D_PANORAMA_PARTICLE ) );
DynamicComboRule( Allow1( D_MBOIT_PASS2, D_PANORAMA_PARTICLE ) );
RenderState(BlendEnable, 1);
RenderState(BlendOp, F_LIGHTEN_MODE ? 4 : 0);
RenderState(DepthFunc, F_DISABLE_DEPTHTEST ? 7 : 3);
RenderState(DepthWriteEnable, 0);
RenderState(DstBlend, F_LIGHTEN_MODE || 5);
RenderState(SrcBlend, 1);
RenderState(StencilEnable, 1);
RenderState(StencilFunc, 5);
RenderState(StencilRef, 1);
ExternalDescriptorSet g_lightBinnerGpuSet < Attribute("g_lightBinnerGpuSet"); >;
int g_nToolsVisMode < Attribute("g_nToolsVisMode"); UiType(Slider); >;
ExternalDescriptorSet g_particleManagerDescSet < Attribute("g_particleManagerDescSet"); >;
RWTexture2D<float4> g_tQuadOverdrawMutexUAV < Attribute("QuadOverdrawMutexUAV"); >;
RWTexture2D<float4> g_tQuadOverdrawUAV < Attribute("QuadOverdrawUAV"); >;
float4 g_vShadingComplexity < UiType(VectorText); >;
#if (S_MODE_TOOLS_WIREFRAME == 1)
RenderState(ColorWriteEnable0, 7);
#endif
#if (S_REFRACT == 1)
RenderState(ColorWriteEnable0, 7);
#endif
#if (S_REVERSE_DEPTH == 1)
RenderState(ColorWriteEnable0, 7);
#endif
#if (S_OPAQUE == 1)
RenderState(ColorWriteEnable0, 7);
#endif
// --------- SPIRV -> HLSL begin ---------
static float _19285;
static const float3 _2032[15] = { 0.0f.xxx, 0.0f.xxx, 0.0f.xxx, float3(0.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f), float3(1.0f, 0.0f, 1.0f), 0.0f.xxx, 0.0f.xxx, float3(0.0f, 1.0f, 0.0f), 0.0f.xxx, 0.0f.xxx, 0.0f.xxx, 0.0f.xxx, 0.0f.xxx, 0.0f.xxx };
static const float2 _915[15] = { float2(1.0f, 0.0f), 0.0f.xx, float2(0.0f, 1.0f), 0.0f.xx, float2(1.0f, 0.0f), float2(1.0f, 0.0f), 0.0f.xx, float2(0.0f, 1.0f), 0.0f.xx, float2(1.0f, 0.0f), float2(1.0f, 0.0f), float2(1.0f, 0.0f), 0.0f.xx, 0.0f.xx, 0.0f.xx };
cbuffer _1022_4459 : register(b1)
{
float3 _4459_m0 : packoffset(c19);
float _4459_m1 : packoffset(c29.w);
};
cbuffer _2673_5037 : register(b6)
{
uint4 _5037_m0 : packoffset(c0);
float4 _5037_m1 : packoffset(c18);
float4 _5037_m2 : packoffset(c19);
float4 _5037_m3 : packoffset(c20);
float4 _5037_m4 : packoffset(c22);
float4 _5037_m5 : packoffset(c23);
column_major float4x4 _5037_m6 : packoffset(c24);
float4 _5037_m7 : packoffset(c28);
float4 _5037_m8 : packoffset(c29);
};
cbuffer _2022_3805 : register(b4)
{
float4 _3805_m0 : packoffset(c0);
float4 _3805_m1 : packoffset(c1);
float4 _3805_m2 : packoffset(c3);
float4 _3805_m3 : packoffset(c4);
float4 _3805_m4 : packoffset(c5);
float4 _3805_m5 : packoffset(c6);
float4 _3805_m6 : packoffset(c8);
float4 _3805_m7 : packoffset(c9);
uint2 _3805_m8 : packoffset(c19);
uint _3805_m9 : packoffset(c19.z);
};
Texture2D<float4> _25225;
SamplerState __25225_sampler;
Texture2D<float4> _25227;
SamplerState __25227_sampler;
TextureCube<float4> _25229;
SamplerState __25229_sampler;
static float4 _5759;
static float4 _5936;
static float3 _5761;
static float4 _5763;
static float4 _5764;
static float4 _5482;
struct SPIRV_Cross_Input
{
float4 _5759 : TEXCOORD0;
float4 _5936 : TEXCOORD1;
float3 _5761 : TEXCOORD2;
nointerpolation float4 _5763 : TEXCOORD4;
float4 _5764 : TEXCOORD5;
};
struct SPIRV_Cross_Output
{
float4 _5482 : SV_Target0;
};
void MainPs_inner()
{
bool _13055;
uint _17764 = _3805_m9 & 1u;
bool _20369 = _17764 != 0u;
float2 _14515 = _5759.xz * 1.0f;
float4 _14128 = float4(_14515.x, _5759.y, _14515.y, _5759.w);
float2 _17816 = _14128.xy;
int _24464 = int(_3805_m2.z);
float4 _12885;
do
{
_13055 = float(_24464 & 1) == 1.0f;
if (_13055)
{
_12885 = _25225.Sample(__25225_sampler, _17816);
break;
}
_12885 = _25227.Sample(__25227_sampler, _17816);
break;
} while(false);
float4 _19707;
if (_20369)
{
float3 _7115 = _12885.xyz - float3(0.005859375f, 0.009765625f, 0.005859375f);
_19707 = float4(_7115.x, _7115.y, _7115.z, _12885.w);
}
else
{
_19707 = _12885;
}
float4 _21709;
if ((_3805_m9 & 32768u) > 0u)
{
float4 _12502;
if (_5763.x > (-1.0f))
{
float2 _10322 = _14128.zw;
float4 _12886;
do
{
if (_13055)
{
_12886 = _25225.Sample(__25225_sampler, _10322);
break;
}
_12886 = _25227.Sample(__25227_sampler, _10322);
break;
} while(false);
float4 _12904;
if (_20369)
{
float3 _7116 = _12886.xyz - float3(0.005859375f, 0.009765625f, 0.005859375f);
_12904 = float4(_7116.x, _7116.y, _7116.z, _12886.w);
}
else
{
_12904 = _12886;
}
int _21358;
do
{
if ((_3805_m9 & 1024u) != 0u)
{
_21358 = ((_3805_m9 & 65536u) == 1u) ? 2 : 1;
break;
}
else
{
_21358 = 0;
break;
}
break; // unreachable workaround
} while(false);
bool4 _8974 = (_21358 == 0).xxxx;
float4 _7078;
if (_21358 == 1)
{
_7078 = lerp(_19707, _12904, _5763.x.xxxx);
}
else
{
_7078 = float4(_8974.x ? _19707.x : 0.0f.xxxx.x, _8974.y ? _19707.y : 0.0f.xxxx.y, _8974.z ? _19707.z : 0.0f.xxxx.z, _8974.w ? _19707.w : 0.0f.xxxx.w);
}
float4 _12501;
if (_21358 == 2)
{
float _10302 = (1.0f - _5763.x) * sqrt(max(0.001000000047497451305389404296875f, dot(_19707.xyz, float3(0.2125000059604644775390625f, 0.7153999805450439453125f, 0.07209999859333038330078125f))));
float _11114 = sqrt(max(0.001000000047497451305389404296875f, dot(_12904.xyz, float3(0.2125000059604644775390625f, 0.7153999805450439453125f, 0.07209999859333038330078125f))));
_12501 = ((_19707 * _10302) + (_12904 * (_5763.x * _11114))) / mad(_5763.x, _11114, _10302).xxxx;
}
else
{
_12501 = _7078;
}
_12502 = _12501;
}
else
{
_12502 = _19707;
}
_21709 = _12502;
}
else
{
_21709 = _19707;
}
int _25100 = int(_3805_m8.x) & 255;
uint3 _10073 = uint3(float3(float(uint((int(_3805_m8.y) >> 16) & 15)), float(_25100 & 15), float((_25100 >> 4) & 15)));
float4 _12887;
do
{
uint _23830 = _10073.x;
if (_23830 == 0u)
{
_12887 = _21709;
break;
}
else
{
if (_23830 == 1u)
{
float _19282 = frac(_3805_m6.z * _14515.y);
float _19069 = _19282 / mad(-0.39999997615814208984375f, 1.0f - _19282, 1.0f);
float4 _22205 = _14128 - 0.5f.xxxx;
float2 _20122 = ((_22205 * lerp(4.0f, 1.0f, _19069)) + 0.5f.xxxx).xy;
float4 _22822;
do
{
if (_13055)
{
_22822 = _25225.Sample(__25225_sampler, _20122);
break;
}
_22822 = _25227.Sample(__25227_sampler, _20122);
break;
} while(false);
float2 _15914 = ((_22205 * lerp(1.0f, 0.0625f, _19069)) + 0.5f.xxxx).xy;
float4 _10307;
do
{
if (_13055)
{
_10307 = _25225.Sample(__25225_sampler, _15914);
break;
}
_10307 = _25227.Sample(__25227_sampler, _15914);
break;
} while(false);
float4 _10911 = lerp(_10307, _22822, (_19069 * _19069).xxxx);
_10911.w = lerp(_21709.w, _10911.w, float(_2032[int(_10073.y)].y != 1.0f));
_12887 = _10911;
break;
}
else
{
if (_23830 == 3u)
{
float2 _25152 = _17816 - (((_21709.xy - 0.5f.xx) * 2.0f) * (((_3805_m6.w * _5759.w) * 0.125f) * _21709.w));
float4 _12504;
do
{
if (_13055)
{
_12504 = _25225.Sample(__25225_sampler, _25152);
break;
}
_12504 = _25227.Sample(__25227_sampler, _25152);
break;
} while(false);
_12887 = _12504;
break;
}
else
{
if (_23830 == 4u)
{
float _19281 = frac(_3805_m6.z * _14515.y);
float _19068 = _19281 / mad(-0.39999997615814208984375f, 1.0f - _19281, 1.0f);
float4 _22204 = _14128 - 0.5f.xxxx;
float2 _20121 = ((_22204 * lerp(4.0f, 1.0f, _19068)) + 0.5f.xxxx).xy;
float4 _22821;
do
{
if (_13055)
{
_22821 = _25225.Sample(__25225_sampler, _20121);
break;
}
_22821 = _25227.Sample(__25227_sampler, _20121);
break;
} while(false);
float2 _15913 = ((_22204 * lerp(1.0f, 0.0625f, _19068)) + 0.5f.xxxx).xy;
float4 _10306;
do
{
if (_13055)
{
_10306 = _25225.Sample(__25225_sampler, _15913);
break;
}
_10306 = _25227.Sample(__25227_sampler, _15913);
break;
} while(false);
float4 _10910 = lerp(_10306, _22821, (_19068 * _19068).xxxx);
float2 _25151 = _17816 - (((_10910.xy - 0.5f.xx) * 2.0f) * (((_3805_m6.w * _5759.w) * 0.125f) * lerp(_21709.w, _10910.w, float(_2032[int(_10073.y)].y != 1.0f))));
float4 _12503;
do
{
if (_13055)
{
_12503 = _25225.Sample(__25225_sampler, _25151);
break;
}
_12503 = _25227.Sample(__25227_sampler, _25151);
break;
} while(false);
_12887 = _12503;
break;
}
else
{
if (_23830 == 2u)
{
int _16139 = int(_10073.y);
float4 _25074 = lerp(lerp(float4(_21709.xyz * _21709.www, 1.0f), _21709, _915[_16139].x.xxxx), _21709.wwww, _915[_16139].y.xxxx);
float3 _25122 = _25074.xyz;
float3 _17379 = _25122 * 12.9200000762939453125f;
float3 _7485 = (pow(_25122, 0.4166666567325592041015625f.xxx) * 1.05499994754791259765625f) - 0.054999999701976776123046875f.xxx;
float2 _14593 = float2((dot(float3((_25074.x <= 0.003130800090730190277099609375f) ? _17379.x : _7485.x, (_25074.y <= 0.003130800090730190277099609375f) ? _17379.y : _7485.y, (_25074.z <= 0.003130800090730190277099609375f) ? _17379.z : _7485.z), float3(0.2125000059604644775390625f, 0.7153999805450439453125f, 0.07209999859333038330078125f)) + _14515.x) * _14515.y, _5759.y);
float4 _20940;
do
{
if (_13055)
{
_20940 = _25225.Sample(__25225_sampler, _14593);
break;
}
_20940 = _25227.Sample(__25227_sampler, _14593);
break;
} while(false);
float4 _19793 = _20940;
_19793.w = dot(_20940.xyz, float3(0.2989999949932098388671875f, 0.58700001239776611328125f, 0.114000000059604644775390625f));
float4 _21518 = _20940;
_21518.w = _21709.w;
_12887 = lerp(_21518, _19793, _915[_16139].y.xxxx);
break;
}
}
}
}
}
_12887 = _21709;
break;
} while(false);
float _22475;
if (((_24464 >> 12) & 1) != 0)
{
_22475 = _3805_m6.y * _5759.w;
}
else
{
_22475 = _3805_m6.y;
}
float4 _22476;
switch (_10073.y)
{
case 0u:
{
float4 _19447 = _12887;
_19447.w = 1.0f;
_22476 = _19447;
break;
}
case 1u:
{
_22476 = _12887;
break;
}
case 2u:
{
_22476 = float4(1.0f.xxx.x, 1.0f.xxx.y, 1.0f.xxx.z, _12887.w);
break;
}
case 3u:
{
float4 _16296 = _12887;
_16296.w = _12887.w;
_22476 = _16296;
break;
}
case 4u:
{
float3 _8079 = lerp(1.0f.xxx, _12887.xyz, _12887.w.xxx);
float4 _20909 = float4(_8079.x, _8079.y, _8079.z, _12887.w);
_20909.w = 1.0f;
_22476 = _20909;
break;
}
case 5u:
{
float3 _13687 = lerp(1.0f.xxx, _12887.xyz, dot(_12887.xyz, float3(0.2989999949932098388671875f, 0.58700001239776611328125f, 0.114000000059604644775390625f)).xxx);
float4 _20908 = float4(_13687.x, _13687.y, _13687.z, _12887.w);
_20908.w = 1.0f;
_22476 = _20908;
break;
}
case 6u:
{
float4 _12956 = _12887;
_12956.w = dot(_12887.xyz, float3(0.2989999949932098388671875f, 0.58700001239776611328125f, 0.114000000059604644775390625f));
_22476 = _12956;
break;
}
case 7u:
{
float4 _14324 = float4(1.0f.xxx.x, 1.0f.xxx.y, 1.0f.xxx.z, _12887.w);
_14324.w = dot(_12887.xyz, float3(0.2989999949932098388671875f, 0.58700001239776611328125f, 0.114000000059604644775390625f));
_22476 = _14324;
break;
}
case 8u:
{
float4 _14323 = float4(1.0f.xxx.x, 1.0f.xxx.y, 1.0f.xxx.z, _12887.w);
_14323.w = dot(_12887.xyz, float3(0.2989999949932098388671875f, 0.58700001239776611328125f, 0.114000000059604644775390625f));
_22476 = _14323;
break;
}
case 9u:
{
float4 _15725 = float4(_12887.x, _12887.x, _12887.x, _12887.w);
_15725.w = 1.0f;
_22476 = _15725;
break;
}
case 10u:
{
float4 _15724 = float4(_12887.y, _12887.y, _12887.y, _12887.w);
_15724.w = 1.0f;
_22476 = _15724;
break;
}
case 11u:
{
float4 _15723 = float4(_12887.z, _12887.z, _12887.z, _12887.w);
_15723.w = 1.0f;
_22476 = _15723;
break;
}
case 12u:
{
_22476 = _12887.xxxx;
break;
}
case 13u:
{
_22476 = _12887.yyyy;
break;
}
case 14u:
{
_22476 = _12887.zzzz;
break;
}
default:
{
_22476 = _12887;
break;
}
}
float4 _18229;
switch (_10073.z)
{
case 0u:
{
_18229 = _22476;
break;
}
case 3u:
{
_18229 = 1.0f.xxxx + _22476;
break;
}
case 4u:
{
_18229 = 1.0f.xxxx - _22476;
break;
}
case 1u:
{
_18229 = _22476 * 2.0f.xxxx;
break;
}
case 2u:
{
_18229 = _22476;
break;
}
case 5u:
{
_18229 = (1.0f.xxxx + _22476) * 0.5f;
break;
}
case 6u:
{
float3 _21121 = 1.0f.xxx * dot(_22476.xyz, float3(0.2125000059604644775390625f, 0.7153999805450439453125f, 0.07209999859333038330078125f));
_18229 = float4(_21121.x, _21121.y, _21121.z, _22476.w);
break;
}
default:
{
_18229 = _22476;
break;
}
}
float4 _24406 = clamp(lerp(1.0f.xxxx, _18229, _22475.xxxx), 0.0f.xxxx, 1.0f.xxxx);
float3 _21449 = _24406.xyz * _5936.xyz;
float4 _12488 = float4(_21449.x, _21449.y, _21449.z, _24406.w);
float _13682 = _24406.w;
bool _10183 = (_3805_m9 & 262144u) != 0u;
float4 _20941;
if (!_10183)
{
float4 _21710;
[branch]
if (_3805_m0.w < _3805_m0.z)
{
float4 _11897 = _12488;
_11897.w = smoothstep(_3805_m0.w, _3805_m0.z, _13682);
_21710 = _11897;
}
else
{
_21710 = _12488;
}
float4 _12505;
[branch]
if ((_13682 >= _3805_m5.x) && (_13682 <= _3805_m5.w))
{
float _21711;
if (_13682 <= _3805_m5.z)
{
_21711 = smoothstep(_3805_m5.x, _3805_m5.z, _13682);
}
else
{
_21711 = smoothstep(_3805_m5.w, _3805_m5.y, _13682);
}
_12505 = lerp(_21710, _3805_m4, _21711.xxxx);
}
else
{
_12505 = _21710;
}
_20941 = _12505;
}
else
{
_20941 = _12488;
}
float3 _23612 = lerp(_20941.xyz, dot(_20941.xyz, float3(0.2125000059604644775390625f, 0.7153999805450439453125f, 0.07209999859333038330078125f)).xxx, _3805_m7.x.xxx);
float4 _10825 = _3805_m3 * float4(_23612.x, _23612.y, _23612.z, _20941.w);
float _9244 = _10825.w + _3805_m6.x;
float4 _14171 = _10825;
_14171.w = _9244;
float4 _12888;
if ((_3805_m9 & 1024u) != 0u)
{
float4 _18986 = _14171;
_18986.w = clamp(_9244, 0.0f, 1.0f);
_12888 = _18986;
}
else
{
_12888 = _14171;
}
float4 _19284;
if (_10183)
{
float _16415 = max(_3805_m5.x, _12888.w);
float _17123 = _12888.w - _3805_m0.w;
float4 _13727 = _12888;
_13727.w = min(clamp(((_5763.z + _5763.w) - _12888.w) / ((_12888.w + _3805_m0.z) - _12888.w), 0.0f, 1.0f) * _16415, mad(clamp((_5763.z - _17123) / (_12888.w - _17123), 0.0f, 1.0f), -_16415, _16415)) * max(_3805_m5.y, _5936.w);
_19284 = _13727;
}
else
{
float4 _18602 = _12888;
_18602.w = _12888.w * _5936.w;
_19284 = _18602;
}
float3 _24020 = _19284.xyz * ((((_5764.xyz * _3805_m0.y) * 1.0f) + _3805_m0.x.xxx) + _5764.w.xxx);
float _6303 = lerp(_19284.w, clamp(_19284.w * 128.0f, 0.0f, 1.0f), float(_3805_m9 & 524288u));
float4 _11008;
float _13513;
if (_20369)
{
float3 _8506 = _4459_m1.xxx;
float3 _8576 = lerp(_8506, lerp(_8506, _19284.xyz, _5936.xyz), _6303.xxx);
_11008 = float4(_8576.x, _8576.y, _8576.z, _19284.w);
_13513 = _6303;
}
else
{
float4 _19688;
if ((_3805_m9 & 16u) != 0u)
{
float3 _19128 = _24020.xyz * _3805_m1.z;
_19688 = float4(_19128.x, _19128.y, _19128.z, _19284.w);
}
else
{
_19688 = float4(_24020.x, _24020.y, _24020.z, _19284.w);
}
float4 _10904;
float _13264;
if ((_3805_m9 & 128u) != 0u)
{
float4 _13213;
float _15671;
if (_17764 == 0u)
{
float3 _8140 = _5761 - _4459_m0;
float4 _21712;
[branch]
if (_5037_m0.y != 0u)
{
float2 _21390 = clamp(mad(_5037_m1.zw, float2(length(_8140.xy), _5761.z), _5037_m1.xy), 0.0f.xx, 1.0f.xx);
float3 _9639 = lerp(float4(_5037_m3.xyz, _19285).xyz * _3805_m1.w, _19688.xyz, mad(-(pow(_21390.x, _5037_m2.x) * pow(_21390.y, _5037_m2.y)), _5037_m3.w, 1.0f).xxx);
_21712 = float4(_9639.x, _9639.y, _9639.z, _19688.w);
}
else
{
_21712 = _19688;
}
float4 _13212;
float _15670;
[branch]
if (_5037_m0.z != 0u)
{
float _16990 = clamp(pow(max(0.0f, mad(length(_8140.xy), _5037_m4.y, _5037_m4.x)), _5037_m4.w), 0.0f, 1.0f) * clamp(pow(max(0.0f, mad(_5761.z, _5037_m5.y, _5037_m5.x)), _5037_m5.z), 0.0f, 1.0f);
float _12490 = mad(-clamp(_16990, 0.0f, 1.0f), _5037_m7.w, 1.0f);
float3 _7435 = lerp(float4((_25229.SampleLevel(__25229_sampler, normalize(mul(float4(_8140, 0.0f), _5037_m6).xyz), _5037_m5.w * clamp(mad(-_16990, _5037_m4.z, 1.0f), 0.0f, 1.0f)) * _5037_m8.x).xyz, _19285).xyz * _3805_m1.w, _21712.xyz, _12490.xxx);
_13212 = float4(_7435.x, _7435.y, _7435.z, _21712.w);
_15670 = _6303 * _12490;
}
else
{
_13212 = _21712;
_15670 = _6303;
}
_13213 = _13212;
_15671 = _15670;
}
else
{
_13213 = _19688;
_15671 = _6303;
}
_10904 = _13213;
_13264 = _15671;
}
else
{
_10904 = _19688;
_13264 = _6303;
}
float3 _7054 = _10904.xyz * lerp(_13264, 1.0f, clamp(-_3805_m1.w, 0.0f, 1.0f));
_11008 = float4(_7054.x, _7054.y, _7054.z, _10904.w);
_13513 = _13264;
}
float4 _22412 = _11008;
_22412.w = _13513 * abs(_3805_m1.w);
float4 _6805;
if (_20369)
{
float3 _19798 = clamp(_22412.xyz, 0.0f.xxx, 1.0f.xxx);
_6805 = float4(_19798.x, _19798.y, _19798.z, _22412.w);
}
else
{
_6805 = _22412;
}
_5482 = _6805;
}
SPIRV_Cross_Output MainPs(SPIRV_Cross_Input stage_input)
{
_5759 = stage_input._5759;
_5936 = stage_input._5936;
_5761 = stage_input._5761;
_5763 = stage_input._5763;
_5764 = stage_input._5764;
MainPs_inner();
SPIRV_Cross_Output stage_output;
stage_output._5482 = _5482;
return stage_output;
}
// --------- SPIRV -> HLSL end ---------
BoolAttribute(translucent, true);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment