CS2 Updates

This website provides updates, news, and insider information about Counter-Strike, including game updates, patches, and changes.
Show raw JSON
{
  "generated_at_utc": "2026-11-13T14:09:51.308Z",
  "source": {
    "owner": "SteamDatabase",
    "repo": "GameTracking-CS2"
  },
  "last_updates": [
    {
      "event_id": "gh:82e2b9d",
      "detected_at_utc": "2026-11-13T14:09:49.904Z",
      "commit_date_utc": "2026-11-11T23:05:21Z",
      "commit": {
        "sha": "82e2b9d62cc97f1358c68a220a4a392c9e41c509",
        "short": "82e2b9d",
        "message": "2000943 | 130 files | M\tDumpSource2/.stringsignore, M\tDumpSource2/commands.txt, M\tDumpSource2/convars.txt, M\tDumpSource2/entities/client.fgd, M\tDumpSource2/entities/server.fgd, M\tDumpSource2/module_metadata/client/resource_manifests.txt, M\tDumpSource2/network/client.txt, M\tDumpSource2/network/server.txt, M\tDumpSource2/schemas/client/CMapInfo.h, M\tDumpSource2/schemas/client/CNmAimCSNode__CDefinition.h, M\tDumpSource2/schemas/client/C_Hostage.h, M\tDumpSource2/schemas/client/EventClientPollNetworking_t.h, M\tDumpSource2/schemas/modtools/CNmGraphDocAimCSNode.h, M\tDumpSource2/schemas/server/CMapInfo.h, M\tProtobufs/netmessages.proto, M\tProtobufs/source2_steam_stats.proto, M\tgame/bin/built_from_cl.txt, M\tgame/bin/win64/animationsystem_strings.txt, M\tgame/bin/win64/csgocfg.exe_strings.txt, M\tgame/bin/win64/engine2_strings.txt, M\tgame/bin/win64/gfsdk_aftermath_lib.x64_strings.txt, M\tgame/bin/win64/materialsystem2_strings.txt, M\tgame/bin/win64/networksystem_strings.txt, M\tgame/bin/win64/panorama_strings.txt, M\tgame/bin/win64/rendersystemdx11_",
        "url": "https://github.com/SteamTracking/GameTracking-CS2/commit/82e2b9d62cc97f1358c68a220a4a392c9e41c509"
      },
      "classification": {
        "tags": [
          "scripts",
          "ui",
          "localization",
          "assets",
          "misc",
          "content-change"
        ],
        "important_files": [
          "game/csgo/pak01_dir/panorama/layout/settings/settings_video.xml",
          "game/csgo/pak01_dir/resource/csgo_english.txt",
          "game/csgo/pak01_dir/scripts/ai/retakes/bt_config.kv3",
          "game/csgo/pak01_dir/scripts/ai/retakes/bt_default.kv3",
          "game/csgo/pak01_dir/scripts/ai/retakes/modules/bt_defuse_planted_bomb.kv3",
          "game/csgo/pak01_dir/scripts/ai/retakes/modules/bt_hide_near_planted_bomb.kv3",
          "game/csgo/pak01_dir/scripts/ai/retakes/modules/bt_hold_near_planted_bomb.kv3",
          "game/csgo/pak01_dir/scripts/ai/retakes/modules/bt_watch_approach_points.kv3"
        ]
      },
      "ai_summary": "Localization/resources update (game/csgo/pak01_dir/resource/csgo_english.txt).",
      "stats": {
        "files_changed": 130,
        "additions": 11334,
        "deletions": 9250
      },
      "files": [
        {
          "filename": "DumpSource2/.stringsignore",
          "status": "modified",
          "additions": 66,
          "deletions": 18,
          "changes": 84,
          "patch": "@@ -4840,6 +4840,7 @@ Clear all watches from the game debug overlay\n Clear buffered logging\n Clear console output from all views.\n Clear console output.\n+Clear per-entity decode change callback stats\n Clear the list of deferred soundevents for loading.\n Clear the list of files that have been opened.\n Clear the pause state of the server.\n@@ -5878,8 +5879,8 @@ Draws line between two 3D Points.\\n\\tGreen if no collision\\n\\tRed is collides wi\n Draws the current weapon's true inaccuracy + spread radius around the crosshair\n Draws the overview map\n Drive (dB)\n+Drop a client if processing their messages consumes more than N ms of CPU time *PER SECOND*, sustained (token bucket fill rate)\n Drop a client if processing their messages consumes more than N ms of CPU time in a burst (token bucket capacity)\n-Drop a client if processing their messages consumes more than N ms of CPU time per second, sustained (token bucket fill rate)\n Drop defuser on player death\n Drop every Nth fragment\n Drop healthshot on player death\n@@ -7172,6 +7173,13 @@ From Player\n From Rotations\n From Velocity\n From World\n+Frost on players, weapons and chickens: -1 = the map's (info_map_parameters frostenabled), 0 = off, 1 = on (outdoors; melts indoors)\n+Frost: barrel heat per shot (1 = hot enough to clear the whole barrel)\n+Frost: distance under cover (no sky) over which the cold fades out (indoors)\n+Frost: seconds after a molotov is lit before its rag starts to heat (the flame shows a moment after)\n+Frost: seconds for a hot barrel to cool down\n+Frost: seconds for a lit molotov's rag to reach full heat\n+Frost: where the barrel heat sits, from the shell eject (0) to the muzzle (1)\n Frozen\n Full 3-Axis Rotation\n Full Density Blend Weight\n@@ -7359,6 +7367,7 @@ Gameplay State High\n Gameplay State Low\n Gamma-correct vertex colors\n Gate\n+GatherSendProxyResults only walks struct and array fields, skipping scalar fields.\n Gaussian\n General\n General purpose timer. use 'stopwatch' to toggle or explicitly call 'stopwatch start' and/or 'stopwatch stop'.\n@@ -8711,6 +8720,7 @@ Less aggressive fade out. The object will not fade out until it is smaller on sc\n LessThan\n LessThanEqual\n LessonPanelLayoutFileTypes_t\n+Let demo playback and the game rules start, dump and stop the vprof lite profiler on their own.  The vprof_lite_start, vprof_lite_stop and vprof_lite_dump commands set this to 0 so that a script can drive the profiler itself.\n Level Override\n Level Volume\n Level of validation for nav system.  Higher will be slower.\n@@ -9192,8 +9202,9 @@ Max number of broadcast http requests in flight. If there is a network issue, th\n Max number of broadcast1 http requests in flight. If there is a network issue, the requests may start piling up, degrading server performance. If more than the specified number of requests are in flight, the new requests are dropped.\n Max number of entities to transmit to player\n Max number of kills for a single multikill event\n-Max number of messages that can be queued in a netchan receive buffer for an ordinary connection from a client.\n Max number of samples per triangle. Higher is more quality/slower.\n+Max number of source engine messages an ordinary client connection may put in a single network frame.  Exceeding this disconnects the client.\n+Max number of source engine messages that can be queued in a netchan receive buffer for an ordinary connection from a client.\n Max number of ticks to simulate per frame, after which simulation will start to slow down compared to real time.\n Max number of timeouts each team can have per OT after all OT timeouts got added.\n Max number of times a player may purchase any weapon per match\n@@ -9234,6 +9245,7 @@ Maximum depth of smart prop evaluation stack during evaluation.\n Maximum distance flames can spread from their initial ignition point\n Maximum distance flames can spread from their initial ignition point for an incendiary\n Maximum distance to transmit footstep sound effects.\n+Maximum duration the client clock is allowed to drift from server snapshots, before the client snaps its clock to the latest server snapshot received\n Maximum gain any HRTF could have during volume normalization.\n Maximum lag compensation in seconds\n Maximum length\n@@ -9253,7 +9265,6 @@ Maximum number of probes to create when baking custom data (occlusion).\n Maximum number of probes to create when baking paths.\n Maximum number of probes to create when baking reverb.\n Maximum number of ragdolls to show (-1 disables limit)\n-Maximum number of ticks the clock is allowed to drift before the client snaps its clock to the server's.\n Maximum number of undo levels\n Maximum of how hard the hostage is pushed away from physics objects.\n Maximum of how hard the player is pushed away from physics objects.\n@@ -11185,6 +11196,7 @@ PanoramaUIClient001\n PanoramaUIEngine001\n PanoramaVideoPlayer\n Parallalelize Filter\n+Parallax occlusion mapping (Advanced Video setting): 0 = off, 1 = on\n ParamSpanSample_t\n ParamSpan_t\n Parameter\n@@ -11438,7 +11450,7 @@ Play a broadcast\n Play a demo and report performance info.\n Play a demo, report performance info, and then exit\n Play a note from a specified sampler\n-Play a recorded demo file (.dem ).\n+Play a recorded demo file (.dem ).  Options: start=<tick> end=<tick> timescale=<float> (run with no arguments for details).\n Play a sound at a specified volume.\n Play a sound.\n Play demos in demo sequence.\n@@ -11636,6 +11648,7 @@ Print out broadcast status\n Print out hltv events\n Print out information on existing particle systems\n Print out number of active projected textures\n+Print per-entity decode change callback stats\n Print simple description of prediction copy fields for entindex\n Print something every time we predict a command\n Print spew related to server clock and ticking\n@@ -12067,7 +12080,6 @@ Recursion Branch Split Scale\n Recursion Depth\n RecvProxy_Jumped\n RecvProxy_PatchEconIndices\n-RecvProxy_Rescued\n RecvProxy_VoteOption\n RecvProxy_VoteType\n Recvmargin-based usercommand pacing will not speed up or slow down command pacing by more than N% compared to realtime\n@@ -12961,6 +12973,9 @@ Secondary_Mode\n Seconds after client connect during which extra frames are buffered to prevent non-delta'd update\n Seconds between drowning ticks\n Seconds between full frame embeddeds\n+Seconds for the melted frost to dry\n+Seconds indoors for full frost to melt\n+Seconds outdoors for frost to grow to full\n Seconds to fade the ChickensObscuredLayer mix layer in and out.\n Seed (negative values=randomize)\n Seed Input Var\n@@ -13058,11 +13073,14 @@ Server queue reservation\n Server tags. Used to provide extra information to clients when they're browsing for servers. Separate tags with a comma.\n Server will listen for direct UDP connections on the configured port.  This can be turned off to only listen for P2P/SDR connections.\n Server will not allow the client to buffer up more than N ms of commands.\n-Server will not buffer more than N kb from connected clients\n-Server will not buffer more than N messages from connected clients\n-Server will reject message larger than N kb\n-Server will reject packets with more than N segments\n+Server will reject uncompressed Source engine frame larger than N kb.  Also sets limit on SteamNetworkingSockets message size\n Server will stop generating substitute commands if client hasn't sent one, after N in a row\n+Server: SteamNetworkingSockets will not buffer more than N kb from a connection that does not yet have a netchan\n+Server: SteamNetworkingSockets will not buffer more than N kb from connected clients\n+Server: SteamNetworkingSockets will not buffer more than N messages from a connection that does not yet have a netchan\n+Server: SteamNetworkingSockets will not buffer more than N messages from connected clients\n+Server: SteamNetworkingSockets will reject packets with more than N message segments\n+Server: max SteamNetworkingSockets message size in kb accepted from a connection that does not yet have a netchan\n ServerAuthoritative\n ServerAuthoritativeWeaponSlot_t\n ServerLog\n@@ -15926,8 +15944,8 @@ Walk\n Warmup time to use when all players have connected. 0 to disable.\n Warmup time to use when the match will be cancelled (eg. due to a live VAC ban).\n Warn if lag compensated head hitbox position doesn't match that on client.\n+Warn if processing messages from a client consumes more than N ms of CPU time *PER SECOND*, sustained (token bucket fill rate)\n Warn if processing messages from a client consumes more than N ms of CPU time in a burst (token bucket capacity)\n-Warn if processing messages from a client consumes more than N ms of CPU time per second, sustained (token bucket fill rate)\n Warp Orientation\n Warp Position\n Warp Section Tag\n@@ -16002,6 +16020,7 @@ When a player disconnects, kill them first (triggering item drops, stats, etc.)\n When a source has source-specific DSP, this can be used as an additional mix stage for the listener reverb amount.\n When an animgraph is reloaded, should the underlying system restore all params?\n When an asset is being recompiled the dependents will be recompiled only as needed, otherwise the original recompile mode will be passed on.\n+When an entity is decoded from a baseline plus a wire delta, merge the two and decode once (true), or decode the baseline and then the delta as two passes (false, the old behaviour, which can invoke change callbacks with baseline values for an entity that already exists).\n When computing respondents for a 'THEN ANY' rule, all rule-matching scores within this much of the best score will be considered.\n When computing the transform at each path point ensure that there is no roll around the path relative to the up direction. This prevents objects from tilting side to side while still allowing them to tilt along the path (unlike Use Fixed Up which does not allow them to tilt along the path).\n When condensing late commands. Should we compress multiple moves of button presses into the target move?\n@@ -17100,7 +17119,7 @@ cl_clock_recvmargin_timeconstant_slowdown\n cl_clock_recvmargin_timeconstant_speedup\n cl_clock_recvmargin_window\n cl_clockdbg\n-cl_clockdrift_max_ticks\n+cl_clockdrift_max_secs\n cl_clutch_mode\n cl_color\n cl_connectionretrytime_p2p\n@@ -17394,6 +17413,7 @@ cl_new_user_phase\n cl_obs_interp_enable\n cl_obs_interp_speed\n cl_observed_bot_crosshair\n+cl_packetentities_merge_before_decode\n cl_paintkit_override\n cl_panel_freeze_time_after_press\n cl_parallel_readpacketentities\n@@ -19368,6 +19388,7 @@ fresnel warp texture\n friction\n friction_scale\n friendlyname\n+frostenabled\n fs_async_threads\n fs_clear_open_duplicate_times\n fs_dump_open_duplicate_times\n@@ -23229,6 +23250,7 @@ m_bFreezePeriod\n m_bFreezeTargetState\n m_bFreezeTransitionActive\n m_bFreshStartThisRound\n+m_bFrostEnabled\n m_bFrozen\n m_bFullbright\n m_bGPUCullSkybox\n@@ -25593,7 +25615,6 @@ m_flDampedValue\n m_flDamping\n m_flDampingRatio\n m_flDangerousTime\n-m_flDeadOrRescuedTime\n m_flDealtDamageToEnemyMostRecentTimestamp\n m_flDeathCamTilt\n m_flDeathDestroyTime\n@@ -27243,6 +27264,7 @@ m_flTraceRadius\n m_flTraceTolerance\n m_flTracerDuration\n m_flTrajectoryTrailEffectCreationTime\n+m_flTransitionBlendTimeSeconds\n m_flTransitionDurationSeconds\n m_flTransitionPenalty\n m_flTransitionSourcePathLocation\n@@ -33556,6 +33578,8 @@ net_compresspackets_minsize\n net_connections_stats\n net_culloptimization\n net_debug_to_file\n+net_decode_callback_queue_stats_clear\n+net_decode_callback_queue_stats_dump\n net_detailed_canpacket_log\n net_fakeclear\n net_fakejitter\n@@ -33564,7 +33588,17 @@ net_fakeloss\n net_fakestatus\n net_filelogging\n net_fs_showindirections\n-net_limit_sv_recv_max_message_size_kb\n+net_gather_child_fields_only\n+net_limit_sv_listen_max_message_size_kb\n+net_limit_sv_listen_recvbuffer_kb\n+net_limit_sv_listen_recvbuffer_msg\n+net_limit_sv_message_process_time_ms_drop_burst\n+net_limit_sv_message_process_time_ms_drop_rate_per_sec\n+net_limit_sv_message_process_time_ms_warn_burst\n+net_limit_sv_message_process_time_ms_warn_rate_per_sec\n+net_limit_sv_recv_chan_buffer_messages\n+net_limit_sv_recv_chan_msgs_per_frame\n+net_limit_sv_recv_max_frame_size_kb\n net_limit_sv_recv_segments_per_packet\n net_limit_sv_recvbuffer_kb\n net_limit_sv_recvbuffer_msg\n@@ -34552,6 +34586,16 @@ r_csgo_enable_tonemapping\n r_csgo_enable_translucent_screen_space\n r_csgo_enable_volume_fog\n r_csgo_firstpersonlegs_nearz_offset\n+r_csgo_frost_dry_time\n+r_csgo_frost_force\n+r_csgo_frost_grow_time\n+r_csgo_frost_heat_barrel_position\n+r_csgo_frost_heat_cool_time\n+r_csgo_frost_heat_light_delay\n+r_csgo_frost_heat_light_time\n+r_csgo_frost_heat_per_shot\n+r_csgo_frost_indoor_distance\n+r_csgo_frost_melt_time\n r_csgo_fsr_enable_mip_bias\n r_csgo_fsr_rcas_sharpness\n r_csgo_fsr_upsample\n@@ -34593,6 +34637,7 @@ r_csgo_no_shader_resolve\n r_csgo_opaquerefract_viewmodel_depthcopy\n r_csgo_opaquerefract_viewmodel_quality\n r_csgo_outline_glow_scaledenom\n+r_csgo_parallax\n r_csgo_player_occlusion_query\n r_csgo_player_occlusion_query_debug\n r_csgo_postprocess_enable\n@@ -36784,10 +36829,6 @@ sv_mover_maxslope\n sv_mover_pogodampingratio\n sv_mover_pogofrequency\n sv_mute_players_with_social_penalties\n-sv_net_client_message_process_time_ms_drop_burst\n-sv_net_client_message_process_time_ms_drop_rate\n-sv_net_client_message_process_time_ms_warn_burst\n-sv_net_client_message_process_time_ms_warn_rate\n sv_netprof_delta_sharing_temp\n sv_networkvar_log_fullchanges\n sv_networkvar_perfieldtracking\n@@ -36852,7 +36893,6 @@ sv_rcon_maxfailures\n sv_rcon_minfailures\n sv_rcon_minfailuretime\n sv_record_item_time_data\n-sv_recvbuf_messages\n sv_regeneration_force_on\n sv_regeneration_wait_time\n sv_region\n@@ -37631,6 +37671,7 @@ vertical_align\n videocfg_ao_detail\n videocfg_fsr_detail\n videocfg_hdr_detail\n+videocfg_parallax_detail\n videocfg_particle_detail\n videocfg_shadow_quality\n videocfg_texture_detail\n@@ -37752,6 +37793,13 @@ vprof_dump_counters\n vprof_generate_report\n vprof_generate_report_budget\n vprof_generate_report_hierarchy\n+vprof_lite_auto\n+vprof_lite_dump\n+vprof_lite_dump [filename] [stop=1]\\nWrite the vprof lite budget group statistics as CSV, then stop the profiler and clear its data.\\nstop=0 leaves the profiler running with its data.  The default filename is vprof_lite.csv in the mod directory;\\nan absolute path is used as given.  Sets vprof_lite_auto 0, so the game will not stop or dump the profiler on its own.\n+vprof_lite_start\n+vprof_lite_start [clear=1]\\nStart the vprof lite profiler, clearing any data it holds.  clear=0 keeps the data and continues adding to it.\\nSets vprof_lite_auto 0, so the game will not stop or dump the profiler on its own.\n+vprof_lite_stop\n+vprof_lite_stop [clear=1]\\nStop the vprof lite profiler and clear its data.  clear=0 keeps the data, for engine_frametime_print_report or vprof_lite_dump.\\nSets vprof_lite_auto 0, so the game will not start the profiler on its own.\n vprof_loadhitstore_scale\n vprof_off\n vprof_on"
        },
        {
          "filename": "DumpSource2/commands.txt",
          "status": "modified",
          "additions": 23,
          "deletions": 1,
          "changes": 24,
          "patch": "@@ -2357,6 +2357,12 @@ net_channels (release)\n net_connections_stats (release)\n \tPrint detailed network statistics for each network connection\n \n+net_decode_callback_queue_stats_clear (developmentonly defensive)\n+\tClear per-entity decode change callback stats\n+\n+net_decode_callback_queue_stats_dump (developmentonly defensive)\n+\tPrint per-entity decode change callback stats\n+\n net_fakeclear (release)\n \tClear all simulated network conditions\n \n@@ -2576,7 +2582,7 @@ playcast (release)\n \tPlay a broadcast\n \n playdemo (release)\n-\tPlay a recorded demo file (.dem ).\n+\tPlay a recorded demo file (.dem ).  Options: start=<tick> end=<tick> timescale=<float> (run with no arguments for details).\n \n player_ping (gamedll client_can_execute)\n \tCreates a ping notification where the player is looking.\n@@ -3818,6 +3824,22 @@ vprof_generate_report_budget (developmentonly defensive)\n vprof_generate_report_hierarchy (developmentonly defensive)\n \tGenerate a report to the console.\n \n+vprof_lite_dump (developmentonly defensive)\n+\tvprof_lite_dump [filename] [stop=1]\n+\tWrite the vprof lite budget group statistics as CSV, then stop the profiler and clear its data.\n+\tstop=0 leaves the profiler running with its data.  The default filename is vprof_lite.csv in the mod directory;\n+\tan absolute path is used as given.  Sets vprof_lite_auto 0, so the game will not stop or dump the profiler on its own.\n+\n+vprof_lite_start (developmentonly defensive)\n+\tvprof_lite_start [clear=1]\n+\tStart the vprof lite profiler, clearing any data it holds.  clear=0 keeps the data and continues adding to it.\n+\tSets vprof_lite_auto 0, so the game will not stop or dump the profiler on its own.\n+\n+vprof_lite_stop (developmentonly defensive)\n+\tvprof_lite_stop [clear=1]\n+\tStop the vprof lite profiler and clear its data.  clear=0 keeps the data, for engine_frametime_print_report or vprof_lite_dump.\n+\tSets vprof_lite_auto 0, so the game will not start the profiler on its own.\n+\n vprof_loadhitstore_scale (developmentonly hidden)\n \tScale used when displaying load-hit-stores (0 = use default)\n "
        },
        {
          "filename": "DumpSource2/convars.txt",
          "status": "modified",
          "additions": 80,
          "deletions": 23,
          "changes": 103,
          "patch": "@@ -982,8 +982,8 @@ cl_clock_recvmargin_window 4 (developmentonly)\n cl_clockdbg false (developmentonly defensive)\n \t<no description>\n \n-cl_clockdrift_max_ticks 3 (min: 0, hidden release)\n-\tMaximum number of ticks the clock is allowed to drift before the client snaps its clock to the server's.\n+cl_clockdrift_max_secs 0.125 (min: 0, hidden release)\n+\tMaximum duration the client clock is allowed to drift from server snapshots, before the client snaps its clock to the latest server snapshot received\n \n cl_clutch_mode false (clientdll release)\n \tSilence voice and other distracting sounds until the end of round or next death.\n@@ -1654,6 +1654,9 @@ cl_obs_interp_speed 1 (min: 0.25, max: 2.5, clientdll archive)\n cl_observed_bot_crosshair 2 (clientdll archive release)\n \tCrosshair shown when observing a bot. 0 = show your crosshair, 1 = show your crosshair only when the bot can be taken over (otherwise default), 2 = always show the default crosshair\n \n+cl_packetentities_merge_before_decode true (developmentonly defensive)\n+\tWhen an entity is decoded from a baseline plus a wire delta, merge the two and decode once (true), or decode the baseline and then the delta as two passes (false, the old behaviour, which can invoke change callbacks with baseline values for an entity that already exists).\n+\n cl_paintkit_override \"\" (clientdll cheat release)\n \t<no description>\n \n@@ -4675,7 +4678,7 @@ lservercfgfile \"listenserver.cfg\" (developmentonly gamedll defensive)\n lua_assert_on_error false (developmentonly defensive)\n \t<no description>\n \n-lua_is_currently_executing false (hidden dontrecord release flag_36)\n+lua_is_currently_executing false (hidden dontrecord release vconsole_no_change_notify)\n \t<no description>\n \n lua_shipping_assert_on_error false (developmentonly defensive)\n@@ -6573,17 +6576,47 @@ net_filelogging false (developmentonly)\n net_fs_showindirections false (developmentonly)\n \t<no description>\n \n-net_limit_sv_recv_max_message_size_kb 32 (release)\n-\tServer will reject message larger than N kb\n+net_gather_child_fields_only false (release)\n+\tGatherSendProxyResults only walks struct and array fields, skipping scalar fields.\n+\n+net_limit_sv_listen_max_message_size_kb 3 (release)\n+\tServer: max SteamNetworkingSockets message size in kb accepted from a connection that does not yet have a netchan\n+\n+net_limit_sv_listen_recvbuffer_kb 16 (release)\n+\tServer: SteamNetworkingSockets will not buffer more than N kb from a connection that does not yet have a netchan\n+\n+net_limit_sv_listen_recvbuffer_msg 4 (release)\n+\tServer: SteamNetworkingSockets will not buffer more than N messages from a connection that does not yet have a netchan\n+\n+net_limit_sv_message_process_time_ms_drop_burst 300 (release)\n+\tDrop a client if processing their messages consumes more than N ms of CPU time in a burst (token bucket capacity)\n+\n+net_limit_sv_message_process_time_ms_drop_rate_per_sec 500 (release)\n+\tDrop a client if processing their messages consumes more than N ms of CPU time *PER SECOND*, sustained (token bucket fill rate)\n+\n+net_limit_sv_message_process_time_ms_warn_burst 50 (release)\n+\tWarn if processing messages from a client consumes more than N ms of CPU time in a burst (token bucket capacity)\n+\n+net_limit_sv_message_process_time_ms_warn_rate_per_sec 150 (release)\n+\tWarn if processing messages from a client consumes more than N ms of CPU time *PER SECOND*, sustained (token bucket fill rate)\n+\n+net_limit_sv_recv_chan_buffer_messages 1000 (release)\n+\tMax number of source engine messages that can be queued in a netchan receive buffer for an ordinary connection from a client.\n+\n+net_limit_sv_recv_chan_msgs_per_frame 500 (release)\n+\tMax number of source engine messages an ordinary client connection may put in a single network frame.  Exceeding this disconnects the client.\n+\n+net_limit_sv_recv_max_frame_size_kb 64 (release)\n+\tServer will reject uncompressed Source engine frame larger than N kb.  Also sets limit on SteamNetworkingSockets message size\n \n net_limit_sv_recv_segments_per_packet 50 (release)\n-\tServer will reject packets with more than N segments\n+\tServer: SteamNetworkingSockets will reject packets with more than N message segments\n \n net_limit_sv_recvbuffer_kb 128 (release)\n-\tServer will not buffer more than N kb from connected clients\n+\tServer: SteamNetworkingSockets will not buffer more than N kb from connected clients\n \n net_limit_sv_recvbuffer_msg 100 (release)\n-\tServer will not buffer more than N messages from connected clients\n+\tServer: SteamNetworkingSockets will not buffer more than N messages from connected clients\n \n net_log_processing false (developmentonly defensive)\n \tLog network processing\n@@ -7620,6 +7653,36 @@ r_csgo_enable_volume_fog false (developmentonly clientdll)\n r_csgo_firstpersonlegs_nearz_offset 0.1 (developmentonly clientdll)\n \t<no description>\n \n+r_csgo_frost_dry_time 20 (developmentonly clientdll)\n+\tSeconds for the melted frost to dry\n+\n+r_csgo_frost_force -1 (developmentonly clientdll)\n+\tFrost on players, weapons and chickens: -1 = the map's (info_map_parameters frostenabled), 0 = off, 1 = on (outdoors; melts indoors)\n+\n+r_csgo_frost_grow_time 10 (developmentonly clientdll)\n+\tSeconds outdoors for frost to grow to full\n+\n+r_csgo_frost_heat_barrel_position 0.33 (developmentonly clientdll)\n+\tFrost: where the barrel heat sits, from the shell eject (0) to the muzzle (1)\n+\n+r_csgo_frost_heat_cool_time 20 (developmentonly clientdll)\n+\tFrost: seconds for a hot barrel to cool down\n+\n+r_csgo_frost_heat_light_delay 1 (developmentonly clientdll)\n+\tFrost: seconds after a molotov is lit before its rag starts to heat (the flame shows a moment after)\n+\n+r_csgo_frost_heat_light_time 10 (developmentonly clientdll)\n+\tFrost: seconds for a lit molotov's rag to reach full heat\n+\n+r_csgo_frost_heat_per_shot 0.05 (developmentonly clientdll)\n+\tFrost: barrel heat per shot (1 = hot enough to clear the whole barrel)\n+\n+r_csgo_frost_indoor_distance 128 (developmentonly clientdll)\n+\tFrost: distance under cover (no sky) over which the cold fades out (indoors)\n+\n+r_csgo_frost_melt_time 10 (developmentonly clientdll)\n+\tSeconds indoors for full frost to melt\n+\n r_csgo_fsr_enable_mip_bias true (developmentonly clientdll defensive)\n \tApply negative mip bias when rendering with FSR.\n \n@@ -7743,6 +7806,9 @@ r_csgo_opaquerefract_viewmodel_quality 1 (developmentonly clientdll)\n r_csgo_outline_glow_scaledenom 1 (developmentonly clientdll cheat)\n \t<no description>\n \n+r_csgo_parallax 1 (developmentonly clientdll defensive)\n+\tParallax occlusion mapping (Advanced Video setting): 0 = off, 1 = on\n+\n r_csgo_player_occlusion_query true (developmentonly clientdll)\n \t<no description>\n \n@@ -11454,18 +11520,6 @@ sv_mover_pogofrequency 10 (developmentonly gamedll clientdll notify replicated d\n sv_mute_players_with_social_penalties true (developmentonly gamedll defensive)\n \t<no description>\n \n-sv_net_client_message_process_time_ms_drop_burst 500 (release)\n-\tDrop a client if processing their messages consumes more than N ms of CPU time in a burst (token bucket capacity)\n-\n-sv_net_client_message_process_time_ms_drop_rate 200 (release)\n-\tDrop a client if processing their messages consumes more than N ms of CPU time per second, sustained (token bucket fill rate)\n-\n-sv_net_client_message_process_time_ms_warn_burst 50 (release)\n-\tWarn if processing messages from a client consumes more than N ms of CPU time in a burst (token bucket capacity)\n-\n-sv_net_client_message_process_time_ms_warn_rate 5 (release)\n-\tWarn if processing messages from a client consumes more than N ms of CPU time per second, sustained (token bucket fill rate)\n-\n sv_netprof_delta_sharing_temp false (release)\n \tTemp counter for measuring performance impact of some network changes. To be removed by the end of Sept 2026\n \n@@ -11652,9 +11706,6 @@ sv_rcon_minfailuretime 30 (min: 1, developmentonly defensive)\n sv_record_item_time_data false (gamedll release)\n \tTurn on recording of per player item time data into the server log.\n \n-sv_recvbuf_messages 1024 (developmentonly defensive)\n-\tMax number of messages that can be queued in a netchan receive buffer for an ordinary connection from a client.\n-\n sv_regeneration_force_on false (gamedll cheat)\n \tCheat to test regenerative health systems\n \n@@ -12687,6 +12738,9 @@ videocfg_fsr_detail 0 (developmentonly clientdll defensive)\n videocfg_hdr_detail -1 (developmentonly clientdll defensive)\n \t<no description>\n \n+videocfg_parallax_detail 0 (developmentonly clientdll defensive)\n+\t<no description>\n+\n videocfg_particle_detail 1 (developmentonly clientdll defensive)\n \t<no description>\n \n@@ -12900,6 +12954,9 @@ vprof_counters 0 (developmentonly defensive)\n vprof_counters_show_minmax false (developmentonly defensive)\n \t<no description>\n \n+vprof_lite_auto true (release)\n+\tLet demo playback and the game rules start, dump and stop the vprof lite profiler on their own.  The vprof_lite_start, vprof_lite_stop and vprof_lite_dump commands set this to 0 so that a script can drive the profiler itself.\n+\n vprof_scope_entity_clientthink false (developmentonly clientdll hidden defensive)\n \tDoes nothing whatsoever.\n "
        },
        {
          "filename": "DumpSource2/entities/client.fgd",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -1815,6 +1815,7 @@\n \tenvpuddlerippledirection(float) // FIELD_FLOAT32 m_flEnvPuddleRippleDirection\n \tenvwetnesscoverage(float) // FIELD_FLOAT32 m_flEnvWetnessCoverage\n \tenvwetnessdryingamount(float) // FIELD_FLOAT32 m_flEnvWetnessDryingAmount\n+\tfrostenabled(boolean) // FIELD_BOOLEAN m_bFrostEnabled\n \tinput FireWinCondition(integer) // PVAL_INT param\n ]\n "
        },
        {
          "filename": "DumpSource2/entities/server.fgd",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -3108,6 +3108,7 @@\n \tenvpuddlerippledirection(float) // FIELD_FLOAT32 m_flEnvPuddleRippleDirection\n \tenvwetnesscoverage(float) // FIELD_FLOAT32 m_flEnvWetnessCoverage\n \tenvwetnessdryingamount(float) // FIELD_FLOAT32 m_flEnvWetnessDryingAmount\n+\tfrostenabled(boolean) // FIELD_BOOLEAN m_bFrostEnabled\n \tinput FireWinCondition(integer) // PVAL_INT param\n ]\n "
        },
        {
          "filename": "DumpSource2/module_metadata/client/resource_manifests.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -278,7 +278,7 @@ GameStartup \"RenderingPipelineCsgoManifest\" // src/game/client/cstrike15/renderi\n \tmaterials/dev/water_droplets.vtex\n \tmaterials/dev/water_waves.vtex\n \tmaterials/dev/water_flowing.vtex\n-\tmaterials/dev/snow_sparkle.vtex\n+\tmaterials/dev/frost.vtex\n \tmaterials/dev/rain_ripples.vtex\n \tmaterials/dev/custom_cubemap_001.vtex\n \tmaterials/dev/overlay_smoke.vmat"
        },
        {
          "filename": "DumpSource2/network/client.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 3,
          "changes": 5,
          "patch": "@@ -58,7 +58,6 @@ CBaseFilter\n CBasePlayerController\n \tinclude by name: m_pEntity, m_flSimulationTime, m_flCreateTime, m_iTeamNum, m_nNextThinkTick, m_fFlags\n \tinclude by user group: LocalPlayerExclusive, LocalPlayerAndPredictorsExclusive\n-\toverrides: m_nNextThinkTick userGroup LocalPlayerAndPredictorsExclusive\n \tuser group proxies: LocalPlayerExclusive, LocalTeamExclusive, LocalPlayerAndObserversExclusive, LocalPlayerAndPredictorsExclusive\n \treplay compat fields: m_skeletonInstance\\.m_vecOrigin\\..*| OnReplayCompat_GameSceneNodeOriginAngles\n \tuint32 m_nTickBase (priority: 1; user groups: LocalPlayerAndPredictorsExclusive)\n@@ -994,7 +993,7 @@ C_BasePlayerPawn\n \texclude by name: m_pWeaponServices, m_pItemServices, m_pAutoaimServices, m_pObserverServices, m_pWaterServices, m_pUseServices, m_pFlashlightServices, m_pMovementServices\n \tinclude by user group: Player, Water, LocalPlayerExclusive, LocalPlayerAndPredictorsExclusive\n \texclude by user group: FogController\n-\toverrides: CNetworkOriginCellCoordQuantizedVector::m_vecX bitCount 32, CNetworkOriginCellCoordQuantizedVector::m_vecY bitCount 32, CNetworkOriginCellCoordQuantizedVector::m_vecZ bitCount 32, m_lifeState changeCallback OnLifeStateChanged, m_nNextThinkTick userGroup LocalPlayerAndPredictorsExclusive\n+\toverrides: CNetworkOriginCellCoordQuantizedVector::m_vecX bitCount 32, CNetworkOriginCellCoordQuantizedVector::m_vecY bitCount 32, CNetworkOriginCellCoordQuantizedVector::m_vecZ bitCount 32, m_lifeState changeCallback OnLifeStateChanged\n \tuser group proxies: LocalPlayerExclusive\n \tCPlayer_WeaponServices * m_pWeaponServices\n \tCPlayer_ItemServices * m_pItemServices\n@@ -1829,7 +1828,7 @@ C_Hostage\n \tCHandle< CBaseEntity> m_leader (sent as: ehandle)\n \tCountdownTimer m_reuseTimer\n \tVector m_vel\n-\tbool m_isRescued (change callbacks: RecvProxy_Rescued)\n+\tbool m_isRescued\n \tbool m_jumpedThisFrame (change callbacks: RecvProxy_Jumped)\n \tint m_nHostageState (change callbacks: OnHostageStateChanged)\n \tbool m_bHandsHaveBeenCut"
        },
        {
          "filename": "DumpSource2/network/server.txt",
          "status": "modified",
          "additions": 0,
          "deletions": 1,
          "changes": 1,
          "patch": "@@ -273,7 +273,6 @@ CBasePlatTrain\n CBasePlayerController\n \tinclude by name: m_pEntity, m_flSimulationTime, m_flCreateTime, m_iTeamNum, m_nNextThinkTick, m_fFlags\n \tinclude by user group: LocalPlayerExclusive, LocalPlayerAndPredictorsExclusive\n-\toverrides: m_nNextThinkTick userGroup LocalPlayerAndPredictorsExclusive\n \tuser group proxies: LocalPlayerExclusive, LocalTeamExclusive, LocalPlayerAndObserversExclusive, LocalPlayerAndPredictorsExclusive\n \tnetwork class\n \tuint32 m_nTickBase (priority: 1; user groups: LocalPlayerAndPredictorsExclusive)"
        },
        {
          "filename": "DumpSource2/schemas/client/CMapInfo.h",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -15,4 +15,5 @@ class CMapInfo : public C_PointEntity\n \tfloat32 m_flEnvPuddleRippleDirection;\n \tfloat32 m_flEnvWetnessCoverage;\n \tfloat32 m_flEnvWetnessDryingAmount;\n+\tbool m_bFrostEnabled;\n };"
        },
        {
          "filename": "DumpSource2/schemas/client/CNmAimCSNode__CDefinition.h",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -12,4 +12,5 @@ class CNmAimCSNode::CDefinition : public CNmPassthroughNode::CDefinition\n \tfloat32 m_flHandIKBlendInTimeSeconds;\n \tfloat32 m_flActionBlendTimeSeconds;\n \tfloat32 m_flPlantingBlendTimeSeconds;\n+\tfloat32 m_flTransitionBlendTimeSeconds;\n };"
        },
        {
          "filename": "DumpSource2/schemas/client/C_Hostage.h",
          "status": "modified",
          "additions": 0,
          "deletions": 1,
          "changes": 1,
          "patch": "@@ -14,7 +14,6 @@ class C_Hostage : public C_BaseCombatCharacter\n \tGameTime_t m_flRescueStartTime;\n \tGameTime_t m_flGrabSuccessTime;\n \tGameTime_t m_flDropStartTime;\n-\tGameTime_t m_flDeadOrRescuedTime;\n \tCountdownTimer m_blinkTimer;\n \tVectorWS m_lookAt;\n \tCountdownTimer m_lookAroundTimer;"
        },
        {
          "filename": "DumpSource2/schemas/client/EventClientPollNetworking_t.h",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -2,4 +2,5 @@\n class EventClientPollNetworking_t\n {\n \tint32 m_nTickCount;\n+\tint32 m_nTotalTicks;\n };"
        },
        {
          "filename": "DumpSource2/schemas/modtools/CNmGraphDocAimCSNode.h",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -4,4 +4,5 @@ class CNmGraphDocAimCSNode : public CNmGraphDocFlowNode\n \tfloat32 m_flActionBlendTimeSeconds; // = 0.4\n \tfloat32 m_flHandIKBlendInTimeSeconds; // = 0.3\n \tfloat32 m_flPlantingBlendTimeSeconds; // = 0.2\n+\tfloat32 m_flTransitionBlendTimeSeconds; // = 0.3\n };"
        },
        {
          "filename": "DumpSource2/schemas/server/CMapInfo.h",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -15,4 +15,5 @@ class CMapInfo : public CPointEntity\n \tfloat32 m_flEnvPuddleRippleDirection;\n \tfloat32 m_flEnvWetnessCoverage;\n \tfloat32 m_flEnvWetnessDryingAmount;\n+\tbool m_bFrostEnabled;\n };"
        },
        {
          "filename": "Protobufs/netmessages.proto",
          "status": "modified",
          "additions": 2,
          "deletions": 1,
          "changes": 3,
          "patch": "@@ -418,9 +418,10 @@ message CSVCMsg_CreateStringTable {\n \toptional int32 user_data_size_bits = 5;\n \toptional int32 flags = 6;\n \toptional bytes string_data = 7;\n-\toptional int32 uncompressed_size = 8;\n \toptional bool data_compressed = 9;\n \toptional bool using_varint_bitcounts = 10;\n+\n+\treserved 8;\n }\n \n message CSVCMsg_UpdateStringTable {"
        },
        {
          "filename": "Protobufs/source2_steam_stats.proto",
          "status": "modified",
          "additions": 4,
          "deletions": 0,
          "changes": 4,
          "patch": "@@ -24,6 +24,9 @@ message CMsgSource2SystemSpecs {\n \toptional string cpu_brand = 2;\n \toptional uint32 cpu_model = 3;\n \toptional uint32 cpu_num_physical = 4;\n+\toptional uint32 cpu_num_logical = 5;\n+\toptional uint32 cpu_num_performance = 6;\n+\toptional uint32 cpu_num_efficiency = 7;\n \toptional uint32 ram_physical_total_mb = 21;\n \toptional string gpu_rendersystem_dll_name = 41;\n \toptional uint32 gpu_vendor_id = 42;\n@@ -34,6 +37,7 @@ message CMsgSource2SystemSpecs {\n \toptional uint32 gpu_texture_memory_size_mb = 47;\n \toptional uint32 backbuffer_width = 51;\n \toptional uint32 backbuffer_height = 52;\n+\toptional uint32 thread_pool_workers = 61;\n }\n \n message CMsgSource2VProfLiteReportItem {"
        },
        {
          "filename": "game/bin/built_from_cl.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -1 +1 @@\n-11206685\n+11228763"
        },
        {
          "filename": "game/bin/win64/animationsystem_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -2586,6 +2586,7 @@ Cant find specified effector bone ID ('%s') for two bone IK\n Ceiling - round float up to nearest integer)\n Ceiling Float\n Chain Lookat\n+Chain Lookat Task - Trying to perform a chain lookat on top of an additive pose, this is not allowed!\n Check Requirement\n Check Type\n Check if any element of 'a' compares equal to 'element'."
        },
        {
          "filename": "game/bin/win64/csgocfg.exe_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -167,7 +167,7 @@\n .CRT$XIAC\n .fgd\n /e,/select,\"\n-15:32:27\n+09:24:20\n 1AcceptIfItemPicked()\n 1OnAccept()\n 1OnAddonDoubleClicked()"
        },
        {
          "filename": "game/bin/win64/engine2_strings.txt",
          "status": "modified",
          "additions": 71,
          "deletions": 121,
          "changes": 192,
          "patch": "@@ -624,7 +624,6 @@ $tI(knN\n %s ProcessBaselineAck: null frame snapshot (%d)\\n\n %s Received SpawnGroup_LoadCompleted on client '%s'\\n\n %s Unload\\n\n-%s [%d]\n %s [%s from %d to %d - %d entities]\n %s [%s]\n %s allocation count overflow\n@@ -799,6 +798,7 @@ $tI(knN\n ' in trial: \"\n '%s' already awaiting full update\\n\n '%s' is malformed\\n\n+'%s' is not a boolean; use %s=0 or %s=1\\n\n (%d,%d)\n (*MARK) must have an argument\n (*VERB) not recognized\n@@ -864,6 +864,7 @@ $tI(knN\n , clipping_threshold: \n , compression_gain_db: \n , crest_factor_margin: \n+, data cleared\n , enable_digital_adaptive: \n , enable_limiter: \n , enforce_high_pass_filtering: \n@@ -873,6 +874,8 @@ $tI(knN\n , ignored.\n , initial_gain_db: \n , initial_level: \n+, keeping data\n+, keeping existing data\n , level: \n , localization %s\n , max_gain_change_db_per_second: \n@@ -1693,7 +1696,6 @@ $tI(knN\n .?AVCHLTVFrame@@\n .?AVCHLTVServer@@\n .?AVCHLTVServerAsync@@\n-.?AVCHiddenFieldValuePrinter@@\n .?AVCHostStateMgr@@\n .?AVCHostSubscribeForProfileEvents@@\n .?AVCHttpCallback@CHLTVBroadcast@@\n@@ -1715,7 +1717,6 @@ $tI(knN\n .?AVCLambdaJob@?1???$QueueJobWithFlags@V<lambda_1>@?BK@??ServerBeginSimulate@CNetworkGameServerBase@@UEAAXAEBUEventServerBeginSimulate_t@@@Z@@IThreadPool@@QEAA?AV?$CSmartPtr@VCThreadedJob@@VCRefCountAccessor@@@@PEBDW4JobPriority_t@@I$$QEAV<lambda_1>@?BK@??ServerBeginSimulate@CNetworkGameServerBase@@UEAAXAEBUEventServerBeginSimulate_t@@@Z@@Z@\n .?AVCLambdaJob@?1???$QueueJobWithFlags@V<lambda_1>@?L@??LaunchAsyncBeginRenderingViewsJob@CRenderService@@UEAAXAEBUEventClientPreOutput_t@@_N@Z@@IThreadPool@@QEAA?AV?$CSmartPtr@VCThreadedJob@@VCRefCountAccessor@@@@PEBDW4JobPriority_t@@I$$QEAV<lambda_1>@?L@??LaunchAsyncBeginRenderingViewsJob@CRenderService@@UEAAXAEBUEventClientPreOutput_t@@_N@Z@@Z@\n .?AVCLambdaJob@?1???$QueueJobWithFlags@V<lambda_2>@?BA@??LaunchAsyncBeginRenderingViewsJob@CRenderService@@UEAAXAEBUEventClientPreOutput_t@@_N@Z@@IThreadPool@@QEAA?AV?$CSmartPtr@VCThreadedJob@@VCRefCountAccessor@@@@PEBDW4JobPriority_t@@I$$QEAV<lambda_2>@?BA@??LaunchAsyncBeginRenderingViewsJob@CRenderService@@UEAAXAEBUEventClientPreOutput_t@@_N@Z@@Z@\n-.?AVCLambdaJob@?1???$QueueJobWithFlags@V<lambda_3>@?BJ@??ProcessReadPacketEntitiesWorkItems@CNetworkGameClient@@AEAAXW4RPEStatType_t@@AEAVCEntityReadInfo@@@Z@@IThreadPool@@QEAA?AV?$CSmartPtr@VCThreadedJob@@VCRefCountAccessor@@@@PEBDW4JobPriority_t@@I$$QEAV<lambda_3>@?BJ@??ProcessReadPacketEntitiesWorkItems@CNetworkGameClient@@AEAAXW4RPEStatType_t@@AEAVCEntityReadInfo@@@Z@@Z@\n .?AVCLoadAutoCompletionFunctor@@\n .?AVCLoadSpawnGroupsPrerequisite@@\n .?AVCLoadStartupResourcePrerequisite@@\n@@ -1836,71 +1837,6 @@ $tI(knN\n .?AVCPipedCommandLogRedirector@@\n .?AVCPlayDemoClientPrerequisite@@\n .?AVCPostConnectCallback@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$03VCNETMsg_Tick@@$0BA@$0A@$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$04VCNETMsg_StringCmd@@$08$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$05VCNETMsg_SetConVar@@$08$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$06VCNETMsg_SignonState@@$09$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$07VCNETMsg_SpawnGroup_Load@@$0P@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$08VCNETMsg_SpawnGroup_ManifestUpdate@@$0P@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0?0VC2S_CONNECTION_Message@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0?0VC2S_CONNECT_Message@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0?0VNetMessageConnectionClosed@@$0L@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0?0VNetMessageConnectionCrashed@@$0L@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0?0VNetMessageSplitscreenUserChanged@@$0L@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BA@VCBidirMsg_RebroadcastGameEvent@@$04$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BB@VCBidirMsg_RebroadcastSource@@$04$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BD@VCBidirMsg_PredictionEvent@@$0A@$0A@$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BE@VCCLCMsg_ClientInfo@@$09$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BF@VCCLCMsg_Move@@$07$0A@$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BG@VCCLCMsg_VoiceData@@$05$0A@$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BH@VCCLCMsg_BaselineAck@@$0BA@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJ@VCCLCMsg_RespondCvarValue@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BL@VCCLCMsg_LoadingProgress@@$09$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BM@VCCLCMsg_SplitPlayerConnect@@$09$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BO@VCCLCMsg_SplitPlayerDisconnect@@$09$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BP@VCCLCMsg_ServerStatus@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0CB@VCCLCMsg_RequestPause@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0CC@V?$CBaseCmdKeyValues@VCCLCMsg_CmdKeyValues@@@@$08$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0CD@VCCLCMsg_RconServerDetails@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0CE@VCCLCMsg_HltvReplay@@$0BB@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0CF@VCCLCMsg_Diagnostic@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0CI@VCSVCMsg_ServerInfo@@$09$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0CJ@VCSVCMsg_FlattenedSerializerWrapper@@$09$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0CK@VCSVCMsg_ClassInfo@@$09$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0CL@VCSVCMsg_SetPause@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0CM@VCSVCMsg_CreateStringTable@@$09$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0CN@VCSVCMsg_UpdateStringTable@@$06$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0CO@VCSVCMsg_VoiceInit@@$09$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0CP@VCSVCMsg_VoiceData@@$05$0A@$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DA@VCSVCMsg_Print@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DB@VCSVCMsg_Sounds@@$03$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DC@VCSVCMsg_SetView@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DD@VCSVCMsg_ClearAllStringTables@@$09$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DE@V?$CBaseCmdKeyValues@VCSVCMsg_CmdKeyValues@@@@$08$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DG@VCSVCMsg_SplitScreen@@$09$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DH@VCSVCMsg_PacketEntities@@$0?0$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DI@VCSVCMsg_Prefetch@@$03$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DJ@VCSVCMsg_Menu@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DK@VCSVCMsg_GetCvarValue@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DL@VCSVCMsg_StopSound@@$03$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DM@VCSVCMsg_PeerList@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DN@VCSVCMsg_PacketReliable@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DO@VCSVCMsg_HLTVStatus@@$0A@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0DP@VCSVCMsg_ServerSteamID@@$0A@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0EAAAAAAA@VNetMessagePacketStart@@$0L@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0EAAAAAAB@VNetMessagePacketEnd@@$0L@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0EG@VCSVCMsg_FullFrameSplit@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0EH@VCSVCMsg_RconServerDetails@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0EI@VCSVCMsg_UserMessage@@$0N@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0EK@VCSVCMsg_HltvReplay@@$0BB@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0EL@VCCLCMsg_HltvFixupOperatorTick@@$0BB@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0EM@VCSVCMsg_UserCommands@@$0BB@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0EN@VCSVCMsg_NextMsgPredicted@@$0BB@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0EO@VCSVCMsg_EncryptedData@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0L@VCNETMsg_SpawnGroup_SetCreationTick@@$0P@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0M@VCNETMsg_SpawnGroup_Unload@@$0P@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0N@VCNETMsg_SpawnGroup_LoadCompleted@@$0P@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0P@VCNETMsg_DebugOverlay@@$0BA@$00$0A@@@\n .?AVCPulseCell_Base@@\n .?AVCPulseCell_BaseFlow@@\n .?AVCPulseCell_BaseRequirement@@\n@@ -2199,7 +2135,6 @@ $tI(knN\n .?AVIPrerequisiteRegistry@@\n .?AVIPrintChangedConvarsWriter@@\n .?AVIProceduralLayerRenderer@@\n-.?AVIProtobufBinding@@\n .?AVIPulseCellDebugInfo@@\n .?AVIPulseInstanceLoadAPI@@\n .?AVIPulseInstanceSaveAPI@@\n@@ -2452,6 +2387,7 @@ $tI(knN\n 00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899\n 0123456789abcdef\n 0123456789abcdefghijklmnopqrstuvwxyz\n+09:25:33\n 0: run all send jobs on main thread; 1: send jobs run asynchronously (except on dedicated server); 2: send jobs asynchronously; 3: send jobs run in parallel but block to not overlap the next tick; 4: main server clients' send jobs run in parallel, then HLTV server jobs; this approximately matches pre-async profile for a single HLTV server configuration\n 0=Off, 1=Surface Wireframe, 2=Transparent Wireframe\n 0=Off, 1=Visualize trace from camera, 2=Visualize occlusion, 3=Visualize far field trace from camera\n@@ -2465,7 +2401,6 @@ $tI(knN\n 1#SNAN\n 1.2.11\n 127.0.0.1\n-15:35:28\n 1:1: Tokens : ( T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | TOK_COLON | OPEN_BRACE | CLOSE_BRACE | OPEN_PAREN | CLOSE_PAREN | OPEN_BRACKET | CLOSE_BRACKET | SEMICOLON | OP_EQUAL | COMMA | DOUBLE_AND | NEGATIVE_TOK | DOUBLE_OR | LITERAL_TRUE | LITERAL_FALSE | POS_INTLITERAL | POS_FLOATLITERAL | SCOPE_QUALIFIER | ID | DOUBLE_QUOTED_STRING | SINGLE_QUOTED_STRING | SINGLE_LINE_COMMENT | ML_COMMENT | WS | UNRECOGNIZED );\n 200000\n 3$EE\\f\n@@ -2695,7 +2630,6 @@ $tI(knN\n ?GetType@netadr_t@@QEBA?AW4netadrtype_t@@XZ\n ?GetUint64@KeyValues@@QEBA_KPEBD_K@Z\n ?HandlerQueueHeartBeat@MiniDumpStandardData_t@@QEBAXXZ\n-?HaveWriteLock_BlockReadsNow@CThreadRWLock_FastRead@@QEAAX_N@Z\n ?InitEmpty@CStrAutoEncode@@AEAAXXZ\n ?Insert@CBufferString@@QEAAPEBDHPEBDH_N@Z\n ?InternalPop@CTSListBase@@AEAAPEAUTSLNodeBase_t@@XZ\n@@ -2758,7 +2692,6 @@ $tI(knN\n ?ReadAsBinary@KeyValues@@QEAA_NAEAVCUtlBuffer@@@Z\n ?RecursiveSaveToFile@KeyValues@@QEBAXAEAVCUtlBuffer@@H_N1@Z\n ?RegisterEventListener_Base@CEventDispatcher_Base@@IEAAXAEBVCUtlAbstractDelegate@@I_NAEAV?$CUtlVector@UEventListenerInfo_t@CEventDispatcher_Base@@HV?$CUtlVectorMemory_Growable@UEventListenerInfo_t@CEventDispatcher_Base@@H$0A@@@@@HPEBD@Z\n-?Relinquish@CBufferString@@QEAAPEADW4EAllocationOption_t@1@@Z\n ?Remove@CUtlString@@QEBA?AV1@PEBD_N@Z\n ?RemoveAll@CUtlSymbolTable@@QEAAXXZ\n ?RemoveAt@CBufferString@@QEAAPEBDHH@Z\n@@ -3218,10 +3151,9 @@ Bulgarian\n By default, player must ack delta ticks in order. How to enforce it: 2 = kick all clients, 1 = kick only TV clients, 0 = do not kick.\n By default, player must maintain a reliable connection to Steam servers. When player Steam session drops, enforce it: 2 = instantly kick, 1 = kick at next spawn, 0 = do not kick.\n Bypass secure challenge on TV port\n-C2S_CONNECTION_Message_t::GetProtobufBinding()->WriteToBuffer failed\\n\n+C2S_CONNECTION_Message_t::WriteSizeAndBodyToBuffer failed\\n\n C:\\buildworker\\csgo_rel_win64\\build\\_build_\\engine2\\_vpc_engine2\\default\\win64\\_msvc_\\Retail\\engine2.pdb\n C:\\buildworker\\csgo_rel_win64\\build\\src\\bitmap\\floatbitmap.cpp\n-C:\\buildworker\\csgo_rel_win64\\build\\src\\common\\protobuf_helpers.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\basespawngroup.h\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\cl_demo.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\cl_ents_parse.cpp\n@@ -3243,22 +3175,22 @@ C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\loopmoderemoteconnect.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\looptypeclientserver.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkclientservice.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameclient.cpp\n-C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameclient.cpp:2666\n-C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameclient.cpp:3674\n-C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameclient.cpp:4458\n-C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameclient.cpp:4754\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameclient.cpp:2681\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameclient.cpp:3706\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameclient.cpp:4550\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameclient.cpp:4846\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameclientbase.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameclientbase.cpp:2819\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameclientbase.cpp:4519\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameclientbase.cpp:4561\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameserver.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameserver.cpp:1053\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameserverbase.cpp\n-C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameserverbase.cpp:3085\n-C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameserverbase.cpp:5769\n-C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameserverbase.cpp:5835\n-C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameserverbase.cpp:5924\n-C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameserverbase.cpp:5930\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameserverbase.cpp:3086\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameserverbase.cpp:5764\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameserverbase.cpp:5830\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameserverbase.cpp:5919\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkgameserverbase.cpp:5925\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkp2pservice.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkserverservice.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\engine2\\networkstringtable.cpp\n@@ -3547,7 +3479,6 @@ CHLTVClientState::ProcessClassInfo: expecting to re-create serializers from serv\n CHLTVClientState::SendPacket\n CHLTVDemoRecorder::CullSpawnGroups culling message %s, spawngroup %s was never created\\n\n CHLTVDemoRecorder::CullSpawnGroups culling message at %d unable to unserialize.  %s\\n\n-CHLTVDemoRecorder::CullSpawnGroups culling message at unknown handle\\n\n CHLTVDemoRecorder::ParseMessage: Failed to serialize message\\n\n CHLTVDemoRecorder::WriteFrame\n CHLTVDemoRecorder::WriteFrame: Failed to serialize CNETMsg_Tick_t\\n\n@@ -3717,6 +3648,7 @@ CNetworkGameClient::InternalProcessPacketEntities\n CNetworkGameClient::OnPreserveEntity\n CNetworkGameClient::ProcessClassInfo: create on client %s\\n\n CNetworkGameClient::ProcessClassInfo: creating client serializers from local server serializers (crc %u, server api %s)\\n\n+CNetworkGameClient::ProcessClassInfo: failed to parse cached CSVCMsg_FlattenedSerializer_t: %s\\n\n CNetworkGameClient::ProcessClassInfo: parsing serializers from cache due to matching crc %u\\n\n CNetworkGameClient::ProcessTick( -1 ), ignoring during demo playback\\n\n CNetworkGameClient::SendMoveInternal: Send delayed due to !CanPacket, tick=%d\\n\n@@ -3745,8 +3677,8 @@ CNetworkGameServerBase::ConnectClient( name='%s', remote='%s' )\\n\n CNetworkGameServerBase::ReplyConnection\n CNetworkGameServerBase::SetServerState (%s -> %s)\\n\n CNetworkP2PService\n-CNetworkP2PService::InternalBroadcastP2PNetMessage: SerializeAbstract for message %s failed!\\n\n-CNetworkP2PService::InternalBroadcastP2PNetMessage: SerializeAbstract for message %s overflowed!\\n\n+CNetworkP2PService::InternalBroadcastP2PNetMessage: Serialize for message %s failed!\\n\n+CNetworkP2PService::InternalBroadcastP2PNetMessage: Serialize for message %s overflowed!\\n\n CNetworkP2PService::UpdatePeerConnectionStatus\n CNetworkSerializerClassInfo::Get( %s ) failed!\\n\n CNetworkServerCreatePrerequisites\n@@ -3768,7 +3700,8 @@ CNetworkServerSpawnGroup_WaitForChildSpawnGroups\n CNetworkServerSpawnGroup_WaitForClients\n CNetworkServerSpawnGroup_WaitForOwnerSpawnGroupPrerequisite\n CNetworkStringTable::AddString:  client added string which server didn't put into table (consider SetAllowClientSideAddString?): %s %s\\n\n-CNetworkStringTableClient::ParseUpdate: message too large (%d bytes > %d).\n+CNetworkStringTableClient::ParseUpdate: bogus user data size (%d bytes, max %d).\n+CNetworkStringTableClient::ParseUpdate: failed to decompress user data for table %s\n CNetworkStringTableContainer::CreateStringTable\n CNetworkStringTableContainer::CreateStringTable with nullptr table name!\n CNetworkStringTableContainer::DirectUpdate\n@@ -3951,8 +3884,8 @@ CUtlLeanVectorBase<struct UtlLinkedListElem_t<struct CSequentialPrerequisite::Pr\n CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<class CUtlSymbolLarge,class CEntityNameList *,class CDefLess<class CUtlSymbolLarge>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity\n CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<class INetworkClientService::CEventIDManager_RelayedClientMessage::EventID_t,class CUtlVector<struct CEventDispatcher_Base::EventListenerInfo_t,int,class CUtlVectorMemory_Growable<struct CEventDispatcher_Base::EventListenerInfo_t,int,0> >,class CDefLess<class INetworkClientService::CEventIDManager_RelayedClientMessage::EventID_t>,unsigned int>::Node_t,unsigned int>,unsigned int,class CMemAllocAllocator>::EnsureCapacity\n CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<class IPeerGroupHandler::CEventIDManager_IPeerGroupHandler::EventID_t,class CUtlVector<struct CEventDispatcher_Base::EventListenerInfo_t,int,class CUtlVectorMemory_Growable<struct CEventDispatcher_Base::EventListenerInfo_t,int,0> >,class CDefLess<class IPeerGroupHandler::CEventIDManager_IPeerGroupHandler::EventID_t>,unsigned int>::Node_t,unsigned int>,unsigned int,class CMemAllocAllocator>::EnsureCapacity\n-CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<class IProtobufBinding const *,class CUtlVector<struct CEventDispatcher_Base::EventListenerInfo_t,int,class CUtlVectorMemory_Growable<struct CEventDispatcher_Base::EventListenerInfo_t,int,0> >,class CDefLess<class IProtobufBinding const *>,unsigned int>::Node_t,unsigned int>,unsigned int,class CMemAllocAllocator>::EnsureCapacity\n CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<class SchemaMetaInfoHandle_t<class CSchemaClassInfo>,class CUtlVector<struct CEventDispatcher_Base::EventListenerInfo_t,int,class CUtlVectorMemory_Growable<struct CEventDispatcher_Base::EventListenerInfo_t,int,0> >,class CDefLess<class SchemaMetaInfoHandle_t<class CSchemaClassInfo> >,unsigned int>::Node_t,unsigned int>,unsigned int,class CMemAllocAllocator>::EnsureCapacity\n+CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<struct NetMessageHandle_t__ *,class CUtlVector<struct CEventDispatcher_Base::EventListenerInfo_t,int,class CUtlVectorMemory_Growable<struct CEventDispatcher_Base::EventListenerInfo_t,int,0> >,class CDefLess<struct NetMessageHandle_t__ *>,unsigned int>::Node_t,unsigned int>,unsigned int,class CMemAllocAllocator>::EnsureCapacity\n CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<unsigned int,class CNetworkClientSpawnGroup *,class CDefLess<unsigned int>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity\n CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<unsigned int,class CNetworkServerSpawnGroup *,class CDefLess<unsigned int>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity\n CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<unsigned int,class CPVS *,class CDefLess<unsigned int>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity\n@@ -4280,6 +4213,7 @@ CreateInterface\n CreateNewThreadPool\n CreateProcessA\n CreateSimpleThread\n+CreateStringTable @%d: failed to decompress string table data for %s\\n\n CreateStringTable @%d\\n\n CreateThread\n CreateThreadpoolWork\n@@ -4356,7 +4290,7 @@ DeclareCurrentThreadIsMainThread\n DeclareCurrentThreadIsSecondaryMainThread\n DecodeClassBaseline\n DecodeClassBaseline: NULL instance baseline table\n-DecodeDemoNetMessage Failed to parse message\\n\n+DecodeDemoNetMessage Failed to parse message %s: %s\\n\n DecodePointer\n DecreaseAverage\n DecreaseRate\n@@ -4634,6 +4568,7 @@ EnumValueOptions\n Enums must contain at least one value.\n Error\n Error - No tick marked\\n\n+Error - Not currently playing back a demo.  To start playback at a tick, use playdemo <file> start=<tick>.\\n\n Error - Not currently playing back a demo.\\n\n Error in bitbuf [%s]: buffer overrun. Debug in bitbuf_errorhandler.cpp\\n\n Error in bitbuf [%s]: out of range value. Debug in bitbuf_errorhandler.cpp\\n\n@@ -4705,7 +4640,6 @@ EventSetTime_t\n EventSimpleLoopFrameUpdate_t\n EventSimulate_t\n EventSplitScreenStateChanged_t\n-Events\n Exceeds Maximum Package Depth\n Excess render blocks detected at block \n Excessive frame time of %.2fms (due to '%s') clamped.  Acting as if the frame only took %.2fms\\n\n@@ -4866,6 +4800,7 @@ Failed to start recording movie: %s.*: %s\\n\n Failed to successfully serialize connect message\n Failed to update on remove script entity %s of type %s: script entity instance is null\\n\n Failed to write file %s, configFileType %d, nSlot %d\\n\n+Failed to write vprof lite report to %s\\n\n Failure\n False\n February\n@@ -4981,6 +4916,7 @@ Force full sendtable sending path.\n Force uncompressed update\n Force user input to this split screen player.\n ForceFixedAppIds\n+ForceUseBuildVersion\n Forced by cvar\\n\n Forcing engine to render for the next %d frames\\n\n FormatMessageA\n@@ -5047,7 +4983,6 @@ GRU1\n Gain change detected at block \n GainController2;\n Game\n-Game Engine\n Game Server is not running\\n\n Game Time\n Game Time %s, Mod \"%s\", Map \"%s\"\\n\n@@ -5086,7 +5021,6 @@ Generate a report to the console based on budget group.\n Generate a report to the console.\n Generate an assert to test shipping assertion code\n Generated Panorama Layout XSD in %0.2f seconds.\n-Generic\n Georgian\n German\n Get Integer Attribute\n@@ -5275,7 +5209,6 @@ Highest unlocked game chapter.\n Highlight expensive physics objects\n Highlight expensive physics objects strength\n Hiragana\n-Hltv Replay\n Hltv Replay Failure: cannot find stash %d\\n\n Hltv Replay failure: HLTV frame is not ready\\n\n Hltv Replay failure: Hltv replay is not enabled\\n\n@@ -5432,7 +5365,7 @@ Invalid JPEG file structure: SOS before SOF\n Invalid JPEG file structure: missing SOS marker\n Invalid JPEG file structure: two SOF markers\n Invalid JPEG file structure: two SOI markers\n-Invalid S2C_CONNECTION packet\n+Invalid S2C_CONNECTION packet: %s\n Invalid SOS parameters for sequential JPEG\n Invalid Steam key size\n Invalid argument\n@@ -5566,6 +5499,7 @@ LeavePVS\n LegacyGameUI001\n LegacyUserSettingsPathID\n Lepcha\n+Let demo playback and the game rules start, dump and stop the vprof lite profiler on their own.  The vprof_lite_start, vprof_lite_stop and vprof_lite_dump commands set this to 0 so that a script can drive the profiler itself.\n LevelLoad\n Lexer encountered %d error(s)\n Limbu\n@@ -5590,6 +5524,7 @@ LoadAppSystems:  appSystems Load(finish)\n LoadAppSystems:  finished\n LoadAppSystems:  pre game/client services %f msec\n LoadAppSystems: %d modAppSystems took %f msec\n+LoadDataTablesFromBuffer: failed to parse CSVCMsg_FlattenedSerializer_t: %s\\n\n LoadDemoClassInfos: can't allocate %d C_ServerClassInfos.\\n\n LoadDemoClassInfos: invalid class index (%d).\\n\n LoadImageA\n@@ -5771,13 +5706,12 @@ Max SourceTV spectator bandwidth rate allowed, 0 == unlimited\n Max bandwidth rate allowed on server, 0 == unlimited\n Max number of broadcast http requests in flight. If there is a network issue, the requests may start piling up, degrading server performance. If more than the specified number of requests are in flight, the new requests are dropped.\n Max number of broadcast1 http requests in flight. If there is a network issue, the requests may start piling up, degrading server performance. If more than the specified number of requests are in flight, the new requests are dropped.\n-Max number of messages that can be queued in a netchan receive buffer for an ordinary connection from a client.\n Max number of ticks to simulate per frame, after which simulation will start to slow down compared to real time.\n Max number of times a user can fail rcon authentication before being banned\n Maximum allowable entity delta size over unreliable delivery.\n Maximum amount of minutes to save history (0 is unlimited).\n Maximum client number on SourceTV server.\n-Maximum number of ticks the clock is allowed to drift before the client snaps its clock to the server's.\n+Maximum duration the client clock is allowed to drift from server snapshots, before the client snaps its clock to the latest server snapshot received\n Maximum queries per second to respond to from a single IP address.\n Maximum queries per second to respond to from anywhere.\n Maximum replay time in seconds\n@@ -5848,7 +5782,6 @@ MountAddonSearchPaths: Failed to find CONTENTADDONS search path.\\n\n Mounting addon '%s'\\n\n Mouse\n Mouse Control\n-Move\n Moves the camera position + orientation to the named entity\n Moves the camera position + orientation to the specified position\n Movie\n@@ -5958,8 +5891,8 @@ No such device\n No such device or address\n No such file or directory\n No such process\n-No vprof lite data available?\\n\n No vprof lite data recorded\\n\n+No vprof lite data to write to %s\\n\n NoDefaultModPath\n NoKeyBindings\n NoLicenseOrExpired\n@@ -5973,6 +5906,7 @@ Not a JPEG file: starts with 0x%02x 0x%02x\n Not a SourceTV proxy\n Not a directory\n Not creating socket NS_HLTV due to -nohltv command line option.\\n\n+Not currently playing back a demo.  demo_timescale will take effect when playback starts\\n\n Not enough space\n Not implemented yet\n Not logged into Steam, Steam auth will fail\\n\n@@ -5981,7 +5915,7 @@ Not saving user configuration because host_readconfig_ignore_userconfig is set.\\\n Not supported.\n Note that enum values use C++ scoping rules, meaning that enum values are siblings of their type, not children of it.  Therefore, \"\n Note: should use \"addip\" instead of \"banip\".\\n\n-Nov  2 2026\n+Nov 11 2026\n November\n Now recording to \"%s\", immediate mode, recorded length so far is %s.\\n\n Now recording to \"%s\", recorded length so far is %s.\\n\n@@ -6073,6 +6007,7 @@ OneofOptions\n Online %s, FPS %.1f, Version %i (%s)\\n\n Only DXT1/DXT5 online texture compression supported.\\n\n Only SourceTV Master can record demos instantly.\\n\n+Only one filename is allowed; got '%s' and '%s'\\n\n Only one instance of the game can be running at one time.\n Opaque Handle\n Open a VConsole subtool.\n@@ -6207,10 +6142,6 @@ Particle Object\n ParticleSystemMgr003\n PatchVersion\n PathRemoveFileSpecA\n-Path_AddToTail failed for read only CFieldPath\n-Path_AddToTail failed, depth already == DEFAULT_MAX_PATH_DEPTH(%d)\n-Path_PopLast failed for read only CFieldPath\n-Path_SetCount failed, depth already == DEFAULT_MAX_PATH_DEPTH(%d)\n Pause\n Pause the cursor at this point.\n Paused: %s\n@@ -6352,7 +6283,7 @@ Platform the engine is running on.\n Play a broadcast\n Play a demo and report performance info.\n Play a demo, report performance info, and then exit\n-Play a recorded demo file (.dem ).\n+Play a recorded demo file (.dem ).  Options: start=<tick> end=<tick> timescale=<float> (run with no arguments for details).\n Play demos in demo sequence.\n Play for N ticks (default=1) and then pause.\n Play next demo in sequence.\n@@ -6426,8 +6357,6 @@ Proceed Elegantly.\n Proceed Immediately.\n ProcesPacketEntitiesWorkItems_Combined\n ProcesPacketEntitiesWorkItems_Combined_Sort\n-ProcesPacketEntitiesWorkItems_Decode\n-ProcesPacketEntitiesWorkItems_ReadFieldList\n Process in-process voice chat microphone audio with the WebRTC audio processing module (requires voice_in_process).\n Process priority: %s, main thread priority: %s\\n\n Process32First\n@@ -6437,6 +6366,7 @@ ProcessBC6HResults\n ProcessBaselineAck: invalid packed entity bit (%i)\\n\n ProcessClassInfo: can't allocate %d C_ServerClassInfos.\\n\n ProcessClassInfo: invalid class index (%d).\\n\n+ProcessCreateStringTable(%s): failed to decompress string table data\\n\\n\n ProcessReadPacketEntitiesWorkItems\n ProcessServerInfo failed\n ProcessServerInfo( %s : %s : #%d ) - client requesting connection abort!\\n\n@@ -6857,7 +6787,7 @@ SV:  Setting game load failed flag.\\n\n SV:  Spawn Server: %s: [%s]\\n\n SV:  Spawn Server: %s\\n\n SV:  SpawnServer WriteClassInfosAndSerializesToBuffer %s.\\n\n-SV:  Unable to parse C2S_CONNECT_Message_t payload from '%s'\\n\n+SV:  Unable to parse C2S_CONNECT_Message_t payload from '%s': %s\\n\n SV:  VAC secure mode disabled.\\n\n SV:  VAC secure mode is activated.\\n\n SV:  WriteBaselines:  %20.20s wrote %6d bytes [%36.36s], headroom %6d bytes\\n\n@@ -7110,6 +7040,8 @@ Sets the server to shutdown when all games have completed\n Setting %s=%d\\n\n Setting cl_ticks_warning_level=0 due to %s=false\\n\n Setting main thread priority to %d\\n\n+Setting vprof_lite_auto 0, quitting after playback\\n\n+Setting vprof_lite_auto 0: the game will no longer start, dump or stop the vprof lite profiler on its own\\n\n Settings\n Shavian\n Shooting\n@@ -7167,7 +7099,7 @@ Skipping unknown demo command %d\\n\n Skips the current demo playback to the marked tick\n Skips to a tick in demo.\n Skips to location in demo.\n-Slamming client tick to server tick.  abs( server tick %d - client tick %d = %d ) > ( cl_clockdrift_max_ticks %d + sim ticks %d = %d )\\n\n+Slamming client tick to server tick.  abs( server tick %d - client tick %d = %d ) > ( cl_clockdrift_max_ticks %.1f + sim ticks %d + jitter margin %.1f = %d )\\n\n Slams viewport size to a specified value.\n Sleep\n SleepAfterMainLoop\n@@ -7193,7 +7125,6 @@ SoundOpSystemEdit001\n SoundService_001\n SoundSystem/SteamAudioEnabled\n SoundSystem001\n-Sounds\n Source2 - Warning\n Source2 Benchmark Results\\n\\n\n Source2 Client\n@@ -7256,7 +7187,6 @@ Spawn\n Spawn Group %d creation sequence %d create tick %d\\n\n Spawn Group %d manifest update (create tick %d)\\n\n Spawn Group %d unload at tick %d ignored\\n\n-Spawn Groups\n Spawn group %s precache manifest overflow: this spawn group will not precache correctly on networked clients.\\n\n SpawnGroup\n Specified too high an adapter number on the command line (%d/%d)!\\n\n@@ -7374,8 +7304,6 @@ StrReplaceChar\n StreamPutOverflow\n StretchBlt\n String\n-String Command\n-String Table\n String field\n String literals cannot cross line boundaries.\n String tables user data bits restricted to %i bits, requested %i is too large\\n\n@@ -7584,11 +7512,12 @@ Tried to register an input value %s with the same name as a concommand/convar!\\n\n Tried to register the same input value %s twice!\\n\n Tried to write clouded file, but we don't have Steam interfaces?  Probably bug with order of initialization, or trying to run without steam\\n\n True\n+TrueViewLookAhead activating aggressive slowdown.  [%.1f %.1f] -> [%.1f %.1f]  [pred_offset buffer_ticks]\\n\n+TrueViewLookAhead activating tick gobble.  [%.1f %.1f] -> [%.1f %.1f]  [pred_offset buffer_ticks]\\n\n TrueViewLookAhead: aggressive fixup deactivated, desired margin reached\\n\n TrueViewLookAhead: aggressive slowdown deactivated, desired margin reached\\n\n-TrueViewLookAhead: aggressive slowdown stopped; max number of adjustments reached\\n\n-TrueViewLookAhead: changed %d -> %d.  Activating tick gobble to get in sync\\n\n-TrueViewLookAhead: changed %d cmds, %.1f ticks  ->  %d cmds %.1f ticks.  Activating aggressive local sim slowdown until we get back sync\\n\n+TrueViewLookAhead: aggressive slowdown engaged to gain %.1fms of margin (up to %.1fms)\\n\n+TrueViewLookAhead: aggressive slowdown stopped; desired margin not reached in time!\\n\n TrueViewLookAhead: gobble canceled, desired margin reached\\n\n TrueViewLookAhead: gobbling. Current tick is %d, we have received a message for tick %d.  Processing all messages up to %d now\\n\n TrueViewLookAhead: no excess ticks from server to gobble\\n\n@@ -7691,6 +7620,7 @@ Unbind a key.\n Unbind all keys.\n Under memory limit. Limit is %llu but current usage is %llu.\\n\n Unepxected spawn group %d, %d was expected.\\n\n+Unexpected argument '%s'; options are given as %s=<0|1>\\n\n Unexpected authentication protocol %i!\n Unexpected character\n Unexpected character '%c' (0x%02X)\n@@ -7719,8 +7649,10 @@ Unknown loop type encountered in loop \"%s\"!\\n\n Unknown message in DemoSpawnGroups %d.\\n\n Unknown message in SpawnGroups %d.\\n\n Unknown net message %d!\\n\n+Unknown option '%s'; the only option is %s=<0|1>\\n\n Unknown option '%s'\\n\n Unknown property %s\n+Unknown spawn group message in GetSpawnGroupHandleFromMessage!\\n\n Unknown variable %s\n Unknown variety of crash. You have now failed to crash. I hope you're happy.\\n\n Unknown vtune option.\\n\n@@ -7796,7 +7728,6 @@ Use this to tell Steam to relaunch the app right after existing\n UsecCmdLatency\n Used by the client to inform the server of their desired queue length.  Derived from cl_tickpacket_recvmargin_desired and cl_tickpacket_desired_queuelength\n User %s is %s member of clan %s\\n\n-User Messages\n User command %d recv on server %s, tick %d, margin %.1fms. (%s)  frame time=%.1fms, LastCommandRecv=%d, LastCommandExecuted=%d\\n\n UserDataFixedSize exceeds size %d needs room for %d bits\\n\n UserSettingsFileEx\n@@ -7979,7 +7910,6 @@ VisBuilder_001\n VisSystemDebug\n Visibility %s.\\n\n Visual C++ CRT: Not enough memory to complete call to strerror.\n-Voice\n Voice/WebRTC: ERL %.1f dB  ERLE %.1f dB  delay %d ms  voice %d  frames capture %u render %u\\n\n Voice: WebRTC audio processing could not be initialized; microphone audio will not be echo cancelled.\\n\n Voice: WebRTC audio processing enabled (aec %d, ns %d level %d, agc %d, hpf %d).\\n\n@@ -8194,6 +8124,7 @@ Wednesday\n When > 0, sets the mode whereas players see delayed replay, and are segregated into a domain of chat and voice separate from the alive players\n When VConsole is in the foreground, don't trigger engine_no_focus_sleep behavior\n When VConsole is in the foreground, force all engine & tools to render\n+When an entity is decoded from a baseline plus a wire delta, merge the two and decode once (true), or decode the baseline and then the delta as two passes (false, the old behaviour, which can invoke change callbacks with baseline values for an entity that already exists).\n When connecting to local listen server (for example, using the 'map' command), default to loopback=false, which connects to '127.0.0.1' instead of 'loopback'.  This uses the network stack so that fake lag/loss can be simulated.\n When enabled, changes in tv_enable convars cause immediate startup or shutdown of hltv server\n When enabled, game server will quit immediately via syscall instead of running host states shutdown sequence\n@@ -8283,9 +8214,9 @@ Writing configuration for slot %d\\n\n Writing memory stats to %s\\n\n Writing memory stats to file memstats.txt\\n\n Writing perf stats...\n-Writing vprof lite report to %s\\n\n Wrong JPEG library version: library is %d, caller expects %d\n Wrote vis errors to %s\\n\n+Wrote vprof lite report to %s\\n\n Wrote_Screenshot\n X-Origin-Auth\n X-Origin-Auth header of the broadcast POSTs\n@@ -8352,10 +8283,10 @@ Zpm\"U\n [mirror]\n [packed = true] can only be specified for repeated primitive fields.\n [player %d]: Key \"%s\" is not bound.\\n\n-[removed]\n [s%5d c%5d t%6.3f] ApplyClockDrift correcting %d -> %d\\n\n [s%5d c%5d t%6.3f] ClientAdvanceTick %d -> %d.   %d of %d this frame\\n\n [s%5d c%5d t%6.3f] ClientFrameSimulate %.3f\\n\n+[s%5d c%5d t%6.3f] ClientPollNetworking client tick += %d -> %d\\n\n [s%5d c%5d t%6.3f] ClientPollNetworking\\n\n [s%5d c%5d t%6.3f] ClientProcessNetworking post ProcessSocketMessages\\n\n [s%5d c%5d t%6.3f] ProcessPacketEntities start tick %d\\n\n@@ -8790,7 +8721,7 @@ cl_clock_recvmargin_timeconstant_slowdown\n cl_clock_recvmargin_timeconstant_speedup\n cl_clock_recvmargin_window\n cl_clockdbg\n-cl_clockdrift_max_ticks\n+cl_clockdrift_max_secs\n cl_connectionretrytime_p2p\n cl_cq_min_queue\n cl_debug_build_recvmargin_min\n@@ -8810,6 +8741,7 @@ cl_language\n cl_log_tick\n cl_log_tick_skips\n cl_net_printsummary\n+cl_packetentities_merge_before_decode\n cl_parallel_readpacketentities\n cl_parallel_readpacketentities_threshold\n cl_playback_screenshots\n@@ -9000,6 +8932,7 @@ demo_pauseatservertick\n demo_quitafterplayback\n demo_recordcommands\n demo_resume\n+demo_skip\n demo_step_tick\n demo_timescale\n demo_togglepause\n@@ -9052,6 +8985,7 @@ dxlevel,\n e+000\n e.g.:  startmovie testmovie jpg wav jpeg_qality 75 framerate 30\\n\n e.g.: playdemo replays/foo jpg wav framerate 30\\n\n+e.g.: playdemo replays/foo start=2m end=+120s timescale=4\\n\n echo\n echoln\n edem\n@@ -9983,6 +9917,8 @@ playcast: Packet tick %d size %u\\n\n playdemo\n playdemo %s\\n\n playdemo <demoname> [\\n\n+playdemo: option '%s' needs a value, e.g. %s=2m\\n\n+playdemo: unknown option '%s'.  Options are start=<tick>, end=<tick>, timescale=<float>.\\n\n player\n player0_using_joystick\n player_network_lag_avg\n@@ -10360,6 +10296,8 @@ stackstats_dump usage:\\n\\tstackstats_dump %s [\"filename\"]\\n\n stackstats_dump usage:\\n\\tstackstats_dump struct [\"filename\"]. There's a single instance registered, auto-picking: %s\\n\n standalone_vad_->AddAudio(resampled_ptr, length) == 0\n standalone_vad_->GetActivity(&chunkwise_voice_probabilities_[0], chunkwise_voice_probabilities_.size()) >= 0\n+start\n+start=<tick> and end=<tick> play a range (tick syntax as for timedemo_start/timedemo_end) and write timedemo_profile.csv at the end\\n\n startdemos\n startdemos:  %i demo(s) in loop\\n\n startmovie\n@@ -10489,7 +10427,6 @@ sv_rcon_log\n sv_rcon_maxfailures\n sv_rcon_minfailures\n sv_rcon_minfailuretime\n-sv_recvbuf_messages\n sv_region\n sv_replay_group_id\n sv_replaysdir\n@@ -10576,6 +10513,8 @@ timedemo_start\n timedemoquit\n timeout\n times_to_fire\n+timescale\n+timescale=<float> sets the replay speed, as demo_timescale does\\n\n title_pw\n toggle\n toggle: Cannot parse value \"%s\" as boolean!\\n\n@@ -10862,13 +10801,24 @@ vpcf\n vphysics2\n vpks\n vpks/\n+vprof lite profiler running%s\\n\n+vprof lite profiler stopped%s\\n\n+vprof lite profiler stopped, data cleared\\n\n vprof_all_threads\n vprof_counters\n vprof_counters_show_minmax\n vprof_dump_counters\n vprof_generate_report\n vprof_generate_report_budget\n vprof_generate_report_hierarchy\n+vprof_lite.csv\n+vprof_lite_auto\n+vprof_lite_dump\n+vprof_lite_dump [filename] [stop=1]\\nWrite the vprof lite budget group statistics as CSV, then stop the profiler and clear its data.\\nstop=0 leaves the profiler running with its data.  The default filename is vprof_lite.csv in the mod directory;\\nan absolute path is used as given.  Sets vprof_lite_auto 0, so the game will not stop or dump the profiler on its own.\n+vprof_lite_start\n+vprof_lite_start [clear=1]\\nStart the vprof lite profiler, clearing any data it holds.  clear=0 keeps the data and continues adding to it.\\nSets vprof_lite_auto 0, so the game will not stop or dump the profiler on its own.\n+vprof_lite_stop\n+vprof_lite_stop [clear=1]\\nStop the vprof lite profiler and clear its data.  clear=0 keeps the data, for engine_frametime_print_report or vprof_lite_dump.\\nSets vprof_lite_auto 0, so the game will not start the profiler on its own.\n vprof_loadhitstore_scale\n vprof_off\n vprof_on"
        },
        {
          "filename": "game/bin/win64/gfsdk_aftermath_lib.x64_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -2357,6 +2357,7 @@ Error_OutOfMemory\n Escape sequence did not encode a valid character.\n Escape sequence terminated prematurely.\n Escape sequence was neither a valid property nor a valid character class name.\n+Events\n Evicted\n EvictedToDisk\n Exceeded nested brace limit."
        },
        {
          "filename": "game/bin/win64/materialsystem2_strings.txt",
          "status": "modified",
          "additions": 8,
          "deletions": 8,
          "changes": 16,
          "patch": "@@ -260,9 +260,9 @@ CMaterial2::GetVertexShaderInputSignature(780): Error! Material \"%s\" doesn't hav\n CMaterial2::GetVertexShaderInputSignature(812): Error! Material \"%s\" doesn't have a CVsInputSignatureVector!\\n\n CMaterial2::GetVertexShaderInputSignature(830): Error! Material \"%s\" has invalid signature index %d!\\n\n CMaterial2::LoadShadersAndSetupModes(1662): Error creating shader %s for material %s!\\n\n-CMaterialMode::ComputeWorkItemsToSetupStaticCombosForMode(2956): Failed call to FindOrCreateStaticComboDataInCache()!\\n\n-CMaterialMode::FindOrLoadVfx(2475): DxSupportLevel %d not supported!\\n\n-CMaterialSystem2::DynamicShaderCompile_UnloadAllMaterials(1067): ERROR!!! Shaders not freed before shader reload! (See spew above)\\n\\n\n+CMaterialMode::ComputeWorkItemsToSetupStaticCombosForMode(2958): Failed call to FindOrCreateStaticComboDataInCache()!\\n\n+CMaterialMode::FindOrLoadVfx(2477): DxSupportLevel %d not supported!\\n\n+CMaterialSystem2::DynamicShaderCompile_UnloadAllMaterials(1069): ERROR!!! Shaders not freed before shader reload! (See spew above)\\n\\n\n CMaterialSystem2::FrameUpdate\n CMaterialSystem2::GetErrorMaterial(505): GetErrorMaterial() called when m_pMaterialTypeManager == NULL!\\n\n CMaterialSystem2::Init(153): ERROR! Empty shader mode string found! Use \"Default\" instead!\\n\n@@ -427,9 +427,9 @@ MakeOrthonormalForward\n MakeOrthonormalRight\n Malgun Gothic\n Marlett\n-MatPrintShaderInfo(3492): Error reading index!\\n\n-MatPrintShaders(3209): pVfx == NULL!\\n\n-MatPrintShaders(3258): pVfx == NULL!\\n\n+MatPrintShaderInfo(3494): Error reading index!\\n\n+MatPrintShaders(3211): pVfx == NULL!\\n\n+MatPrintShaders(3260): pVfx == NULL!\\n\n MatUtilsRenderMesh\n MatUtilsRenderOutlinedRect\n MatUtilsRenderPrimitives\n@@ -713,8 +713,8 @@ WARNING: Invalid resource version (%d): %s\\n\n \\nCMaterial2::LoadShadersAndSetupModes(1748): Error creating shader %s for material %s!\\n\n \\nCMaterial2::LoadShadersAndSetupModes(1753): Error creating shader %s and cannot load error.vfx instead!\\n\n \\nCMaterial2::LoadShadersAndSetupModes(1763): Error creating static combos for shader %s and error.vfx instead!\\n\n-\\nCMaterialMode::ComputeRenderablePassesForContextInternal(3373): All bad! The error material failed in dynamic shader compile!\\n\n-\\nCMaterialMode::CreateCommandBuffer(4281): Find a graphics programmer! Trying to bind a \"%s\" shader that doesn't exist! for %s\\n\n+\\nCMaterialMode::ComputeRenderablePassesForContextInternal(3375): All bad! The error material failed in dynamic shader compile!\\n\n+\\nCMaterialMode::CreateCommandBuffer(4283): Find a graphics programmer! Trying to bind a \"%s\" shader that doesn't exist! for %s\\n\n \\nInitDynamicShaderCompileDLL(119): ERROR! Can't load vfx_dx dll, dynamic shader compile unavailable!\\n\n \\nMS,\\nVS_MS_RTX\n \\nPS_RENDER_STATE"
        },
        {
          "filename": "game/bin/win64/networksystem_strings.txt",
          "status": "modified",
          "additions": 67,
          "deletions": 44,
          "changes": 111,
          "patch": "@@ -6,7 +6,7 @@\n          Percentage. . : %9s%9s\\n\n   % 3d % 8d [%8.3f %%]\\n\n   %i:  culled %-20s:  %s -> %s (%s)\\n\n-  %s has flag %s\\n\n+  %s%2d: %d\\n\n   %s: %dms via %s (front=%dms, back=%dms)%s\\n\n   %s: %dms via direct route\\n\n   %s: %dms\\n\n@@ -35,13 +35,13 @@\n  polymorphic\\n\n  ptr to %s [%u]\n  serializer(%s)\n-!m_NetworkChangeTagCallback.IsEmpty()\n+!s_NetworkChangeTagCallback.IsEmpty()\n %%%d.%ds \n %%s \n %-10s % 5d no fastpath because field %s %s changed the array size from %d to %d\\n\n %-10s % 5d no fastpath because field %s base depth is too large (pointer metadata change?)\\n\n %-10s % 5d no fastpath because field %s not resolvable\\n\n-%-10s %d %s: %s at offset %d, 0x%p array %s struct %s: index %d array size %d in %s\\n\n+%-10s %d %s: %s at offset %d, 0x%p array of structs: index %d array size %d in %s\\n\n %-5d %-20s : [%-5d -> %-5d] %-5s bits:  %-32s %-80s : '%s' %s\n %-64.64s has %d CFlattendSerializer permutations\\n\n %-75s %-75s offset %10.10s %9.9s %s\n@@ -53,6 +53,8 @@\n %20.20s %s is variant %d/%d of %s\\n\n %20.20s omit %d types for %s [convar net_max_polymorphic_spew=%d]\\n\n %20.20s omit %s variants, already spewed\\n\n+%5d%7d%7d%7d %s\\n\n+%5s%7s%7s%7s %s\\n\n %60.60s %15.15s %24.24s %10.10s\\n\n %60.60s %15.15s %24s %10d \n %8.3f: %s: ParseMessagesDemo UNRELIABLE %d bytes\\n\n@@ -65,6 +67,7 @@\n %d [%s,%s] %s\n %d [0x%x]\n %d bits\n+%d bytes is too big.\n %d of %d empty (%.3f %%)\\n\n %d structs not using DECLARE_NETWORKVAR_STRUCT_NOT_IN_NETWORK_UTLVECTOR_EMBEDDED, consider porting fields to use CNetworkVars!\\n\n %d total.\\n\n@@ -88,6 +91,7 @@\n %s Gathering field offsets in %s\\n\n %s SendMessages %s failed with EResult %d\\n\n %s [%d fields]\\n\n+%s [%d]\n %s [%u]\n %s ambiguous, field exists in serializer '%s' field %d\\n\n %s does not support allocation from networking\\n\n@@ -134,7 +138,7 @@\n %s: shrinking removes delegate [0x%p]\\n\n %s: timing out, last received %f [%.2f seconds ago]\\n\n %s: unable to find serializer named %s\\n\n-%s::%s has more than one MNetworkChangeCallback that requires passing network value into handler, this is unsupported\\n\n+%s::%s encoder mismatch, local '%s' vs. remote '%s', using local\\n\n %s::%s was in the original serializer at offset %u but that offset isn't in the ignore list!!!\\n\n %s::%s:%u (%s ) already encountered at %s::%s:%u (%s)\n %s:Inbound net frame %d dropped\\n\n@@ -212,24 +216,20 @@\n .?AV?$_Node_str@D@std@@\n .?AV?$collate@D@std@@\n .?AVCCLCMsg_RconServerDetails_t@@\n-.?AVCDecodeSerializerStack@@\n-.?AVCDeltaCalculator@@\n .?AVCDeltaFieldPathTracer@@\n .?AVCEncodeSerializerStack@@\n .?AVCFieldShadowSpewCollector@@\n .?AVCFlattenedSerializerReadFieldListListener@@\n .?AVCFlattenedSerializers@@\n+.?AVCHiddenFieldValuePrinter@@\n .?AVCNETMsg_SplitScreenUser_t@@\n .?AVCNetChan@@\n .?AVCNetWhyFieldExcludedFunctor@@\n .?AVCNetworkEncodingStats@@\n .?AVCNetworkFieldChangedEventQueue@@\n .?AVCNetworkFieldSerializerAllocator@@\n .?AVCNetworkMessages@@\n-.?AVCNetworkSerializerPB@@\n .?AVCNetworkSystem@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$02VCNETMsg_SplitScreenUser@@$0L@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0A@VCNETMsg_NOP@@$0L@$00$0A@@@\n .?AVCSchemaRegistration_networksystem@@\n .?AVCSerializedEntities@@\n .?AVCSerializerStack@@\n@@ -241,12 +241,10 @@\n .?AVINetworkEncodingStats@@\n .?AVINetworkFieldChangedEventQueue@@\n .?AVINetworkFieldSerializerAllocator@@\n-.?AVINetworkMessageInternal@@\n .?AVINetworkMessages@@\n .?AVINetworkSystem@@\n .?AVINode@CFieldPathHuffmanEncoder@@\n .?AVISerializedEntities@@\n-.?AVISerializedEntityErrorSpewHook@@\n .?AVInternalNode@CFieldPathHuffmanEncoder@@\n .?AVLeafNode@CFieldPathHuffmanEncoder@@\n .?AVNetMessageConnectionClosed_t@@\n@@ -271,7 +269,6 @@\n 0 bit issue, spot 2\n 0 bit issue, spot 3\n 0 bit issue, spot 4\n-7;eZ\\r\n ::Storage_t\n Accepting Steam Net connection %s\\n\n AckSeqNum\n@@ -289,6 +286,8 @@ Average Backing Raw Paths         :  %8.3f\\n\n Average Data Bytes                :  %8.3f bytes\\n\n Average Memory Usage Per Entity   :  %8.3f bytes\\n\n Average Number of Field Paths     :  %8.3f\\n\n+AvgSz\n+BUG! Failed to read from buffer after checking size?\n BetaUniverse\n BufType\n Buffer overflow\n@@ -301,16 +300,18 @@ BuildMergedSerializedEntity:  problem writing %s:  %d bits [%d to %d] is < 1 bit\n BuildOutputString:  change %s to %d\\n\n BytesWire\n C:\\buildworker\\csgo_rel_win64\\build\\_build_\\networksystem\\_vpc_networksystem\\default\\win64\\_msvc_\\Retail\\networksystem.pdb\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\common\\protobuf_helpers.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\networksystem\\flattenedserializer.cpp\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\networksystem\\flattenedserializer_encode.cpp\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\networksystem\\flattenedserializer_setup_gamecode.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\networksystem\\flattenedserializers.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\networksystem\\netchan.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\networksystem\\networkmessages.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\networksystem\\networkserializer.cpp\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\networksystem\\networkserializerregistry.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\networksystem\\networksystem.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\public\\networksystem\\serializedentity.h\n CBuildNetworkSerializerHierarchyOrder::ComputeDepth\n-CDeltaCalculator::ErrorMsg %s %d\\n\n-CDeltaCalculator::ErrorMsg: %s\\n\n CDeltaCalculator::FieldCalcDelta fromBits\n CDeltaCalculator::FieldCalcDelta toBits\n CEntitySystem::BuildEntityNetworking (%s build of %s) took %.3f msecs for %d out of %d classes\\n\n@@ -321,7 +322,7 @@ CFlattenedSerializer::ApplyOverrides_R\n CFlattenedSerializer::BuildDeltaProperties using %d bytes for encoding %d/%s\\n\n CFlattenedSerializer::BuildHierarchy_R\n CFlattenedSerializer::BuildOverrideField:  Problem initializing replacement field %s::%s\\n\n-CFlattenedSerializer::Decode\n+CFlattenedSerializer::DecodeSerializedEntity\n CFlattenedSerializer::DumpSerializedEntityToConsole\n CFlattenedSerializer::Encode failure for entity %d\\n\n CFlattenedSerializer::Encode overflow failure for entity %d max size is %d bytes\\n\n@@ -353,9 +354,8 @@ CMergedEntityOffsetBuilder::Expecting at least one bit in offset\n CNetChan::BUF_RELIABLE\n CNetChan::BUF_UNRELIABLE\n CNetChan::BUF_VOICE\n-CNetChan::ParseMessages\n CNetChan::ProcessMessages\n-CNetChan::SendNetMessage: SerializeAbstract for message %s failed!\\n\n+CNetChan::SendNetMessage: Failed to serialize %s\\n\n CNetChan::SendNetMessage: Trying to send message %s, which is an invalid category for this channel!\\n\n CNetChan::SendNetMessage: Unable to send message %s, buffer is full!\\n\n CNetChan::Setup for %s\\n\n@@ -364,27 +364,14 @@ CNetSerializerStrongHandle::Serialize\n CNetSerializerStrongHandle::Unserialize\n CNetworkFieldChangedEventQueue::QueueChange:  ran out of scratch data space!!!\\n\n CNetworkFieldChangedEventQueue::QueueReplayCompatFieldChange\n-CNetworkMessages::AllocateAndCopyConstructNetMessageAbstract unable to allocate unknown message type!\\n\n-CNetworkMessages::ComputeOrderForPriority\n CNetworkMessages::ConfirmAllMessageHandlersInstalled\n-CNetworkMessages::DeallocateUnserializedMessage unable to deallocate unknown message type!\\n\n CNetworkMessages::FindOrCreateGroupId\n CNetworkMessages::FindOrCreateGroupId: Too many network groups!\\n\n-CNetworkMessages::FindOrCreateNetMessage\n CNetworkMessages::FindOrCreateNetMessage: It is illegal to register new net messages after serialization!\\n\n-CNetworkMessages::FindOrCreateNetMessage: Message %s is expected to have already been registered!\\n\n-CNetworkMessages::InitNetworkChangeTag\n-CNetworkMessages::InitNetworkChangeTag - missing m_NetworkChangeTagCallback, should have been installed by CEntitySystem::Init call to g_pNetworkMessages->RegisterNetworkChangeTagCallback!\n-CNetworkMessages::RegisterFieldChangeCallbackPriority\n-CNetworkMessages::RegisterNetworkArrayFieldSerializer\n-CNetworkMessages::RegisterNetworkFieldChangeCallbackInternal\n-CNetworkMessages::RegisterNetworkFieldSerializer\n CNetworkMessages::Serialize attempted to serialize a non-serializeable message [%s]!\\n\n CNetworkSerializer: Unable to find network encoder named %s!\\n\n CNetworkSerializer::AssignSharedChangeCallbackIndex\n CNetworkSerializer::DetermineFieldSerializerGroup\n-CNetworkSystem::BufferToBufferDecompress with improperly sized dest buffer (%u in, %llu needed)\\n\n-CNetworkSystem::BufferToBufferDecompress with improperly sized dest buffer (%u in, %u needed)\\n\n CNetworkSystem::CleanupDebugOutputFunction()\\n\n CNetworkSystem::CloseAllSockets()\\n\n CNetworkSystem::GetPacket\n@@ -427,16 +414,17 @@ CUtlLeanVectorBase<struct UtlLinkedListElem_t<struct CNetworkFieldChangedEventQu\n CUtlLeanVectorBase<struct UtlLinkedListElem_t<struct CNetworkFieldPointerAllocationQueueInfo_t,unsigned int>,unsigned int,class CMemAllocAllocator>::EnsureCapacity\n CUtlLeanVectorBase<struct UtlRBTreeNode_t<int,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity\n CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CNetChan::SplitPlayer_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity\n-CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<int,class INetworkMessageInternal *,class CDefLess<int>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity\n CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<int,int,class CDefLess<int>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity\n+CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<int,struct NetMessageInfo_t *,class CDefLess<int>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity\n CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct OverrideWork_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity\n CUtlLeanVectorImpl<class CUtlLeanVectorBase<struct CUtlHashMap<class CFieldPath,class CDTIField,class CDefEquals<class CFieldPath>,struct DefaultHashFunctor<class CFieldPath>,int>::HashBucket_t,int,class CMemAllocAllocator>,struct CUtlHashMap<class CFieldPath,class CDTIField,class CDefEquals<class CFieldPath>,struct DefaultHashFunctor<class CFieldPath>,int>::HashBucket_t,int>::AddMultipleToTail\n CUtlLeanVectorImpl<class CUtlLeanVectorBase<struct CUtlHashMap<class CSerializerHandle_t<class CFlattenedSerializer>,class CDTISerializerInfo *,class CDefEquals<class CSerializerHandle_t<class CFlattenedSerializer> >,struct DefaultHashFunctor<class CSerializerHandle_t<class CFlattenedSerializer> >,int>::HashBucket_t,int,class CMemAllocAllocator>,struct CUtlHashMap<class CSerializerHandle_t<class CFlattenedSerializer>,class CDTISerializerInfo *,class CDefEquals<class CSerializerHandle_t<class CFlattenedSerializer> >,struct DefaultHashFunctor<class CSerializerHandle_t<class CFlattenedSerializer> >,int>::HashBucket_t,int>::AddMultipleToTail\n CUtlLeanVectorImpl<class CUtlLeanVectorBase<struct CUtlHashMap<unsigned int,int,class CDefEquals<unsigned int>,struct DefaultHashFunctor<unsigned int>,int>::HashBucket_t,int,class CMemAllocAllocator>,struct CUtlHashMap<unsigned int,int,class CDefEquals<unsigned int>,struct DefaultHashFunctor<unsigned int>,int>::HashBucket_t,int>::AddMultipleToTail\n+CUtlLeanVectorImpl<class CUtlLeanVectorBase<struct ChangeCallback_t,int,class CMemAllocAllocator>,struct ChangeCallback_t,int>::InsertBeforeGetPtr\n CUtlLeanVectorImpl<class CUtlLeanVectorFixedGrowableBase<struct CFieldPath::Path_t,6,int,class CMemAllocAllocator>,struct CFieldPath::Path_t,int>::AddMultipleToTail\n CUtlLeanVectorImpl<class CUtlLeanVectorFixedGrowableBase<unsigned int,3,int,class CMemAllocAllocator>,unsigned int,int>::AddMultipleToTail\n-CUtlSortVector<int,class CNetworkMessages::CPriorityLess,class CUtlVector<int,int,class CUtlVectorMemory_Growable<int,int,0> > >::Find\n-CUtlSortVector<int,class CNetworkMessages::CPriorityLess,class CUtlVector<int,int,class CUtlVectorMemory_Growable<int,int,0> > >::InsertIfNotFound\n+CUtlSortVector<int,class CPriorityLess,class CUtlVector<int,int,class CUtlVectorMemory_Growable<int,int,0> > >::Find\n+CUtlSortVector<int,class CPriorityLess,class CUtlVector<int,int,class CUtlVectorMemory_Growable<int,int,0> > >::InsertIfNotFound\n CacheableConnectionExpired\n CalcDelta\n Can't ConnectLoopback between socket %d and %d, not enough slots\\n\n@@ -456,6 +444,7 @@ Cannot use priority equal to NETWORK_FIELD_CHANGE_DEFAULT_PRIORITY!\\n\n Capture active, %s samples written\\nnet_captureculldata stop to stop the capture\\n\n Checking for missing CNetworkVar* declarations\\n\n Class,Field,Field Path,Decode Count,Total Bits,Avg Bits,Total Index Bits,Avg Index Bits,Priority,=SUM(E:E),Full Name,Notes\\n\n+Client Messages\n CloseSocket\n CloseSteamNetConnection handle #%u (userdata %d)%s\\n\n Closing '%s' P2P listen socket\\n\n@@ -472,6 +461,8 @@ Couldn't resolve offset %u in %s at path (%d = '%s')\\n\n CreateHostedDedicatedServerListenSocket for socket '%s' failed /+/ port %u vport %d\\n\n CreateReplayCompatSerializerFromMeta creating fake serializer for %s\\n\n Created poll group for socket '%s'\\n\n+DECODE FAILED\n+DISCARD array size\n DTI %s\\n\n DTI reset\\n\n DTI: can't Flush(), no data to write.\\n\n@@ -491,7 +482,7 @@ Encountered 2 fields \"%s\" and \"%s\" in struct \"%s\" using the same change callback\n Encountered message with an invalid network category! [net message %s]\n End of stream\n Error installing message handlers into a net channel: missing handlers in channel %s!\\n\n-Error parsing message type %d (%s)\n+Error parsing message type %d (%s): %s\n Error processing network message %s! Channel is closing!\\n\n Error! Failed to WSAStartup! err = %d.\\n\n Error: Components count + networkable data type must be the same for all instances of network field serializer (%s)!\\n\n@@ -502,10 +493,10 @@ EstablishCacheableSharedNetConnection(%s) failed\\n\n EstablishNewSteamNetConnection ConnectByIPv4Address(%s) failed\\n\n EstablishNewSteamNetConnection ConnectP2P(%s) failed\\n\n Established cacheable shared Steam Net Connection to '%s'\\n\n+Events\n Exceeded max number proxies in CFlattenedSerializer::BuildHierarchy()\n Executing queued command: '%s'\\n\n Expected AVG or PROFILE argument\\n\n-Expecting NetMessageInfo_t::m_pProtobufBinding to be non-NULL\n Extra connection [%s]:\\n\n FAKE array size\n FAKE pointer\n@@ -515,6 +506,7 @@ Failed to create poll group for socket '%s'?\\n\n Failed to install message handler for message %s in channel %s!\\n\n Failed to open P2P network socket '%s'\\n\n Failed to open UDP network socket '%s'\\n\n+Failed to parse %s.  %s\\n\n Failed to set SteamNetworkingSockets option '%s'\\n\n Failed to start listening for SDR on port %d.  Waiting and will retry\\n\n FakeJitter\n@@ -530,10 +522,11 @@ Field %s::%s specified an unknown field change callback %s!\\n\n Field names match, but types do not to match %s::%s local type is '%s' vs. remote type is '%s'\\n\n FieldPathEncodeFinish\n FlattenedSerializerField_t::FindPolymorphicFieldInfoByCodegenBinding\n+Frame too large (%d bytes uncompressed), limit is %s=%d\n+Game Engine\n GatherAllFieldOffsets_R:  local offset of %s::%s %u is too large (%u max)\\n\n GatherSendProxyResults\n GetBitRange( %d -> %d ) end is before or same as start\\n\n-GetPathData failed for read only CFieldPath\n Got ISteamNetworkingSockets user interfaces from standalone lib\\n\n Got ISteamNetworkingSockets user interfaces from steam client\\n\n Got message on poll group for socket %s, but cannot find connection in table?\n@@ -544,6 +537,8 @@ HParticleSystemDefinitionStrong\n HPostProcessingStrong\n HRenderTextureStrong\n HVDataResourceStrong\n+History: %s\\n\n+Hltv Replay\n IND)ind)\"\n INetChannel::SetCategories: Network category wasn't registered!\\n\n INetworkSystem::RegisterNetworkCategory: Attempted to register category %u twice (debug name: %s and %s)\\n\n@@ -563,6 +558,7 @@ JitterMS\n Kind\n LastSeqNum\n Latency. . . . . . . . : %7dms%7dms%7dms   net_fakelag\\n\n+Lead byte(s) encode invalid size %d.  (%d bytes remaining)\n Leaked channel %s remote %s\\n\n Loss . . . . . . . . . : %8.2f%%%8.2f%%%9s   net_fakeloss\\n\n MNetworkBitCount\n@@ -580,10 +576,13 @@ MNetworkSerializer\n MNetworkUserGroup\n MNetworkVarTypeOverride is referring to an unknown class name %s in class %s\\n\n MakeSerializersMatchByMeta failed for %s\\n\n+Max struct change callbacks queued at one level, per entity decode (inline capacity %d):\\n\n+MaxSz\n Measured RTT to %d SDR points of presence.\\n\n Merge\n Message of type (%s) %d size %d exceeded maximum message size %d; allowing as per %s=%d\\n\n Message of type (%s) %d size %d exceeded maximum message size %d; rejecting.\\n\n+MinSz\n Multiple steam net connections from %s\\n\n NETWORK_FIELD_CHANGED_ARRAY_NO_VALUE\n NETWORK_FIELD_CHANGED_ARRAY_WITH_VALUE\n@@ -600,7 +599,7 @@ NETWORK_FIELD_HIGHEST_PRIORITY\n NETWORK_FIELD_LOWEST_PRIORITY\n Net graph %s\\n\n Net status for host %s:\\n\n-NetChan %s ProcessMessages has exhausted its CPU time warning budget.  %dms to process %d messages this call.  (Current message type: '%s')\\n\n+NetChan %s ProcessMessages excessive CPU usage.  %dms to process %d messages this call.  (Current message type: '%s', drop budget remaining: %.1fms)\\n\n NetChanFlowIncomingAck\n NetChanRecv\n NetChanRecvMisdelivery\n@@ -612,14 +611,23 @@ NetChanTransmitReliable\n NetChanTransmitUnreliable\n NetChannel '%s':\\n\n NetMessage '%s' still using auto-assigned, has to generate id from name CUtlStringToken hashcode = %d\\n\n+NetSerializers_ComputeOrderForPriority\n+NetSerializers_InitNetworkChangeTag\n+NetSerializers_InitNetworkChangeTag - missing s_NetworkChangeTagCallback, should have been installed by CEntitySystem::Init call to g_pNetworkMessages->RegisterNetworkChangeTagCallback!\n+NetSerializers_RegisterFieldChangeCallbackPriority\n+NetSerializers_RegisterNetworkArrayFieldSerializer\n+NetSerializers_RegisterNetworkFieldChangeCallback\n+NetSerializers_RegisterNetworkFieldSerializer\n+Net_BufferToBufferDecompress: decompressed size %llu exceeds NET_MAX_PAYLOAD\\n\n+Net_BufferToBufferDecompress: malformed compressed data\\n\n+Net_BufferToBufferDecompress: uncompressed size %llu exceeds NET_MAX_PAYLOAD\\n\n Netchan '%s' closed unexpectedly: %s\\n\n Netchan [%s] already associated with hconn #%u, but now we are getting messages on new hconn #%u using the same 'from' address\\n\n Netchan queued message new high water mark reached by %s at %d messages\\n\n Network System Initialized\\n\n Network field tried to use a priority that has not been registered!\\n\n Network socket '%s' opened on port %d\\n\n NetworkConfigLimits\n-NetworkMessages::FindOrCreateNetMessage: Message %s is of size %d in leaf code, but protobuf object is size %lld, the added fields should be placed into object derived from protobuf and then CNetMessagePB references that\\n\n NetworkReplayCompatField_t %s::%s on field '%s' is using possibly bogus this pointer from class %s!\\n\n NetworkSystem\n NetworkSystem/CreateListenSocketP2P\n@@ -652,8 +660,6 @@ PACKET_STATUS_DROPPED\n PACKET_STATUS_INVALID\n PACKET_STATUS_NORMAL\n PACKET_STATUS_OUT_OF_ORDER\n-Path_Remove failed for read only CFieldPath\n-Path_RemoveAll failed for read only CFieldPath\n Peer To Peer\n PlusFour\n PlusN\n@@ -672,6 +678,7 @@ PopOnePlusN\n PopOnePlusOne\n ProcessOverride encountered unknown directive NetworkOverrideType_t(%d)\\n\n Processing\n+Protobuf parse failed\n PublicUniverse\n PushN\n PushNAndNonTopographical\n@@ -708,6 +715,7 @@ Recv\n RecvMarginMS\n RegisterNetMessageHandlerAbstract: Attempted to register a message handler for a message which is not valid for this category of channel [message %s]!\\n\n RegisterNetMessageHandlerAbstract: Must call StartRegisteringMessageHandlers before, and FinishRegisteringMessageHandlers after [message %s]!\\n\n+Reliable payload expands to %d bytes, limit is %d\n ReliableNetSize\n ReliableSize\n RemoveArrayElementsOutsideOfArrayMetadataBounds:  %s [ent %d] removing change '%s' for field %s (value '%s') on array that has metadata with only %d array elements!\\n\n@@ -731,6 +739,7 @@ Socket '%s' bound to '%s' [%s]:\\n\n Socket '%s' listening for %s on port %d:\\n\n Socket '%s' listening for SDR on port %d virtual port %d\\n\n Socket layer initialized: \\n\n+Spawn Groups\n Steam Net connection %s %s, reason %d: %s\\n\n Steam supporting smaller max routable packet than engine expecting (%d vs %d)\\n\n SteamAPI_GetHSteamPipe\n@@ -755,11 +764,14 @@ SteamNetworkingSockets not yet initialized.  Queuing command '%s'\\n\n SteamNetworkingSockets_LibV12\n SteamNetworkingUtils_LibV4\n Stopping capture, %s samples written\\n\n+String Command\n+String Table\n Summary of connection [%s]:\\n\n TCP/UDP Disabled.\\n\n The 'sdr' console command has been renamed to 'net_option'.  Please update your scripts\\n\n TimeTable\n Too many incoming messages on channel (%s) %d remain queued, limit per-frame is %d.\\n\n+Too many messages in one frame (%d), limit is %s=%d\n Too many proxies for serializer %s.\n Too many queued messages (%d)\n Too many queued messages on channel (%s) %d queued, limit is %d.\\n\n@@ -777,6 +789,7 @@ Unknown message type %u\n Unreasonable reliable nUncompressedSize (%d).\n Unreasonable unreliable nUncompressedSize (%d).\n Unreliable header too small\n+Unreliable payload expands to %d bytes, limit is %d\n UnreliableNetSize\n UnreliableSize\n Unserialized nonresident asset %s status [%d]\n@@ -785,6 +798,7 @@ Usage: net_option <setting> [<value>]\\n\n Usage:\\nnet_fakejitter [send|recv] AVG [PCT] [MAX]\\nnet_fakejitter [send|recv] PROFILE\\n\\nsend|recv  If present, applies the changes to the specified direction only.\\nAVG        Mean delay, for packets that are jittered, in ms.  The random\\n           delay is chosen using the exponential distribution.\\nPCT        Percentage of packets (0...100) that will receive a random delay.\\nMAX        Clamp random jitter delay to MAX ms.\\nPROFILE    One of: off, low, med, high, huge\\n\\nUse net_fakestatus to display current simulated network conditions.\\n\n UsecEngineLatency\n UsecLocalLatency\n+User Messages\n Using Valve ICE implementation\\n\n VERBOSE_BITCOUNT\n VERBOSE_ENDBIT\n@@ -804,10 +818,12 @@ ValidateSerializedEntity:  metadata incorrect entry for %s [%d expected %d]\\n\n ValidateSerializedEntity:  missing metadata entry for %s\\n\n Valve.Source.Net\n VectorWS\n+Voice\n WriteFields\n WriteToBuffer Message %s is not initialized! Probably missing required fields!\\n\n Writing %d bits for path %s of serializer %s entity %d, this will fail to parse\\n\n [ Net Message Info: %s ]\\n\n+[ T-%.1fms  %d msgs  %.1fms ]\n [%s] DISCONNECTING. ProcessMessages has exhausted its CPU time budget.  %dms to process %d messages this call.  (Current message type: '%s')\\n\n [%s] Queued message count %d exceeds limit of %s=%d.  Allowing due to engine_frametime_warnings_enable=false\\n\n [%s] high frame misdelivery %.1f%%, %d/%d of %d frames dropped/reordered, %.0fms ping, %.0fms peak jitter\\n\n@@ -817,7 +833,16 @@ Writing %d bits for path %s of serializer %s entity %d, this will fail to parse\\\n [Group]\n [Name]\n [context entity 0x%p]\n+[ent %d] Decode path %s has polymorphic type id %u for pointer %s::%s [%d], which has %d types.  Rejecting the rest of the entity.\\n\n+[ent %d] Decode path %s is %d deep under array of primitives %s::%s [%d], expected exactly one level (the element index).  Rejecting the rest of the entity.\\n\n+[ent %d] Decode path %s is %d deep under primitive field %s::%s [%d], expected to end at the field.  Rejecting the rest of the entity.\\n\n+[ent %d] Decode path %s is below null element %d of array of pointers %s::%s [%d].  Discarding its fields.\\n\n+[ent %d] Decode path %s names embedded substruct %s::%s [%d] directly, which is useless.  Ignoring this field path.\\n\n+[ent %d] Decode path %s names field %d of %s, which has %d fields.  Rejecting the rest of the entity.\\n\n+[ent %d] Decode path %s repeats array of structs %s::%s [%d].  Rejecting the rest of the entity.\\n\n+[ent %d] Field %s::%s [%d] is a pointer to a primitive, which is not a supported combination of features.  Rejecting the rest of the entity.\\n\n [opaque]\n+[removed]\n \\nNon-networkables\\n\\n\n \\rBytes\n \\tCannotBeNetworked        = %s\\n\n@@ -874,7 +899,6 @@ decode\n decoding FAKE\n deleted\n delta >= 1u\n-delta_error\n depth %2d: %d serializers\\n\n drop\n dropped\n@@ -922,7 +946,6 @@ inpacket.message\n invalid!\n invalid_address\n latency_seconds\n-m_bCanStillRegisterCallbackPriorities\n m_nSharedChangeCallbackCount must be <= EncounteredSharedChangedCallbackBitVec_t::knFixedBitSize\n mark all recursively (%s)\n marked %s by user group %s\n@@ -933,7 +956,7 @@ marked by nobase\n marked by user group\n matrix3x4_t\n matrix3x4a_t\n-nIndex != m_priorityToOrderMap.InvalidIndex()\n+nIndex != s_priorityToOrderMap.InvalidIndex()\n nPriority != NETWORK_FIELD_CHANGE_DEFAULT_PRIORITY\n name,type,offset\n net_fakeclear: Cleared simulated network conditions\\n\n@@ -1000,13 +1023,13 @@ regex_error(error_syntax)\n reliable\n reliable_bits\n render_interpolation_fraction\n+s_bCanStillRegisterCallbackPriorities\n sent\n sentinel\n serializer,permutations\n server_framerate\n server_framerate_stddev\n showing permutations for %s\\n\n-shutdown\n single permutation\n skip\n steamappid"
        },
        {
          "filename": "game/bin/win64/panorama_strings.txt",
          "status": "modified",
          "additions": 0,
          "deletions": 1,
          "changes": 1,
          "patch": "@@ -5462,7 +5462,6 @@ file://{resources}/default_keybinds.cfg\n file://{resources}/keybinds.cfg\n file://{resources}/window_keybinds.cfg\n filename too big\n-fill\n fill \n fill-opacity\n fill-parent-flow"
        },
        {
          "filename": "game/bin/win64/rendersystemdx11_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -828,6 +828,7 @@ FindOrCreateTexture: Texture scope is unspecified!\\n\n FindOrCreateTexture: Texture usage is unspecified!\\n\n Floating point \"Predictor\" not supported with %d data format\n ForceHardwareSync\n+ForceLoadShader: invalid shader loading state %d, shader %p has likely been freed\\n\n FormatMessageW\n Found %d streaming textures in array, but in-flight count is %d\\n\n Found registry key %ls in %ls"
        },
        {
          "filename": "game/bin/win64/resourcecompiler_strings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 3,
          "changes": 5,
          "patch": "@@ -9020,7 +9020,7 @@ $key:FloatBitmap_t\n /vpk.privatekey.vdf\n /vpk.publickey.vdf\n 0123456789)\"\n-15:37:26\n+09:29:58\n 1:1: Tokens : ( PLUS | MINUS | MUL | DIV | COMMA | LPAREN | RPAREN | EQUALS | PERCENT | INT | FLOAT | ID | ML_COMMENT | SL_COMMENT | NL | WS );\n 1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );\n 241:1: FLOAT : ( ( MINUS )? ( DIGIT )+ '.' ( DIGIT )* ( EXP )? ( FLOATSUFFIX )? | ( MINUS )? ( DIGIT )+ ( EXP )? ( FLOATSUFFIX )? | ( MINUS )? '.' ( DIGIT )+ ( EXP )? ( FLOATSUFFIX )? );\n@@ -16041,7 +16041,6 @@ nParentIdx != NM_INVALID_INDEX\n nPriority\n nServerLOD\n nX=%? nY=%?\n-nXAO\n name_delta\n namespace\n navProperty_\n@@ -16198,7 +16197,7 @@ pathing_visibility_threshold\n pathingcoeffs\n pathingeq\n pathingmixlevel\n-pc64 Nov  2 2026 15:37:25\n+pc64 Nov 11 2026 09:30:19\n perchannel\n permissive_panorama_compiles\n permitrepeats"
        },
        {
          "filename": "game/bin/win64/resourceinfo.exe_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -7243,7 +7243,7 @@ x509_req\n x509_store\n x931\n yS/h\n-z0?g\\f\n+z0?g\\r\n zlVO\n zlib compression\n zone"
        },
        {
          "filename": "game/bin/win64/soundsystem_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -1594,6 +1594,7 @@ Event Type: STEP\\n\n Event VSNDS:\\n\n Event: %f pattern: %f glob: %f loops: %i\\n\n Event: %s\\n\n+Events\n Exponential\n Exponential Ramp\n Extra taps"
        },
        {
          "filename": "game/bin/win64/steamnetworkingsockets_strings.txt",
          "status": "modified",
          "additions": 61,
          "deletions": 19,
          "changes": 80,
          "patch": "@@ -496,6 +496,7 @@\n .?AVSymmetricCryptContextBase@@\n .cnf\n .conf\n+.fptable\n .include\n /%d%+d\n 0123456789\n@@ -758,6 +759,7 @@ Assertion Failed: !m_pNextTaskInQueue\n Assertion Failed: !m_pParentListenSocket\n Assertion Failed: !m_pPartner\n Assertion Failed: !m_pPartner->m_fakeIPRefRemote.IsValid()\n+Assertion Failed: !m_pPendingSTUNRequest\n Assertion Failed: !m_pPollGroup\n Assertion Failed: !m_pPollGroup->m_vecConnections.HasElement( this )\n Assertion Failed: !m_pPrevTaskForTarget\n@@ -880,8 +882,11 @@ Assertion Failed: a.m_adr == m_adr\n Assertion Failed: a.m_eProtocol == m_eProtocol\n Assertion Failed: a.m_pServer == nullptr\n Assertion Failed: a.port()\n+Assertion Failed: addr.GetType() == k_EIPTypeV4\n+Assertion Failed: addr.GetType() == k_EIPTypeV6\n Assertion Failed: addr.IsFakeIP()\n Assertion Failed: addrFakeIP.GetFakeIPType() == k_ESteamNetworkingFakeIPType_GlobalIPv4\n+Assertion Failed: addrPeer.GetType() == k_EIPTypeV6\n Assertion Failed: adr.GetType() == k_EIPTypeV4\n Assertion Failed: adr.HasIP()\n Assertion Failed: alt.m_nPenalty == k_nSDRAltAddressPenalty_PingOnly\n@@ -894,6 +899,7 @@ Assertion Failed: bStillInQueue == ( pSeg->m_pMsg->m_links.m_pQueue != nullptr )\n Assertion Failed: bStillInQueue || pSeg->m_pMsg->m_links.m_pNext == nullptr\n Assertion Failed: bStillInQueue || pSeg->m_pMsg->m_linksSecondaryQueue.m_pNext == nullptr\n Assertion Failed: begin <= end\n+Assertion Failed: bestRoute.m_idxViaCluster >= 0\n Assertion Failed: bucket.m_nMinPing <= bucket.m_nMaxPing\n Assertion Failed: bucket.m_nPingCount > 0\n Assertion Failed: buf[0] >= '0' && buf[0] <= '9'\n@@ -991,6 +997,7 @@ Assertion Failed: g_vecSharedClusterDataInConfigOrder.size() == m_vecClusters.si\n Assertion Failed: gapFilled->first < gapFilled->second\n Assertion Failed: gapFilled->first <= nSegBegin\n Assertion Failed: gapFilled->second > nSegBegin\n+Assertion Failed: h->first < h->second.m_nEnd\n Assertion Failed: hAPICall != k_uAPICallInvalid\n Assertion Failed: has_element( m_vecLinkedConnections, pConn )\n Assertion Failed: identity.m_cbSize <= sizeof( identity.m_genericBytes )\n@@ -1044,13 +1051,15 @@ Assertion Failed: len( m_vecAvailableTransports ) == i\n Assertion Failed: len( m_vecLinkedConnections ) == ( ( m_pConnection != nullptr ) ? 1 : 0 )\n Assertion Failed: links.m_pNext == nullptr\n Assertion Failed: links.m_pPrev == nullptr\n+Assertion Failed: localAddr.GetType() == k_EIPTypeV6\n Assertion Failed: lookup.m_nFirstShell > 0\n Assertion Failed: m->m_conn == m_hConnectionSelf\n Assertion Failed: m.m_nIndirectPing >= 0\n Assertion Failed: m_CertStatus.m_eAvail != k_ESteamNetworkingAvailability_NeverTried\n Assertion Failed: m_CertStatus.m_eAvail == k_ESteamNetworkingAvailability_Current\n Assertion Failed: m_Put >= 0\n Assertion Failed: m_TotalElements != InvalidIndex()\n+Assertion Failed: m_addrTURNServer.IsValid()\n Assertion Failed: m_arMarker[n-1].m_nID != m_arMarker[n].m_nID\n Assertion Failed: m_bConnectionInitiatedRemotely\n Assertion Failed: m_bCryptKeysValid\n@@ -1110,6 +1119,7 @@ Assertion Failed: m_idxServerMigrationTarget == -1\n Assertion Failed: m_info.m_cbPkt < sizeof(m_pkt)\n Assertion Failed: m_itNextInFlightPacketToTimeout != it\n Assertion Failed: m_itNextInFlightPacketToTimeout == m_mapInFlightPacketsByPktNum.end()\n+Assertion Failed: m_itPendingAck->second.m_nEnd == INT64_MAX\n Assertion Failed: m_keyPrivate.IsValid()\n Assertion Failed: m_keyPublic.IsValid()\n Assertion Failed: m_listReadyRetryReliableRange[ relSeg.m_hStatusOrRetry ] == hSeg\n@@ -1219,7 +1229,6 @@ Assertion Failed: m_pktNumInFlight == 0 && m_eActivityLevel == ELinkActivityLeve\n Assertion Failed: m_queueIndex == -1\n Assertion Failed: m_queueIndex >= 0\n Assertion Failed: m_queueRecvMessages.empty()\n-Assertion Failed: m_receiverState.m_itPendingAck->second.m_nEnd == INT64_MAX\n Assertion Failed: m_receiverState.m_itPendingNack->first < nExpectedNextPktNum\n Assertion Failed: m_response.m_nStatusCode >= 0\n Assertion Failed: m_routeSelector.m_vecClusters.size() == g_vecSharedClusterDataInConfigOrder.size()\n@@ -1283,6 +1292,7 @@ Assertion Failed: m_vecAvailableTransports.empty()\n Assertion Failed: m_vecConnections.Count() == i\n Assertion Failed: m_vecFakeIPRef.empty()\n Assertion Failed: m_vecLinkedConnections.empty()\n+Assertion Failed: m_vecPendingPeerRequests.empty()\n Assertion Failed: m_vecRoutes.empty()\n Assertion Failed: m_vecServers.empty()\n Assertion Failed: marker.m_nIndirectPing >= 0 && marker.m_nIndirectPing <= SteamNetworkPingLocationInternal_t::k_nMaxReasonablePing\n@@ -1367,6 +1377,7 @@ Assertion Failed: nPktNum > 0\n Assertion Failed: nPktNum > 0 && nPktNum < TLinkStatsTracker::m_nMaxRecvPktNum\n Assertion Failed: nPktNum >= 0\n Assertion Failed: nPktNumAckBegin >= 0\n+Assertion Failed: nPktNumBeforeSentinelGap <= m_statsEndToEnd.m_nMaxRecvPktNum\n Assertion Failed: nPktNumNackBegin >= 0\n Assertion Failed: nRawScore >= 0\n Assertion Failed: nReasonCode == k_ESteamNetConnectionEnd_Misc_P2P_Rendezvous\n@@ -1525,6 +1536,8 @@ Assertion Failed: pTask->m_eTaskState == CQueuedTask::k_ETaskState_ReadyToDelete\n Assertion Failed: pTask->m_pTarget == nullptr\n Assertion Failed: pTask->m_pTarget == this\n Assertion Failed: pThis->m_nReplyTimeoutsSinceLastRecv == 0\n+Assertion Failed: pThisPair->m_nState != kICECandidatePairState_InProgress\n+Assertion Failed: pThisPair->m_nState == kICECandidatePairState_InProgress\n Assertion Failed: pTransport\n Assertion Failed: pTransport && pTransport->m_listRelaySessions.IsEmpty()\n Assertion Failed: pVal->m_pInherit\n@@ -1559,6 +1572,7 @@ Assertion Failed: r.m_nSortScoreLocal < 9999\n Assertion Failed: r.pop_id() == c.m_pConfig->m_id\n Assertion Failed: relInfo.m_nSentReliableSegRefCount > 0\n Assertion Failed: relSeg.m_nRefCount > 0\n+Assertion Failed: remoteCandidate.m_addr.GetType() == k_EIPTypeV4\n Assertion Failed: result != 0\n Assertion Failed: result == -1\n Assertion Failed: route.m_idxClusterLocal == pClusterData->m_idxInConfig\n@@ -1854,13 +1868,16 @@ C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steam\n C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_connections.cpp\n C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_connections.h\n C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_ice_client.cpp\n-C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_lowlevel.cpp\n C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_lowlevel.h\n+C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_lowlevel_misc.cpp\n C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_p2p.cpp\n C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_p2p.h\n C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_p2p_ice.cpp\n C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_snp.cpp\n C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_snp.h\n+C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_socketthread.cpp\n+C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_spew.cpp\n+C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_taskqueue.cpp\n C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\clientlib\\steamnetworkingsockets_udp.cpp\n C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\sdr\\steamdatagram_internal.h\n C:\\buildworker\\sdr_public_win64\\build\\src\\steamnetworkingsockets\\sdr\\steamdatagram_network_config.cpp\n@@ -2112,16 +2129,13 @@ CSteamNetworkingICESession::GatherInterfaces\n CSteamNetworkingICESession::OnPacketReceived\n CSteamNetworkingICESession::Think\n CSteamNetworkingICESession::Think_TestPeerConnectivity\n-CSteamNetworkingICESession::UpdateHostCandidates\n CSteamNetworkingMessages::BHandleNewIncomingConnection\n CSteamNetworkingMessages::DestroySession\n CSteamNetworkingMessages::FindOrCreateChannel\n CSteamNetworkingMessages::FreeResources\n CSteamNetworkingSockets::Destroy\n CSteamNetworkingSockets::KillConnections\n CSteamNetworkingSocketsSDR::Destroy\n-CSteamNetworkingSocketsSTUNRequest::CreatePeerConnectivityCheckRequest\n-CSteamNetworkingSocketsSTUNRequest::SendBindRequest\n CSteamNetworkingSocketsSTUNRequest::Think\n CSteamNetworkingSocketsSteamBase::BInitSteamBase\n CSteamNetworkingUtils::CSteamNetworkingUtils\n@@ -2299,7 +2313,6 @@ ConvertInterfaceGuidToLuid\n ConvertInterfaceGuidToLuid failed 0x%x\n ConvertInterfaceLuidToIndex\n ConvertInterfaceLuidToIndex failed 0x%x\n-Could not bind to %s.  %s\\n\n Could not find secondary wifi adapter, even though wlan_intf_opcode_secondary_sta_synchronized_connections returned %u items\n CreateEvent() call failed.  Error code 0x%08x.\n CreateFakeUDPPort\n@@ -2750,7 +2763,6 @@ Failed to negotiate mutually-agreeable cipher\n Failed to parse %s value %s\n Failed to parse '%s'.  %s\\n\n Failed to parse JSON %s\n-Failed to parse address '%s' as an IP address.\n Failed to parse authorized client identity.  %s\n Failed to parse gameserver identity.  %s\n Failed to parse result JSON.  Line %d, offset %d: %s\n@@ -2797,12 +2809,15 @@ FakeUDPSession::Think\n Fatal Assertion Failed: (uint8 *)pEncryptedDataAndTag + cbEncryptedWithoutTag == pOut\n Fatal Assertion Failed: EVP_DecryptInit_ex( ctx, nullptr, nullptr, nullptr, (const uint8*)pIV ) == 1\n Fatal Assertion Failed: EVP_DigestFinal(ctx.ctx, *pOutDigest, &digest_len) == 1\n+Fatal Assertion Failed: EVP_DigestFinal(ctx.ctx, *pOutputDigest, &digest_len) == 1\n+Fatal Assertion Failed: EVP_DigestInit_ex(ctx.ctx, EVP_md5(), 0) == 1\n Fatal Assertion Failed: EVP_DigestInit_ex(ctx.ctx, EVP_sha256(), 0) == 1\n Fatal Assertion Failed: EVP_DigestInit_ex(mdctx.ctx, digest, 0) == 1\n Fatal Assertion Failed: EVP_DigestSign( ctx, (unsigned char *)pSignatureOut, &siglen, (const unsigned char *)pData, cbData ) == 1\n Fatal Assertion Failed: EVP_DigestSignFinal(mdctx.ctx, *pOutputDigest, &needed) == 1\n Fatal Assertion Failed: EVP_DigestSignInit( ctx, nullptr, nullptr, nullptr, pkey ) == 1\n Fatal Assertion Failed: EVP_DigestSignInit(mdctx.ctx, 0, digest, 0, pkey.ctx) == 1\n+Fatal Assertion Failed: EVP_DigestUpdate(ctx.ctx, pData, cbData) == 1\n Fatal Assertion Failed: EVP_DigestUpdate(ctx.ctx, pInput, cbInput) == 1\n Fatal Assertion Failed: EVP_DigestUpdate(mdctx.ctx,pubData,cubData) == 1\n Fatal Assertion Failed: EVP_DigestVerifyInit( ctx, nullptr, nullptr, nullptr, pkey ) == 1\n@@ -2831,6 +2846,7 @@ Field=\n FinalizeLocalCrypto\n FindServerDataForCluster\n Flags indicate presence of TimeSincePrev, but no room for it.  Stats message size %d, packet size %d\n+FlsGetValue2\n FlushMessagesOnConnection\n For best results, preload the config.  (See SDR_NETWORK_CONFIG env var)\\n\n Found existing connection [%s].  Only one symmetric connection can be active at a time.\n@@ -2907,12 +2923,10 @@ GetTickCount64\n Giving up on %s after %d consecutive ping timeouts\n Giving up waiting for DualWifi adapter to be ready for secondary address access to %s.  (We waited ~%.1fs)\\n\n Got SDR network config.  %s\n-Got a rendezvous candidate at \"%s\"\\n\n Got callback for wrong request?\n Got cert for %s from Steam\\n\n Got incoming FakeIP connection request when we already had a connection.  This could legit happen due to race condition we aren't handling right now.\n Got incoming messages session connection request when we already had a connection.  This could happen legit, but we aren't handling it right now.\n-Got remote candidate '%s'\\n\n HKDF\n HMAC\n HMAC DSTU Gost 34311-95\n@@ -2942,6 +2956,30 @@ IANA\n ICC or token signature\n ICE connection dropped after successful negotiation\n ICE not enabled by local user options\n+ICE selected candidate %s -> %s -> %s.\n+ICE selected candidate %s -> %s.\n+ICE: Could not bind to %s, skipping interface.  %s\\n\n+ICE: Dropping Data Indication from %s: not our TURN server (%s).\\n\n+ICE: Dropping Data Indication from TURN: missing peer-address or data attribute.\\n\n+ICE: Dropping STUN message 0x%x from %s.\\n\n+ICE: Dropping STUN response 0x%x from %s: attribute parse or integrity failure.\\n\n+ICE: Dropping binding request: USERNAME length %u exceeds max %u.\n+ICE: Dropping binding request: attribute parse or integrity failure.\\n\n+ICE: Dropping peer candidate with invalid address %s\\n\n+ICE: Host candidate has invalid address %s - gathering bug\n+ICE: Incoming binding request from %s to %s.\\n\\n\n+ICE: Incorrect username length; at least %d expected, got %d.\n+ICE: Incorrect username: got '%s' expected '%s'.\n+ICE: Invalid username; no : found in %s\n+ICE: Local interface %s removed\\n\n+ICE: Role conflict -- we are Controlled but peer also sent ICE-CONTROLLED.\\n\n+ICE: Role conflict -- we are Controlling but peer also sent ICE-CONTROLLING.\\n\n+ICE: STUN request 0x%x to %s timed out.\\n\n+ICE: STUN server %s gave us invalid reflexive address %s -- ignoring\\n\n+ICE: Sending a STUN binding response to %s from %s.\n+ICE: TURN Refresh timed out for %s -- tearing down relay allocation\\n\n+ICE: TURN server %s gave us invalid relay address %s -- ignoring allocation\\n\n+ICE: TURN server %s sent 401, retrying with long-term credentials for user '%s'.\\n\n ID%llu\n IDEA-CBC\n IDEA-CFB\n@@ -3016,15 +3054,12 @@ Ignoring unknown control message %d from %s\n Ignoring unsolicited/spoofed/late packet from %s.\n Ignoring weird timestamp %llu in ChallengeReply, current time is %llu.\\n\n Ignoring weird timestamp %llu in ConnectOK, current time is %llu, remote delay was %lld.\\n\n-Incoming binding request from %s to %s.\\n\\n\n Incorrect challenge.  Could be spoofed.\n Incorrect client challenge / connection ID %x in RouterPingReply from %s.  Reply could be spoofed, ignoring.\n Incorrect connection ID\n Incorrect connection ID, when we do have a connection for this address.  Could be spoofed, ignoring.\n Incorrect connection ID.  Message is stale or could be spoofed, ignoring.\n Incorrect routing secret.  (Packet spam, or relay using routing secret from previous server instance).\n-Incorrect username length; at least %d expected, got %d.\n-Incorrect username: got '%s' expected '%s'.\n Independent\n Inherit all\n Inhibit Policy Mapping\n@@ -3051,6 +3086,7 @@ International Organizations\n Invalid 25519 key type\n Invalid AES-GCM key size\n Invalid DH key\n+Invalid IP type %d\n Invalid LocalVirtualPort %d\n Invalid P2P_Transport_ICE_Implementation value\n Invalid SDR_PRIVATE_KEY or SDR_CERT.  %s\n@@ -3088,7 +3124,6 @@ Invalid routing blob (%d bytes)\n Invalid signature\n Invalid signature length\n Invalid state %d\n-Invalid username; no : found in %s\n Invalidating cached routes when we shouldn't!  %s\n Invalidity Date\n Iphlpapi.dll\n@@ -3269,6 +3304,7 @@ Nack count of %llu<<3 is crazy\n Nack range underflow, end=%lld, num=%lld\n NagleTime\n Name lookup for \"%s\" failed - %s\\n\n+Nesting depth limit (%d) exceeded\n Netscape\n Netscape Base Url\n Netscape CA Policy Url\n@@ -3682,9 +3718,11 @@ PUBLIC KEY\n Packet is %d bytes, must be padded to at least %d bytes.\n Packet is too small\n Packet of size %d is too small.\n+PacketGaps map not increasing\n PacketTraceMaxBytes\n Parse failure.  Length=%d, data begins %s\n Payload exceeded max size of %d\\n\n+Peer connectivity-check pair already has a request in flight\n Peer is running old software and needs to be udpated\n Peer is running old software and needs to be updated.  (V%u, >=V%u is required)\n Peer is using old protocol and cannot receive multiple lanes\n@@ -4085,6 +4123,7 @@ STEAMNETWORKINGSOCKETS_LOG_FILE\n STEAMNETWORKINGSOCKETS_LOG_LEVEL\n STORE lib\n STORE routines\n+STUN USERNAME exceeds RFC limit\n SXNET\n SXNETID\n SXNET_add_id_INTEGER\n@@ -4124,7 +4163,6 @@ Sender sent reliable stream pos using %llx mod %llx, expected next %llx\\n\n Sender tried to send on invalid lane %d; max is %d\n Sending ConnectRequest for ConnectionID %u to %s via primary relay %s.\\n\n Sending NoConnection to %s: { %s }\\n\n-Sending a STUN response to %s from %s.\n Sending ping probe to %s in %s\\n\n Sent ack %u not pending.  %d: %u %u %u %u %u\n Serialized inline stats message (%s) is %d bytes, still won't fit, ever after clearing connection quality stats?  %s\n@@ -4232,7 +4270,7 @@ SteamServerConnectFailure_t\n SteamServersConnected_t\n SteamServersDisconnected_t\n SteamnetworkingSockets service thread waited %dms for lock!  This directly adds to network latency!  It could be a bug, but it's usually caused by general performance problem such as thread starvation or a debug output handler taking too long.\n-Stray data packet from host with no connection.  Ignoring.\n+Stray data packet from host with no connection.\n Strong Extranet ID\n Subject Information Access\n Superseded\n@@ -4285,6 +4323,7 @@ TS_TST_INFO_set_serial\n TS_TST_INFO_set_time\n TS_TST_INFO_set_tsa\n TS_VERIFY_CTX_new\n+TURN server address not in m_vecTURNServers\n TYPE=\n Taking global lock while already holding lock '%s'\n Taking lock '%s' and then '%s', while not holding the global lock\n@@ -4321,8 +4360,10 @@ TimeoutInitial\n To use symmetric connect, remote identity must be specified\n Told peer to stop acking up to %lld, but latest packet we have sent is %lld\n Too late!\n+Too many chunks to send via TURN relay (max 3)\n Too many connections.\n Too many ephemeral FakeUDP ports.\\n\n+Too many extra attrs for TURN request\n Trailer Field: 0x\n TransportChangeConfirm\n Tried to connect request, but crypt not ready\n@@ -4436,8 +4477,8 @@ Unsupported key type %d\n Unsupported protocol %d\n Unterminated string\n Until we obtain the config, we will not be able to accept clients!\\n\n+Untracked STUN retransmit type 0x%x\n Unused\n-UseCandidate was set!\n Using cert from SDR_PRIVATE_KEY and SDR_CERT environment vars\\n\n VIDEOTEXSTRING\n VISIBLESTRING\n@@ -4711,12 +4752,14 @@ ZUINT64\n [%s] End-to-end sequence number is duplicate or old, or fails to decrypt, but relay sequence number is OK?\n [%s] Expecting %d acks!  %04x=%lld %04x=%lld %04x=%lld ... %04x=%lld %04x=%lld %04x=%lld\n [%s] Failed crypto init in ConnectOK packet.  %s\n+[%s] Failed to parse remote candidate '%s'\\n\n [%s] Failed to send end-to-end stats msg to primary relay %s to confirm end-to-end connectivity\n [%s] Failed to set option %d while implicitly accepting.  Ignoring failure!\n [%s] Forgetting relay session %s.  Last communication was %.1f seconds ago\n [%s] Front ping %d is greater than measured end-to-end ping %d.\\n\n [%s] Got P2P signal from %s.  Wrong connection type!\\n\n [%s] Got P2P signal from wrong remote identity '%s'\\n\n+[%s] Got remote candidate '%s'\\n\n [%s] Got valid end-to-end packet (%s) via %s.  Leaving finding route, entering connected state.\n [%s] Guessed ICE failure to be %d: %s\\n\n [%s] ICE already failed (%d %s) while changing role to server.  We won't try again.\n@@ -4914,14 +4957,14 @@ ZUINT64\n \\n%*sZone: %s, User: \n \\nBytes\n \\nExtraInfo\n-\\n\\nSelected candidate %s -> %s.\\n\\n\n \\n\\tIPSec/IKE/Oakley curve #3 over a 155 bit binary field.\\n\\tNot suitable for ECDSA.\\n\\tQuestionable extension field!\n \\n\\tIPSec/IKE/Oakley curve #4 over a 185 bit binary field.\\n\\tNot suitable for ECDSA.\\n\\tQuestionable extension field!\n \\nkhT\n \\rSize\n \\tLane\n \\vssh-ed25519\n _OPENSSL_isservice\n+__preserve_none\n a null shared library handle was used\n a2d_ASN1_OBJECT\n a2i_ASN1_INTEGER\n@@ -6956,7 +6999,7 @@ lastUpdate\n lcO/<1\\r=,!\\r-@@@\n length too long\n level_add_node\n-lib Apr 29 2026 21:22:22\n+lib Aug  5 2026 18:42:40\n lib(%lu)\n linebuffer_ctrl\n linebuffer_new\n@@ -8061,7 +8104,6 @@ steamnetworkingsockets_messages.proto\n steamnetworkingsockets_messages_certs.proto\n steamnetworkingsockets_messages_udp.proto\n stop_waiting offset\n-stop_waiting past sentinel gap\n stop_waiting pktNum %llu offset %llu\n store init error\n str:"
        },
        {
          "filename": "game/bin/win64/tier0_strings.txt",
          "status": "modified",
          "additions": 3,
          "deletions": 2,
          "changes": 5,
          "patch": "@@ -430,6 +430,7 @@ $xmm9\n ( %u: max procs %u, active proc %u, active mask 0x%llx )\n ( cubGap & 15 ) == 0\n (%d,%d)\n+(-AVX512) \n (Missing)\n (None)\n (Unaccounted)\n@@ -774,7 +775,6 @@ $xmm9\n ;BIb?\n ;srv*http://symbols/windows\n <!-- kv3 encoding:%s:version{%s} format:%s:version{%s} -->\\n\n-<!-- schema \n </link>\n </script>\n << NULL >>\\n\n@@ -4652,6 +4652,7 @@ Outflow_NPCUseScriptedAbility\n Outflow_Simultaneous\n OutputDebugStringA\n OverrideQuantizedFloatEncoderAlias\n+P(YX\n P4_EXTRACT_CMD=p4.exe print -o %srcsrvtrg% -q \"//%var3%#%var4%\"\\n\n P4_EXTRACT_TARGET=%targ%\\%var2%\\%fnbksl%(%var3%)\\%var4%\\%fnfile%(%var1%)\\n\n PARTICLE_DEPTH_FEATHERING_OFF\n@@ -7967,6 +7968,7 @@ modf\n moredetailed\n moveto\n multiplayer_break\n+n<!-- schema \n nBits != 32\n nInterruptability\n nMax\n@@ -7975,7 +7977,6 @@ nOffset < m_nAllocationSize\n nOverrideCPField\n nSwitchValue\n nTries < 10000000\n-n\\f\"pA3Q\n name\n nan(ind)\n nan(snan)"
        },
        {
          "filename": "game/bin/win64/tools/met_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -235,12 +235,12 @@\n // THIS FILE IS AUTO-GENERATED\\n\n //-------------------------------------------------\\n\n 0123456789)\"\n+09:24:45\n 0=Wrap,1=Mirror,2=Clamp,3=Border,4=MirrorOnce\n 1 texel = %1px\n 1/%1x\n 1/2/3\n 128 x 128\n-15:35:57\n 1:1 current mip\n 1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );\n 1AboutAction()"
        },
        {
          "filename": "game/bin/win64/vconsole2.exe_strings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -481,12 +481,12 @@ $B0B\n .vsky\n .webp\n 0.0.0.0\n+09:24:06\n+09:25:01\n 0BCDEFGHIJKLMNOPQRSTUVWXYZ1BCDEFGHIJKLMNOPQRSTUVWXYZ2BCDEFGHIJKLMNOPQRSTUVWXYZ3BCDEFGHIJKLMNOPQRSTUVWXYZ4BCDEFGHIJKLMNOPQRSTUVWXYZ\\n\n 0x%llx\n 127.0.0.0\n 127.0.0.1:%d\n-15:33:14\n-15:33:36\n 172.16.0.0\n 1AboutAction()\n 1NextFrame()"
        },
        {
          "filename": "game/bin/win64/video64_strings.txt",
          "status": "modified",
          "additions": 0,
          "deletions": 1,
          "changes": 1,
          "patch": "@@ -10618,7 +10618,6 @@ time not ascii format\n time stamp routines\n time syscall error\n timeStamping\n-timescale\n timestampsign\n tinet\n tls illegal exporter label"
        },
        {
          "filename": "game/bin/win64/vrad3_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -2307,7 +2307,7 @@ path_trace_triangles_gpu\n path_trace_triangles_gpu_init\n path_trace_triangles_gpu_shutdown\n path_trajectory\n-pc64 Nov  2 2026 15:32:44\n+pc64 Nov 11 2026 09:24:00\n physicsSimplificationError\n physicsSimplificationOverride\n pinEnabled"
        },
        {
          "filename": "game/core/shaders_vulkan_dir/shaders/vfx/copytexture.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -113,7 +113,7 @@ PS\n \tTexture3D g_tCopyColor < Attribute(\"CustomTexture1\"); SrgbRead(true); >;\n \tTexture2D g_tDepthTexture < Attribute(\"CustomTexture0\"); SrgbRead(false); >;\n \tfloat3 g_vColorTint < Default3(1, 1, 1); Attribute(\"ColorTint\"); UiType(VectorText); >;\n-\tfloat4 g_vScaleAndBias < Default2(0, 1); Attribute(\"ScaleAndBias\"); UiType(VectorText); >;\n+\tfloat4 g_vScaleAndBias < Default4(0, 1, 0, 1); Attribute(\"ScaleAndBias\"); UiType(VectorText); >;\n \t\n \t// Color\n \tCreateInputTexture2D(TextureColorWarp3D, Srgb, 8, \"\", \"_z000\", \"Color,10/Color Warp\", Default4(1, 1, 1, 1));"
        },
        {
          "filename": "game/core/shaders_vulkan_dir/shaders/vfx/generic.slang",
          "status": "modified",
          "additions": 3,
          "deletions": 3,
          "changes": 6,
          "patch": "@@ -299,9 +299,9 @@ PS\n \tCreateInputTexture2D(TextureGlossiness, Linear, 8, \"\", \"_gloss\", \"Lighting,30/Gloss,20/10\", Default4(0.5, 0.5, 0.5, 0));\n \tCreateInputTexture2D(TextureMetalness, Linear, 8, \"\", \"_metal\", \"Lighting,30/Metalness,30/10\", Default4(0, 0, 0, 0));\n \tCreateInputTexture2D(TextureReflectance, Linear, 8, \"\", \"_refl\", \"Lighting,30/Reflectance,10/10\", Default4(0.1, 0.1, 0.1, 0));\n-\tfloat2 g_vGlossinessRange < Default(0); UiType(VectorText); UiGroup(\"Lighting,30/Gloss/20\"); >;\n-\tfloat2 g_vMetalnessRange < Default(0); UiType(VectorText); UiGroup(\"Lighting,30/Metalness/20\"); >;\n-\tfloat2 g_vReflectanceRange < Default(0); UiType(VectorText); UiGroup(\"Lighting,30/Reflectance/20\"); >;\n+\tfloat2 g_vGlossinessRange < Default2(0, 1); UiType(VectorText); UiGroup(\"Lighting,30/Gloss/20\"); >;\n+\tfloat2 g_vMetalnessRange < Default2(0, 1); UiType(VectorText); UiGroup(\"Lighting,30/Metalness/20\"); >;\n+\tfloat2 g_vReflectanceRange < Default2(0, 1); UiType(VectorText); UiGroup(\"Lighting,30/Reflectance/20\"); >;\n \t\n \t// Normal Map\n \tCreateInputTexture2D(TextureNormal, Linear, 8, \"NormalizeNormals\", \"_normal\", \"Normal Map,20\", Default4(0.5, 0.5, 1, 0));"
        },
        {
          "filename": "game/core/shaders_vulkan_dir/shaders/vfx/panorama.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -110,7 +110,7 @@ PS\n \tTexture2D g_tTexture2 < Attribute(\"Texture2\"); SrgbRead(false); >;\n \tTexture2D g_tTexture3 < Attribute(\"Texture3\"); SrgbRead(false); >;\n \tTexture2D g_tTexture4 < Attribute(\"Texture4\"); SrgbRead(false); >;\n-\tfloat2 g_vBlurMultiplyVec < Default(0); Attribute(\"BlurMultiplyVec\"); UiType(VectorText); >;\n+\tfloat2 g_vBlurMultiplyVec < Default2(0, 1); Attribute(\"BlurMultiplyVec\"); UiType(VectorText); >;\n \t\n \t\n \t// Variant parameters"
        },
        {
          "filename": "game/core/shaders_vulkan_dir/shaders/vfx/refract.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -175,7 +175,7 @@ PS\n \tTexture2D g_tNormal < Channel(RGBA, MipNormal(TextureNormal), Linear); OutputFormat(DXT5); SrgbRead(false); >;\n \tTexture2D g_tNormal2 < Channel(RGBA, MipNormal(TextureNormal2), Linear); OutputFormat(DXT5); SrgbRead(false); >;\n \tTexture2D g_tRefractTint < Channel(RGBA, MipNormal(TextureTintTexture), Linear); OutputFormat(DXT5); SrgbRead(false); >;\n-\tfloat4 g_vFBCopyTextureRect < Default2(0, 0); Attribute(\"FrameBufferCopyRectangle\"); UiType(VectorText); >;\n+\tfloat4 g_vFBCopyTextureRect < Default4(0, 0, 1, 1); Attribute(\"FrameBufferCopyRectangle\"); UiType(VectorText); >;\n \t\n \t// Refraction\n \tCreateInputTexture2D(TextureNormal, Linear, 8, \"\", \"_normal\", \"Refraction\", Default4(0.5, 0.5, 1, 0));"
        },
        {
          "filename": "game/core/shaders_vulkan_dir/shaders/vfx/test.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -272,7 +272,7 @@ PS\n \t[[vk::constant_id(0)]] int g_nGPUVendorID < UiType(Slider); Expression(S_GPU_VENDOR_ID); >;\n \tint g_nValue < UiType(Slider); >;\n \tTexture2D g_tColor < Channel(RGB, Box(TextureColor), Srgb); OutputFormat(DXT1); SrgbRead(true); >;\n-\tfloat3 g_vModulationColor2 < Default(0); UiType(Color); >;\n+\tfloat3 g_vModulationColor2 < Default2(0, 1); UiType(Color); >;\n \tfloat3 g_vModulationColor3 < Default3(1, 1, 0.5); UiType(Color); >;\n \t\n \t// Color"
        },
        {
          "filename": "game/core/shaders_vulkan_dir/shaders/vfx/tools_sprite.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -307,7 +307,7 @@ PS\n \tTexture2D g_tColorA < Channel(RGB, Box(TextureColor), Srgb); OutputFormat(DXT1); SrgbRead(true); >;\n \tTexture2D g_tColorB < Channel(RGB, AlphaWeighted(TextureColor, TextureTranslucency), Srgb); Channel(A, PreserveCoverage(TextureTranslucency), Linear); OutputFormat(DXT5); SrgbRead(true); >;\n \tTexture2D g_tColorC < Channel(RGBA, Box(TextureColor), Srgb); OutputFormat(DXT5); SrgbRead(true); >;\n-\tfloat4 g_vBorderColor < Default(0); Attribute(\"BorderColor\"); UiType(VectorText); >;\n+\tfloat4 g_vBorderColor < Default4(0, 0, 0, 1); Attribute(\"BorderColor\"); UiType(VectorText); >;\n \t\n \t// Color\n \tCreateInputTexture2D(TextureColor, Srgb, 8, \"\", \"_color\", \"Color\", Default4(1, 1, 1, 0));"
        },
        {
          "filename": "game/core/shaders_vulkan_dir/shaders/vfx/tools_wireframe.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -68,7 +68,7 @@ VS\n \t\n \t// Override Color\n \tfloat g_OverrideColorFactor < UiType(Slider); UiGroup(\"Override Color\"); >;\n-\tfloat4 g_vOverrideColor < Default(0); UiType(Color); UiGroup(\"Override Color\"); Expression(SrgbGammaToLinear(this)); >;\n+\tfloat4 g_vOverrideColor < Default4(0, 0, 0, 1); UiType(Color); UiGroup(\"Override Color\"); Expression(SrgbGammaToLinear(this)); >;\n \t\n \t// Source 2 Viewer - https://valveresourceformat.github.io\n \t// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup"
        },
        {
          "filename": "game/csgo/bin/win64/client_strings.txt",
          "status": "modified",
          "additions": 34,
          "deletions": 154,
          "changes": 188,
          "patch": "@@ -2106,6 +2106,7 @@ $taser_charge\n %s PARAMETERS\n %s PRIVATE KEY\n %s Tick\n+%s [%d]\n %s [%s%s%s]###%p\n %s algorithm \"%s\" unsupported\\n\n %s at %.0f %.0f %0.f uses model %s, which has an invalid prop_data type. DELETED.\\n\n@@ -2538,6 +2539,7 @@ $taser_charge\n (%0.2f): %s\n (%d) Dynamic prop %s (model %s): no sequence named:%s\\n\n (%d) Name: %s (%s)\n+(%f, %f, %f)\n (%s)Found new peer %u\\n\n (%s)Keeping existing peer %u\\n\n (%s,%s)\n@@ -7892,6 +7894,7 @@ $taser_charge\n .?AVCHeatMap@@\n .?AVCHelpRequestLogs_UploadUserApplicationLog_Request@@\n .?AVCHelpRequestLogs_UploadUserApplicationLog_Response@@\n+.?AVCHiddenFieldValuePrinter@@\n .?AVCHistogramReadback@@\n .?AVCHistogramRenderer@@\n .?AVCHitboxComponent@@\n@@ -8609,139 +8612,6 @@ $taser_charge\n .?AVCProtoBufMsgMemoryPoolBase@GCSDK@@\n .?AVCProtoBufNetPacket@GCSDK@@\n .?AVCProtoBufSharedObjectBase@GCSDK@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BAA@VCP2P_TextMessage@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BAB@VCP2P_Voice@@$05$01$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BAC@VCP2P_Ping@@$0A@$00$0A@@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BBI@V?$CBaseCmdKeyValues@VCClientMsg_CustomGameEvent@@@@$0O@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BBJ@V?$CBaseCmdKeyValues@VCClientMsg_CustomGameEventBounce@@@@$0O@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BBK@VCClientMsg_ClientUIEvent@@$0O@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BCN@VCCSUsrMsg_VGUIMenu@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BDN@VCCSUsrMsg_SendAudio@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BDO@VCCSUsrMsg_RawAudio@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEB@VCCSUsrMsg_Damage@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEC@VCCSUsrMsg_RadioText@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BED@VCCSUsrMsg_HintText@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEE@VCCSUsrMsg_KeyHintText@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEF@VCCSUsrMsg_ProcessSpottedEntityUpdate@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEH@VCCSUsrMsg_AdjustMoney@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEK@VCCSUsrMsg_KillCam@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEO@VCCSUsrMsg_MatchEndConditions@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEP@VCCSUsrMsg_DisconnectToLobby@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFA@VCCSUsrMsg_PlayerStatsUpdate@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFJ@VCCSUsrMsg_CallVoteFailed@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFK@VCCSUsrMsg_VoteStart@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFL@VCCSUsrMsg_VotePass@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFM@VCCSUsrMsg_VoteFailed@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFN@VCCSUsrMsg_VoteSetup@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFO@VCCSUsrMsg_ServerRankRevealAll@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFP@VCCSUsrMsg_SendLastKillerDamageToClient@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGA@VCCSUsrMsg_ServerRankUpdate@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGJ@VCCSUsrMsg_SendPlayerItemDrops@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGK@VCCSUsrMsg_RoundBackupFilenames@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGL@VCCSUsrMsg_SendPlayerItemFound@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGM@VCCSUsrMsg_ReportHit@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGN@VCCSUsrMsg_XpUpdate@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGO@VCCSUsrMsg_QuestProgress@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGP@VCCSUsrMsg_ScoreLeaderboardData@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHA@VCCSUsrMsg_PlayerDecalDigitalSignature@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHB@VCCSUsrMsg_WeaponSound@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHC@VCCSUsrMsg_UpdateScreenHealthBar@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHD@VCCSUsrMsg_EntityOutlineHighlight@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHE@VCCSUsrMsg_SSUI@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHF@VCCSUsrMsg_SurvivalStats@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHG@VCCSUsrMsg_DisconnectToLobby@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHH@VCCSUsrMsg_EndOfMatchAllPlayersData@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHI@VCCSUsrMsg_PostRoundDamageReport@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHL@VCCSUsrMsg_RoundEndReportData@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHM@VCCSUsrMsg_CurrentRoundOdds@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHN@VCCSUsrMsg_DeepStats@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHP@VCCSUsrMsg_ShootInfo@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BID@VCCSUsrMsg_RecurringMissionSchema@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BIE@VCCSUsrMsg_SendPlayerLoadout@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BIF@VCCSUsrMsg_WeaponMagDrop@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJA@VCMsgTEEffectDispatch@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJB@VCMsgTEArmorRicochet@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJC@VCMsgTEBeamEntPoint@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJD@VCMsgTEBeamEnts@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJE@VCMsgTEBeamPoints@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJF@VCMsgTEBeamRing@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJI@VCMsgTEBubbles@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJJ@VCMsgTEBubbleTrail@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJK@VCMsgTEDecal@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJL@VCMsgTEWorldDecal@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJM@VCMsgTEEnergySplash@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJN@VCMsgTEFizz@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJP@VCMsgTEGlowSprite@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKA@VCMsgTEImpact@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKB@VCMsgTEMuzzleFlash@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKC@VCMsgTEBloodStream@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKD@VCMsgTEExplosion@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKE@VCMsgTEDust@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKF@VCMsgTELargeFunnel@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKG@VCMsgTESparks@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKH@VCMsgTEPhysicsProp@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKK@VCMsgTESmoke@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BME@VCMsgTEFireBullets@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BMF@VCMsgPlayerBulletHit@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0GF@VCUserMessageAchievementEvent@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0GI@VCUserMessageCurrentTimescale@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0GJ@VCUserMessageDesiredTimescale@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0GK@VCUserMessageFade@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0GO@VCUserMessageHudMsg@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0GP@VCUserMessageHudText@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HB@VCUserMessageColoredText@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HC@VCUserMessageRequestState@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HD@VCUserMessageResetHUD@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HE@VCUserMessageRumble@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HF@VCUserMessageSayText@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HG@VCUserMessageSayText2@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HH@VCUserMessageSayTextChannel@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HI@VCUserMessageShake@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HJ@VCUserMessageShakeDir@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HK@VCUserMessageWaterShake@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HM@VCUserMessageTextMsg@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HN@VCUserMessageScreenTilt@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IA@VCUserMessageVoiceMask@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IC@VCUserMessageSendAudio@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0ID@VCUserMessageItemPickup@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IE@VCUserMessageAmmoDenied@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IG@VCUserMessageShowMenu@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IH@VCUserMessageCreditsMsg@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IJ@VCEntityMessageScreenOverlay@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IL@VCEntityMessagePropagateForce@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IM@VCEntityMessageDoSpark@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IO@VCUserMessageCloseCaptionPlaceholder@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IP@VCUserMessageCameraTransition@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JA@VCUserMessageAudioParameter@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JB@VCUserMsg_ParticleManager@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JC@VCUserMsg_HudError@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JE@V?$CBaseCmdKeyValues@VCUserMsg_CustomGameEvent@@@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JG@VCUserMessageHapticsManagerPulse@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JH@VCUserMessageHapticsManagerEffect@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JJ@VCUserMessageUpdateCssClasses@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JK@VCUserMessageServerFrameTime@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JL@VCUserMessageLagCompensationError@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JM@VCUserMessageRequestDllStatus@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JN@VCUserMessageRequestUtilAction@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0KA@VCUserMessageRequestInventory@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0KC@VCUserMessageRequestDiagnostic@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0KF@VCUserMessage_NotifyResponseFound@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0KG@VCUserMessage_PlayResponseConditional@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0KK@VCUserMessageRemoteServerResponse@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0MJ@VCMsgPlaceDecalEvent@@$0M@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0MK@VCMsgClearWorldDecalsEvent@@$0M@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0ML@VCMsgClearEntityDecalsEvent@@$0M@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0MM@VCMsgClearDecalsForEntityEvent@@$0M@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0MN@VCMsgSource1LegacyGameEventList@@$09$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0MO@VCMsgSource1LegacyListenEvents@@$09$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0MP@VCMsgSource1LegacyGameEvent@@$04$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0NA@VCMsgSosStartSoundEvent@@$03$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0NB@VCMsgSosStopSoundEvent@@$03$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0NC@VCMsgSosSetSoundEventParams@@$03$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0ND@VCMsgSosSetLibraryStackFields@@$03$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0NE@VCMsgSosStopSoundEventHash@@$03$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0NF@VCMsgClothStiffenAnimEvent@@$04$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0NG@VCMsgClothEffectAnimEvent@@$04$00$00@@\n .?AVCPsdBufferFile@@\n .?AVCPublishedFile_GetDetails_Request@@\n .?AVCPublishedFile_GetDetails_Response@@\n@@ -8825,7 +8695,6 @@ $taser_charge\n .?AVCReadOnlyBlackboardView@@\n .?AVCRecipientFilter@@\n .?AVCRecordingList@@\n-.?AVCRefCount@GCSDK@@\n .?AVCReliableBroadcastRecipientFilter@@\n .?AVCReloadMatchFilter@@\n .?AVCRenderComponent@@\n@@ -10699,7 +10568,7 @@ $taser_charge\n :BAD OBJECT\n :Blowfish part of OpenSSL 1.0.2j  26 Sep 2016\n :EXTERNAL TYPE %s\\n\n-;<}\\v<}\\v<}\\v<}\\venv_tonemap_controller\n+;<}\\v<}\\v<}\\v<}\\vC_TonemapController2\n ;sv_pausable;sv_cheats\n <!-- dmx encoding keyvalues2_noids 4 format vtex 1 -->\\n\"CDmeVtex\"\\n{\\n\\t\"m_inputTextureArray\" \"element_array\"\\n\\t[\\n\n <!-- dmx encoding keyvalues2_noids 4 format vtex 1 -->\\n\"CDmeVtex\"\\n{\\n\\t\"m_inputTextureArray\" \"element_array\"\\n\\t[\\n\\t\\t\"CDmeInputTexture\"\\n\\t\\t{\\n\\t\\t\\t\"m_name\" \"string\" \"TextureAmbientOcclusion\"\\n\\t\\t\\t\"m_fileName\" \"string\" \"$TEXTURE_REPLACEMENT_TOKEN\"\\n\\t\\t\\t\"m_colorSpace\" \"string\" \"linear\"\\n\\t\\t\\t\"m_fileExt\" \"string\" \"ao\"\\n\\t\\t\\t\"m_nMinBitsPerChannel\" \"int\" \"8\"\\n\\t\\t\\t\"m_typeString\" \"string\" \"2D\"\\n\\t\\t\\t\"m_imageProcessorArray\" \"element_array\"\\n\\t\\t\\t[\\n\\t\\t\\t\\t\"CDmeImageProcessor\"\\n\\t\\t\\t\\t{\\n\\t\\t\\t\\t\\t\"m_algorithm\" \"string\" \"None\"\\n\\t\\t\\t\\t\\t\"m_stringArg\" \"string\" \"\"\\n\\t\\t\\t\\t\\t\"m_vFloat4Arg\" \"vector4\" \"0 0 0 0\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t]\\n\\t\\t\\t\"m_bPassThroughToCompiledVtex\" \"bool\" \"0\"\\n\\t\\t\\t\"m_n3DSliceCount\" \"int\" \"-1\"\\n\\t\\t\\t\"m_n3DSliceWidth\" \"int\" \"-1\"\\n\\t\\t\\t\"m_n3DSliceHeight\" \"int\" \"-1\"\\n\\t\\t}\\n\\t]\\n\\t\"m_outputTypeString\" \"string\" \"2D\"\\n\\t\"m_outputFormat\" \"string\" \"ATI1N\"\\n\\t\"m_outputClearColor\" \"vector4\" \"0 0 0 0\"\\n\\t\"m_nOutputMinDimension\" \"int\" \"0\"\\n\\t\"m_nOutputMaxDimension\" \"int\" \"0\"\\n\\t\"m_nOutputDimensionReduce\" \"int\" \"0\"\\n\\t\"m_textureOutputChannelArray\" \"element_array\"\\n\\t[\\n\\t\\t\"CDmeTextureOutputChannel\"\\n\\t\\t{\\n\\t\\t\\t\"m_srcChannels\" \"string\" \"r\"\\n\\t\\t\\t\"m_dstChannels\" \"string\" \"r\"\\n\\t\\t\\t\"m_mipAlgorithm\" \"CDmeImageProcessor\"\\n\\t\\t\\t{\\n\\t\\t\\t\\t\"m_algorithm\" \"string\" \"\"\\n\\t\\t\\t\\t\"m_stringArg\" \"string\" \"\"\\n\\t\\t\\t\\t\"m_vFloat4Arg\" \"vector4\" \"0 0 0 0\"\\n\\t\\t\\t}\\n\\t\\t\\t\"m_outputColorSpace\" \"string\" \"linear\"\\n\\t\\t\\t\"m_inputTextureArray\" \"string_array\"\\n\\t\\t\\t[\\n\\t\\t\\t\\t\"TextureAmbientOcclusion\"\\n\\t\\t\\t]\\n\\t\\t}\\n\\t]\\n\\t\"m_vClamp\" \"vector3\" \"0 0 0\"\\n\\t\"m_bNoLod\" \"bool\" \"0\"\\n\\t\"m_bHiddenAssetFlag\" \"bool\" \"0\"\\n\\t\"m_bNormalizeRange\" \"bool\" \"0\"\\n\\t\"m_nDisplayRectWidth\" \"int\" \"0\"\\n\\t\"m_nDisplayRectHeight\" \"int\" \"0\"\\n\\t\"m_nMotionVectorsMaxDistanceInPixels\" \"int\" \"0\"\\n}\\n\n@@ -11201,7 +11070,6 @@ AddTimedStyle\n AddToTeamSelectPlayerList\n AddVelocity\n AddViewsToSceneSystem\n-AddWorkItem\n Added TrueView prediction for player slot %d (%s)\\n\n Added keyframe: pos=%f %f %f\\n\n Added prediction for player slot %d (%s)\\n\n@@ -12008,6 +11876,7 @@ C:\\buildworker\\csgo_rel_win64\\build\\src\\animlib\\tasksystem\\animtasksystem.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\animlib\\tasksystem\\tasks\\animtask_chainlookat.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\bitmap\\tinyexr_impl.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\common\\crypto.cpp\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\common\\protobuf_helpers.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\compositematerialslib\\compositematerialmanager.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\entity2\\entity2_networking.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\entity2\\entitykeyvalues.cpp\n@@ -12017,7 +11886,7 @@ C:\\buildworker\\csgo_rel_win64\\build\\src\\game\\client\\c_basecombatcharacter.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\game\\client\\c_baseentity.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\game\\client\\c_baselesson.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\game\\client\\c_baseplayerpawn.cpp\n-C:\\buildworker\\csgo_rel_win64\\build\\src\\game\\client\\c_baseplayerpawn.cpp:1620\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\game\\client\\c_baseplayerpawn.cpp:1621\n C:\\buildworker\\csgo_rel_win64\\build\\src\\game\\client\\c_effects.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\game\\client\\c_entitydissolve.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\game\\client\\c_func_monitor.cpp\n@@ -13292,7 +13161,7 @@ CNetworkUtlVectorBase< uint8, NetworkVar_m_networkAnimTiming , -1, int >\n CNetworkedQuantizedFloat\n CNetworkedQuantizedFloat:  called before encoder initialized, use DECLARE_NETWORK_QUANTIZED_FLOAT_NETWORKVAR or DECLARE_NETWORK_QUANTIZED_FLOAT to make sure the encoder is initialized;\\n\n CNewParticleEffect::DetectChanges\n-CNmAimCSTask::TrySetupSolverData\n+CNmAimCSTask::TrySetupBoneIndices\n CNmBoneMaskTaskList::GenerateBoneMask\n CNmChainLookatNode::CDefinition::InstantiateNode\n CNmChainLookatTask::CNmChainLookatTask\n@@ -13708,7 +13577,7 @@ CRenderGameSystem::OnClientPreOutputParallelWithServer\n CRenderGameSystem::OnClientPreOutputParallelWithServer(), C:\\buildworker\\csgo_rel_win64\\build\\src\\game\\shared\\rendergamesystem.cpp:1265\n CRenderGameSystem::OnClientPreOutputParallelWithServer(1365): \n CRenderingPipelineCS2Shadows\n-CRenderingPipelineCsgo::AddLayersToView(11295): \n+CRenderingPipelineCsgo::AddLayersToView(11300): \n CResourceName\n CResourceNameTyped\n CResourcePrecacherGameSystem\n@@ -14747,6 +14616,7 @@ Certified server denied\n Certified server required\n Cessation Of Operation\n Chain Lookat\n+Chain Lookat Task - Trying to perform a chain lookat on top of an additive pose, this is not allowed!\n Change FOV\n ChangeGameUIState: %s -> %s\\n\n ChangeTeammateColor\n@@ -14855,7 +14725,6 @@ Clearing old .sav file %s\\n\n Client \n Client Game\n Client Main World:\n-Client Messages\n Client Restore Server State\n Client Scene Entity %d - Frame(%d)\\n\n Client Soundscape data dump:\\n\n@@ -14872,8 +14741,6 @@ Client not allowed to do this action\n Client not authenticated by server\n Client registered for tournament team '%s' (%s-%s-%u)\\n\n Client session ID (%s).\\n\n-Client tick %d (%d) last exec cmd %d, predicting %d commands %d..%d\\n\n-Client tick %d + %.2f final predicted tick %d + %.2f, offset = %.3f seconds, %.2f ticks\\n\n Client update required\n Client-ID\n ClientCreateMoveFirst\n@@ -16839,7 +16706,9 @@ Failed to load workshop compatibility versions. Demo files on old maps may not w\n Failed to open file\n Failed to open file handle to process chunk file \\n\n Failed to pack %s to vpk\\n\n+Failed to parse %s: %s\\n\n Failed to parse %s\\n\n+Failed to parse Source1LegacyGameEventList_t: %s\\n\n Failed to parse and set new panel event for %s=\"%s\"\\n\n Failed to parse channel info.\\n\n Failed to parse cubemap fog curve (%s).\\n\n@@ -18186,6 +18055,7 @@ Graffiti tint name duplicate: #%d %s\\n\n Grail\n GrandFinal\n Graph\n+Graph '%s' references resource '%s', which is not loaded\\n\n Graph Parameter Name\n Graph1\n Graph2\n@@ -20525,6 +20395,7 @@ P-384\n P-521\n P2P ping to \"%s\". Timed out after %.2fms\\n\n PANORAMA_LAYOUTFILE\n+PARALLAX DETAIL\\t %d    \\t\\t\\t\\t\\t\\n\n PARALYZE\n PARAMETER NAME: %s | OPTIONAL: %s, TYPE: %s, BOUND: %s\\n\n PARAMETERS\n@@ -20961,6 +20832,9 @@ PanoramaUI.Lobby.GotInvited\n PanoramaWorldPanelGenerateMips\n PanoramaWorldPanelSystem\n Paper\n+ParallaxDetail\n+ParallaxPanel\n+ParallaxSeparator\n Parameter [%s=%s] \n Parameterized Clip Selector: Failed to select a valid option!\n Parameterized Selector: Failed to select a valid option!\n@@ -21264,6 +21138,7 @@ PostDataUpdate\n PostEntityPacketReceived\n PostNetworkDataReceived\n PostNetworkDataReceived tick %d, ack %d cmds\n+PostNetworkDataReceived: LastProcessedCommandNumber=%d, LastServerSnapshotTick=%d\\n\n PostPanoramaRenderingPipeline\n Pre Generation KVs\n PreGraphUpdate\n@@ -22896,7 +22771,6 @@ SetDragPosition\n SetDragRotateRadius\n SetDragRotateYawLimit\n SetDraggable\n-SetEvent()\n SetExternalAnimgraphResource\n SetFlashlightAmount\n SetFlashlightColor\n@@ -24086,7 +23960,6 @@ Thread \"%s\" (ID %llu) failed to shut down\n Thread32First\n Thread32Next\n ThreadPoolOptionsChanged\n-ThreadingMain\n Threshholding\n Thrill\n Thunder\n@@ -24294,20 +24167,19 @@ Triggered by app when the user's workshop subscriptions are updated\n Triggers the creation of entities in a manually-completed spawn group\n TrueSight spectating prediction changing %d->%d for player slot %d?\\n\n TrueView active for slot %d\\n\n-TrueView adjust timing: Client tick %d + %.2f, desired offset %.3f sec = %.2f ticks, desired final predicted tick %d + %.2f\\n\n-TrueView cached command %d executed on tick %d.  Client tick = %d, offset %d\\n\n+TrueView cached command %d executed on tick %d.  Client tick = %d, offset %d, prediction offset %.2f\\n\n TrueView can't determine last executed command number on server from command lookahead.  Desired tick %d (%d ahead).\\n\n+TrueView command stream for slot %d resumed after a gap.  Restarting.\\n\n TrueView could not bracket view angles at tick %.2f.  Last command created %d.\\n\n-TrueView could not determine prediction time offset at sim tick %d.  Using 0.\\n\n+TrueView could not determine prediction time offset at sim tick %d.  Not predicting.\\n\n TrueView found no newly executed command for slot %d in %d consecutive snapshots.  Snapshot tick %d, last executed command %d, last created command %d.\\n\n TrueView inactive\\n\n TrueView last created command %d for slot %d is out of range of last executed command %d.  Resetting last executed command.\\n\n TrueView not available: demo player cannot peek packets\\n\n TrueView not predicting slot %d: controller has no pawn\\n\n TrueView not running any commands: target tick %d, last snapshot tick %d\\n\n TrueView predicted no commands this frame.  Last executed %d, last created %d, finish command %d, target tick %d.\\n\n-TrueView target tick %d is behind last snapshot tick %d?\\n\n-TrueView target time going in reverse [ %d + %.3f ] -> [ %d + %.3f ]\n+TrueView target tick %d is behind last snapshot tick %d\\n\n TrueViewDeadOnServer\n TrueViewDeadOnServerChanged\n Truncated header.\n@@ -25353,7 +25225,6 @@ Zipping %s (%d files)\\n\n [OnTickPetBookRebuild: %s] Failed to upload %d bytes to cloud file: %s\\n\n [RETURN R%d]\n [RETURN]\n-[TrueView %d] m_taiaTrueSpectateTargetTime=%d+%.3f   player.m_nLastExecutedCommandNumber=%d  nFirstEarlyPredictionCommand=%d\\n\n [Wearables] Creating new wearable (%d)\n [disabled] \n [dt %5.2f] velocity: %s\n@@ -25369,15 +25240,22 @@ Zipping %s (%d files)\\n\n [not bound]\n [null]\n [object@%p]\n+[removed]\n [signon]\n [spacer]\n [symbol %d]\n+[t%d f%d] Client tick [%d + %.2f] final predicted tick [%d + %.2f], offset = %.3f seconds, %.2f ticks\\n\n+[t%d f%d] Prediction done, tick base %d, last predicted cmd %d\\n\n+[t%d f%d] TrueView adjust timing: Client tick [%d + %.2f], desired offset %.3f sec = %.2f ticks, desired final predicted tick [%d + %.2f]\\n\n+[t%d f%d] TrueView m_taiaTrueSpectateTargetTime=%d+%.3f   player.m_nLastExecutedCommandNumber=%d  nFirstEarlyPredictionCommand=%d\\n\n+[t%d f%d] TrueView target time going in reverse [ %d + %.3f ] -> [ %d + %.3f ]\\n\n+[t%d f%d] origin %s, eye pos %s, eye angles %s\\n\n+[t%d f%d] server snapshot %d last exec cmd %d, predicting %d commands %d..%d\\n\n [unknown entity]\n [{\"event_id\":\n \\%02X\n \\U%04lX\n \\W%08lX\n-\\fB33\n \\n            Not After : \n \\n        Public key OCSP hash: \n \\n    [%d: huff+mtf \n@@ -27138,6 +27016,8 @@ classic\n classname is\n classname missing from entity!\\n\n classname_global_index\n+clavicle_L\n+clavicle_R\n clay\n clean\n cleanup method function failed\n@@ -28060,7 +27940,6 @@ demo-tick\n demo-tick-max\n demo-time\n demo-time-max\n-demo_skip\n demo_start\n demo_stop\n demo_timescale %f\n@@ -31616,6 +31495,7 @@ materials/dev/downsample_depth.vmat\n materials/dev/downsample_depth_cs.vmat\n materials/dev/downsample_outlineglows.vmat\n materials/dev/error_compmat.vtex\n+materials/dev/frost.vtex\n materials/dev/gaussian_bloom_blur.vmat\n materials/dev/generalfilter_alphablended.vmat\n materials/dev/glow_health_color.vmat\n@@ -31643,7 +31523,6 @@ materials/dev/smoke_volume.vmat\n materials/dev/smoke_volume_depth.vmat\n materials/dev/smoke_volume_lpv.vmat\n materials/dev/smoke_volume_mask.vmat\n-materials/dev/snow_sparkle.vtex\n materials/dev/update_visnode_visibility.vmat\n materials/dev/upsample.vmat\n materials/dev/upsample_fsr.vmat\n@@ -34443,6 +34322,7 @@ setting.r_character_decal_resolution\n setting.r_csgo_cmaa_enable\n setting.r_csgo_fsr_upsample\n setting.r_csgo_mboit_force_mixed_resolution\n+setting.r_csgo_parallax\n setting.r_low_latency\n setting.r_particle_cables_cast_shadows\n setting.r_particle_max_detail_level\n@@ -34461,6 +34341,7 @@ setting.videocfg_ao_detail\n setting.videocfg_dynamic_shadows\n setting.videocfg_fsr_detail\n setting.videocfg_hdr_detail\n+setting.videocfg_parallax_detail\n setting.videocfg_particle_detail\n setting.videocfg_shadow_quality\n setting.videocfg_texture_detail\n@@ -35377,7 +35258,6 @@ timeouts_remaining\n timer\n timer_time\n timerangeindays\n-timescale\n timeslice\n timestamp\n timestamp=%d&stat_value=%.3f&stat_index=%d&percentile=%.2f"
        },
        {
          "filename": "game/csgo/bin/win64/host_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -106,7 +106,7 @@ DotaMapUtils001\n EconVData001\n Entry %s was not found in surfaceproperties_footsteps.txt\\n\n Error loading %s: %s\\n\n-FaN\"\\v\n+FaN\"\\f\n Failed to open file: %s\\n\n FoliageAnimation\n Game System %s is defined twice!\\n"
        },
        {
          "filename": "game/csgo/bin/win64/matchmaking_strings.txt",
          "status": "modified",
          "additions": 0,
          "deletions": 3,
          "changes": 3,
          "patch": "@@ -285,7 +285,6 @@ $%llx\n APPSYSTEM: In ConnectGameInterfaces(), s_nRegistrationCount is %d!\\n\n APPSYSTEM: In ConnectGameInterfaces(), tried to use different connection modes!\\n\n APPSYSTEM: In ReconnectGameInterface(), tried to use different connection modes!\\n\n-AddWorkItem\n Adding player %llu to team %d\\n\n AllowSecureServers\n Attempted a typeid of nullptr pointer!\n@@ -596,7 +595,6 @@ Server/reservationid\n Server/server\n Server/xuid\n SessionSearch\n-SetEvent()\n Settings data:\\n\n SetupSteamRankingConfiguration\n SharedObjectCache for %s (%d types):\\n\n@@ -647,7 +645,6 @@ TeamSearchResult::Dedicated\n TeamSearchResult::ListenClient\n TeamSearchResult::ListenHost\n Thread \"%s\" (ID %llu) failed to shut down\n-ThreadingMain\n TimeoutJob\n TitleSettings\n Trying to send message type %d before GC connection established.  This is guaranteed to fail.\\n"
        },
        {
          "filename": "game/csgo/bin/win64/modtools_strings.txt",
          "status": "modified",
          "additions": 14,
          "deletions": 4,
          "changes": 18,
          "patch": "@@ -1251,6 +1251,7 @@ $modelname$_surface\n .?AUCAttr_m_flTraceRadius@?1??GetStaticAttributes@CModelDocFoot@@MEAAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@\n .?AUCAttr_m_flTracksConstantThreshold@?1??GetStaticAttributes@CModelDocAclParameters@@MEAAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@\n .?AUCAttr_m_flTracksPrecision@?1??GetStaticAttributes@CModelDocAclParameters@@MEAAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@\n+.?AUCAttr_m_flTransitionBlendTimeSeconds@?1??GetAttributeTable_Impl@CNmGraphDocAimCSNode@@SAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@\n .?AUCAttr_m_flTranslationConstantThreshold@?1??GetStaticAttributes@CModelDocAclParameters@@MEAAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@\n .?AUCAttr_m_flTranslationIgnoreThreshold@?1??GetStaticAttributes@CModelDocAnimConstraintRbf@@MEAAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@\n .?AUCAttr_m_flTranslationWeight@?1??GetStaticAttributes@CModelDocAnimIkLockLocal@@MEAAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@\n@@ -9176,7 +9177,6 @@ $modelname$_surface\n <pair_a> \n <pair_b> \n <unnamed>\n->fff>\n @%s%s\n @%s_lookFrame_0\n @%s_lookFrame_1\n@@ -9241,7 +9241,6 @@ Accent frame of the gesture/posture, unused\n AclParameters\n Action Blend Time Seconds\n Action Blend Time: %.2fs\n-Action Weight: %.2f\n Activation Distance\n Active By Default\n ActiveArea\n@@ -10130,7 +10129,7 @@ CModelMaterialGroupName\n CModelMesh Index Buffer\n CModelMeshRenderData::BuildVertexBuffersForMaterialGroups(732): \n CModelMeshVertexBuffer\n-CNmAimCSTask::TrySetupSolverData\n+CNmAimCSTask::TrySetupBoneIndices\n CNmBoneMaskTaskList::GenerateBoneMask\n CNmChainLookatNode::CDefinition::InstantiateNode\n CNmChainLookatTask::CNmChainLookatTask\n@@ -10307,6 +10306,7 @@ Center vertices relative to the origin using average vertex position. Optionally\n Chain Length\n Chain Length: %d\n Chain Lookat\n+Chain Lookat Task - Trying to perform a chain lookat on top of an additive pose, this is not allowed!\n Chain Rotation Weight\n Chain Weights\n Changes how the cycle time is computed.  Mainly used with autolayer.\\nShould not be used with AnimGraph.\n@@ -11062,6 +11062,7 @@ Event ID\n Event ID: %s\n Event ID: Invalid\n Event IDs\n+Events\n Events Ignored\n Exact\n Exclude Bones With Exact Flags\n@@ -11433,6 +11434,7 @@ Has Stray Radius\n Has Up Frame\n Has World Collision\n Has Yaw Constraint\n+Head Lookat Weight: %.2f\n Health Override\n Heat\n Heel Land Frame\n@@ -12565,6 +12567,7 @@ Planarconfig tag value assumed incorrect, assuming data is contig instead of chu\n Planarize\n Plane Primitive\n Planting Blend Time Seconds\n+Planting Blend Time: %.2fs\n Planting Disable Multiplier: %.2f\n Plastic\n Plasticity\n@@ -13100,6 +13103,8 @@ Soft Link\n Softbody\n Software\n Solver Settings\n+Solver Transition Blend Time: %.2fs\n+Solver Transition Weight: %.2f\n Some events have invalid characters in their IDs\n Some events have unset IDs\n Some events have unset event classes\n@@ -13458,6 +13463,7 @@ Transform Bindpose Bone\n Transform Bindpose Bone [%s]\n Transform Vertices\n Transforms the animation by the specified values\n+Transition Blend Time Seconds\n Transition Conduit\n Transition Event Condition\n Translate the overall model by the specified vector.\n@@ -13677,6 +13683,7 @@ Warp Z\n Warp event is not allowed to be within the first or last frame!\n Wavelength\n Weapon Action\n+Weapon Action Weight: %.2f\n Weapon Category\n Weapon Constraint\n Weapon Drop\n@@ -13784,7 +13791,6 @@ Zero input vector for info node!\n [anim]\n [cloth] | [procedural]\n [procedural]\n-\\fB33\n \\n***ASSERT FAILED*** Image data section has too many channels (%d).\n \\n***ASSERT FAILED*** Pointer is null.\n \\n***ERROR*** [DecompressRle] Malformed RLE data encountered\n@@ -13966,6 +13972,8 @@ applicable_to\n apply_fast_sweep\n applymodelspacetranslation\n are_effects_mutually_exclude\n+arm_lower_L\n+arm_lower_R\n arm_upper_L\n arm_upper_R\n assetTag\n@@ -14128,6 +14136,8 @@ choices\n choreoanchorclass\n chunkCount\n clamp\n+clavicle_L\n+clavicle_R\n clear_rest_of_selection\n clear_selection\n close_outline_at_hard_edges"
        },
        {
          "filename": "game/csgo/bin/win64/server_strings.txt",
          "status": "modified",
          "additions": 14,
          "deletions": 142,
          "changes": 156,
          "patch": "@@ -1157,6 +1157,7 @@ $tH@T\\tI\n %s PRIVATE KEY\n %s Tactical Timeouts remaining was %d, \n %s Tick\n+%s [%d]\n %s [%s%s%s]###%p\n %s [%u]\n %s algorithm \"%s\" unsupported\\n\n@@ -6073,6 +6074,7 @@ $tH@T\\tI\n .?AVCHLTVDirector@@\n .?AVCHandleDummy@@\n .?AVCHandleTest@@\n+.?AVCHiddenFieldValuePrinter@@\n .?AVCHitboxComponent@@\n .?AVCHitboxSystem@@\n .?AVCHitgroupDisableListSaveRestoreOps@@\n@@ -6870,138 +6872,6 @@ $tH@T\\tI\n .?AVCProtoBufMsgMemoryPoolBase@GCSDK@@\n .?AVCProtoBufNetPacket@GCSDK@@\n .?AVCProtoBufSharedObjectBase@GCSDK@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BBI@V?$CBaseCmdKeyValues@VCClientMsg_CustomGameEvent@@@@$0O@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BBJ@V?$CBaseCmdKeyValues@VCClientMsg_CustomGameEventBounce@@@@$0O@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BBK@VCClientMsg_ClientUIEvent@@$0O@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BCN@VCCSUsrMsg_VGUIMenu@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BDN@VCCSUsrMsg_SendAudio@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BDO@VCCSUsrMsg_RawAudio@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEB@VCCSUsrMsg_Damage@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEC@VCCSUsrMsg_RadioText@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BED@VCCSUsrMsg_HintText@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEE@VCCSUsrMsg_KeyHintText@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEF@VCCSUsrMsg_ProcessSpottedEntityUpdate@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEH@VCCSUsrMsg_AdjustMoney@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEK@VCCSUsrMsg_KillCam@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEO@VCCSUsrMsg_MatchEndConditions@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BEP@VCCSUsrMsg_DisconnectToLobby@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFA@VCCSUsrMsg_PlayerStatsUpdate@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFJ@VCCSUsrMsg_CallVoteFailed@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFK@VCCSUsrMsg_VoteStart@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFL@VCCSUsrMsg_VotePass@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFM@VCCSUsrMsg_VoteFailed@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFN@VCCSUsrMsg_VoteSetup@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFO@VCCSUsrMsg_ServerRankRevealAll@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BFP@VCCSUsrMsg_SendLastKillerDamageToClient@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGA@VCCSUsrMsg_ServerRankUpdate@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGJ@VCCSUsrMsg_SendPlayerItemDrops@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGK@VCCSUsrMsg_RoundBackupFilenames@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGL@VCCSUsrMsg_SendPlayerItemFound@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGM@VCCSUsrMsg_ReportHit@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGN@VCCSUsrMsg_XpUpdate@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGO@VCCSUsrMsg_QuestProgress@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BGP@VCCSUsrMsg_ScoreLeaderboardData@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHA@VCCSUsrMsg_PlayerDecalDigitalSignature@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHB@VCCSUsrMsg_WeaponSound@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHC@VCCSUsrMsg_UpdateScreenHealthBar@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHD@VCCSUsrMsg_EntityOutlineHighlight@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHE@VCCSUsrMsg_SSUI@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHF@VCCSUsrMsg_SurvivalStats@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHG@VCCSUsrMsg_DisconnectToLobby@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHH@VCCSUsrMsg_EndOfMatchAllPlayersData@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHI@VCCSUsrMsg_PostRoundDamageReport@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHL@VCCSUsrMsg_RoundEndReportData@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHM@VCCSUsrMsg_CurrentRoundOdds@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHN@VCCSUsrMsg_DeepStats@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BHP@VCCSUsrMsg_ShootInfo@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BIB@VCCSUsrMsg_CounterStrafe@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BID@VCCSUsrMsg_RecurringMissionSchema@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BIE@VCCSUsrMsg_SendPlayerLoadout@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BIF@VCCSUsrMsg_WeaponMagDrop@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BIG@VCCSUsrMsg_CustomHudClicked@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJA@VCMsgTEEffectDispatch@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJB@VCMsgTEArmorRicochet@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJC@VCMsgTEBeamEntPoint@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJD@VCMsgTEBeamEnts@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJE@VCMsgTEBeamPoints@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJF@VCMsgTEBeamRing@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJI@VCMsgTEBubbles@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJJ@VCMsgTEBubbleTrail@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJK@VCMsgTEDecal@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJL@VCMsgTEWorldDecal@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJM@VCMsgTEEnergySplash@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJN@VCMsgTEFizz@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BJP@VCMsgTEGlowSprite@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKA@VCMsgTEImpact@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKB@VCMsgTEMuzzleFlash@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKC@VCMsgTEBloodStream@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKD@VCMsgTEExplosion@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKE@VCMsgTEDust@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKF@VCMsgTELargeFunnel@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKG@VCMsgTESparks@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKH@VCMsgTEPhysicsProp@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BKK@VCMsgTESmoke@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BME@VCMsgTEFireBullets@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0BMF@VCMsgPlayerBulletHit@@$04$0A@$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0GF@VCUserMessageAchievementEvent@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0GI@VCUserMessageCurrentTimescale@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0GJ@VCUserMessageDesiredTimescale@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0GK@VCUserMessageFade@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0GO@VCUserMessageHudMsg@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0GP@VCUserMessageHudText@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HB@VCUserMessageColoredText@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HC@VCUserMessageRequestState@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HD@VCUserMessageResetHUD@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HE@VCUserMessageRumble@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HF@VCUserMessageSayText@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HG@VCUserMessageSayText2@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HH@VCUserMessageSayTextChannel@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HI@VCUserMessageShake@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HJ@VCUserMessageShakeDir@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HK@VCUserMessageWaterShake@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HM@VCUserMessageTextMsg@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0HN@VCUserMessageScreenTilt@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IA@VCUserMessageVoiceMask@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IC@VCUserMessageSendAudio@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0ID@VCUserMessageItemPickup@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IE@VCUserMessageAmmoDenied@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IG@VCUserMessageShowMenu@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IH@VCUserMessageCreditsMsg@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IJ@VCEntityMessageScreenOverlay@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IL@VCEntityMessagePropagateForce@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IM@VCEntityMessageDoSpark@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IO@VCUserMessageCloseCaptionPlaceholder@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0IP@VCUserMessageCameraTransition@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JA@VCUserMessageAudioParameter@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JB@VCUserMsg_ParticleManager@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JC@VCUserMsg_HudError@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JE@V?$CBaseCmdKeyValues@VCUserMsg_CustomGameEvent@@@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JG@VCUserMessageHapticsManagerPulse@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JH@VCUserMessageHapticsManagerEffect@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JJ@VCUserMessageUpdateCssClasses@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JK@VCUserMessageServerFrameTime@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JL@VCUserMessageLagCompensationError@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JM@VCUserMessageRequestDllStatus@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0JN@VCUserMessageRequestUtilAction@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0KA@VCUserMessageRequestInventory@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0KC@VCUserMessageRequestDiagnostic@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0KF@VCUserMessage_NotifyResponseFound@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0KG@VCUserMessage_PlayResponseConditional@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0KK@VCUserMessageRemoteServerResponse@@$0N@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0MJ@VCMsgPlaceDecalEvent@@$0M@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0MK@VCMsgClearWorldDecalsEvent@@$0M@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0ML@VCMsgClearEntityDecalsEvent@@$0M@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0MM@VCMsgClearDecalsForEntityEvent@@$0M@$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0MN@VCMsgSource1LegacyGameEventList@@$09$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0MO@VCMsgSource1LegacyListenEvents@@$09$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0MP@VCMsgSource1LegacyGameEvent@@$04$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0NA@VCMsgSosStartSoundEvent@@$03$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0NB@VCMsgSosStopSoundEvent@@$03$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0NC@VCMsgSosSetSoundEventParams@@$03$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0ND@VCMsgSosSetLibraryStackFields@@$03$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0NE@VCMsgSosStopSoundEventHash@@$03$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0NF@VCMsgClothStiffenAnimEvent@@$04$00$00@@\n-.?AVCProtobufBinding@?$CNetMessagePB@$0NG@VCMsgClothEffectAnimEvent@@$04$00$00@@\n .?AVCPulseAPIExtensionRegistrationContext@@\n .?AVCPulseBlackboardViewFromGraphInstance@@\n .?AVCPulseCell_ApplyAnimGraphParam@@\n@@ -7101,7 +6971,6 @@ $tH@T\\tI\n .?AVCReadyForMatchIssue@@\n .?AVCRecipientFilter@@\n .?AVCRectLight@@\n-.?AVCRefCount@GCSDK@@\n .?AVCReliableBroadcastRecipientFilter@@\n .?AVCReliableSingleUserRecipientFilter@@\n .?AVCReloadMatchFilter@@\n@@ -8811,7 +8680,6 @@ AddTeamMoney\n AddTeamScore\n AddVelocity\n AddViewsToSceneSystem\n-AddWorkItem\n Added area %d.  ( to go there: setpos %f %f %f )\\n\n Additive Blend\n Additive Blend (Masked): %.2f%%\n@@ -9340,6 +9208,7 @@ C:\\buildworker\\csgo_rel_win64\\build\\src\\animlib\\tasksystem\\animbonemasktask.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\animlib\\tasksystem\\animtaskposepool.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\animlib\\tasksystem\\animtasksystem.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\animlib\\tasksystem\\tasks\\animtask_chainlookat.cpp\n+C:\\buildworker\\csgo_rel_win64\\build\\src\\common\\protobuf_helpers.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\entity2\\entity2_networking.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\entity2\\entitykeyvalues.cpp\n C:\\buildworker\\csgo_rel_win64\\build\\src\\entity2\\entitysystem.cpp\n@@ -9527,7 +9396,7 @@ CAnimGraphControllerManager::CreateAndBindController\n CAnimGraphControllerManager::CreateControllerToGraphBindings\n CAnimGraphControllerManager::PreGraphUpdate\n CAnimGraphGameSystem::OnServerPrePackEntities\n-CAnimGraphGameSystem::OnServerPrePackEntities(), C:\\buildworker\\csgo_rel_win64\\build\\src\\game\\shared\\animgraph_gamesystem.cpp:2434\n+CAnimGraphGameSystem::OnServerPrePackEntities(), C:\\buildworker\\csgo_rel_win64\\build\\src\\game\\shared\\animgraph_gamesystem.cpp:2436\n CAnimGraphGameSystem::PreUpdateAnimGraphAnimations\n CAnimGraphParamAutoResetRef\n CAnimGraphParamRef\n@@ -11318,7 +11187,7 @@ CNetworkUtlVectorEmbedded: successfully late-resolved 0x%p in entity %d:%s to %s\n CNetworkUtlVectorFull\n CNetworkedQuantizedFloat\n CNetworkedQuantizedFloat:  called before encoder initialized, use DECLARE_NETWORK_QUANTIZED_FLOAT_NETWORKVAR or DECLARE_NETWORK_QUANTIZED_FLOAT to make sure the encoder is initialized;\\n\n-CNmAimCSTask::TrySetupSolverData\n+CNmAimCSTask::TrySetupBoneIndices\n CNmBoneMaskTaskList::GenerateBoneMask\n CNmChainLookatNode::CDefinition::InstantiateNode\n CNmChainLookatTask::CNmChainLookatTask\n@@ -12830,6 +12699,7 @@ Certificate Sign\n Certificate:\\n\n Cessation Of Operation\n Chain Lookat\n+Chain Lookat Task - Trying to perform a chain lookat on top of an additive pose, this is not allowed!\n Change FOV\n Change Level\n Change Opvar Value\n@@ -12897,7 +12767,6 @@ ClearDecalsForEntityEvent_t\n ClearEntityDecalsEvent_t\n ClearWorldDecalsEvent_t\n Clearing old .sav file %s\\n\n-Client Messages\n ClientCommand\n ClientGamePrecache_server\n ClientJob_EMsgGCCStrike15_v2_GC2ServerReservationUpdate\n@@ -14234,6 +14103,7 @@ Event.HostageRescued\n EventID\n EventLog\n EventQueue\n+Events\n Exception during CompileModule\\n%s\\n    at (%s:%d:%d)\\n\n Exception during Evaluate\\n%s\\n\n Exception during InstantiateModule\\n%s\\n\n@@ -17049,7 +16919,6 @@ PassthroughCaller: %s\n Path Discarded Immediately\n Path segment [%d/%d] has no area\n PathFind_NavAreaBuildPath\n-Path_RemoveAll failed for read only CFieldPath\n Pathfind to leader failed.\\n\n PathfindGeneric\n PathfindGeneric - failed\n@@ -17585,7 +17454,7 @@ ReadyForMatch\n Reasons\n Recast\n Recast: \n-Received %d perf samples from player %d '%s'\n+Received %d perf samples from player %d '%s'\\n\n Received client welcome from GC.\\n\n Received method callback. Handle: %llu. Context: %llu. EResult: %d. Response Size: %d.\\n\n Received new item acknowledgement: %s\\n\n@@ -18836,7 +18705,6 @@ SetDialogVariableStringForPlayer\n SetDistanceToReachMaxSpeed [distance=%.2f time=%.2f]\n SetDistanceToReachZeroSpeed [distance=%.2f time=%.2f]\n SetEntityName\n-SetEvent()\n SetExternalAnimgraphResource\n SetEyeAngles\n SetFloat(name, val) : sets the value of the convar to the float.\n@@ -19493,7 +19361,6 @@ This is the overall duration. If -1 timer will continue forever. During this dur\n Thread \"%s\" (ID %llu) failed to shut down\n Thread32First\n Thread32Next\n-ThreadingMain\n ThreeEnemiesLeft\n Throwing smoke grenade!\n Ticks: %d (%d)\n@@ -19939,6 +19806,7 @@ VisMon: RESET\\n\n VisMon: Starting at element: %d\\n\n VisMon: Time: %f - Tracking %d Entities. (Max:%d)\\n\n VisibilityMonitor\n+Voice\n VoiceBank\n VoicePitch\n Volume Matches Event Ramp\n@@ -20564,11 +20432,11 @@ Zero input vector for info node!\n [net] %s\n [none]\n [null]\n+[removed]\n [unknown entity]\n \\%02X\n \\U%04lX\n \\W%08lX\n-\\fB33\n \\n            Not After : \n \\n        Public key OCSP hash: \n \\n    at %s (%s:%d:%d)\n@@ -21106,6 +20974,8 @@ arealist\n arg%d\n arg2 lt arg3\n argument is not a number\n+arm_lower_L\n+arm_lower_R\n arm_upper_L\n arm_upper_R\n armor\n@@ -21736,6 +21606,8 @@ class_usage\n classdefidx:\n classic\n classname missing from entity!\\n\n+clavicle_L\n+clavicle_R\n cleanup method function failed\n clear_group\n clearance"
        },
        {
          "filename": "game/csgo/cfg/gamemode_retakecasual.cfg",
          "status": "modified",
          "additions": 2,
          "deletions": 0,
          "changes": 2,
          "patch": "@@ -99,6 +99,8 @@ mp_default_team_winner_no_objective\t\t\t\t\t-1\t\t// 2 == CTs, 3 == Ts\n //sv_occlude_players\t\t\t\t\t\t\t\t1\n //occlusion_test_async\t\t\t\t\t\t\t\t1\n \n+mp_bot_ai_bt\t\t\t\t\t\t\t\t\t\t\"scripts/ai/retakes/bt_default.kv3\"\n+\n spec_replay_enable\t\t\t\t\t\t\t\t0\n mp_round_restart_delay\t\t\t\t\t\t\t\t3\n "
        },
        {
          "filename": "game/csgo/csgo.fgd",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -1415,6 +1415,7 @@\n \tenvpuddlerippledirection(float) : \"Environment Puddle Ripple Direction\" : \"0\" : \"Rotates the puddle ripples (0 to 1, i.e. 0.5 is reversed, 0.25 is 90 degrees).\"\n \tenvwetnesscoverage(float) : \"Environment Wetness Coverage\" : \"1\" : \"How wet the environment was before drying.\"\n \tenvwetnessdryingamount(float) : \"Environment Wetness Drying Amount\" : \"0\" : \"How much the environment dried out.\"\n+\tfrostenabled(boolean) : \"Player frost enabled\" : 0 : \"Players, weapons and chickens frost over outdoors (traces to the sky), and melt indoors.\"\n \tinput FireWinCondition(integer) : \"Fires win conditions for the win.\"\n \t\n ]"
        },
        {
          "filename": "game/csgo/gameinfo.gi",
          "status": "modified",
          "additions": 12,
          "deletions": 1,
          "changes": 13,
          "patch": "@@ -9,6 +9,7 @@\n \n \tFileSystem\n \t{\n+\t\tForceUseBuildVersion\t1\n \t\tSteamAppId\t\t\t\t710\t\t\t// This will mount all the GCFs we need (240=CS:S, 220=HL2).\n \t\tSearchPaths\n \t\t{\n@@ -130,7 +131,16 @@\n \t\t\"r_add_views_in_pre_output\"\t\t\"1\"\n \n \t\t// Limits\n-\t\t\"sv_recvbuf_messages\" \"500\"\n+\t\t\"net_limit_sv_recvbuffer_kb\" \"128\"\n+\t\t\"net_limit_sv_recvbuffer_msg\" \"100\"\n+\t\t\"net_limit_sv_recv_max_frame_size_kb\" \"40\"\n+\t\t\"net_limit_sv_recv_chan_buffer_messages\" \"500\"\n+\t\t\"net_limit_sv_recv_chan_msgs_per_frame\" \"250\"\n+\t\t\"net_limit_sv_message_process_time_ms_warn_burst\" \"20\"\n+\t\t\"net_limit_sv_message_process_time_ms_warn_rate_per_sec\" \"128\" // 2ms/tick\n+\t\t\"net_limit_sv_message_process_time_ms_drop_burst\" \"200\"\n+\t\t\"net_limit_sv_message_process_time_ms_drop_rate_per_sec\" \"256\" // 4ms/tick\n+\t\t\"net_message_size_enforce\" \"2\"\n \n \t\t// Nav fixups\n \t\t\"nav_path_fixup_climb_up_segments\" \"1\"\n@@ -276,6 +286,7 @@\n \t\t\"cq_buffer_bloat_msecs_max\" \"64\"\n \n \t\t\"cl_interp_ag2_for_non_ag2_entities\"\t\"0\"\n+\t\t\"cl_interp_parallel\"\t\t\t\"1\"\n \n \t\t\"r_skip_precache_validation_check\" \"1\"\n "
        },
        {
          "filename": "game/csgo/pak01_dir.txt",
          "status": "modified",
          "additions": 184,
          "deletions": 175,
          "changes": 359,
          "patch": "@@ -2171,46 +2171,46 @@ animation/anims/world/pistol/_default_pistol/walk_sw_pistol.vnmclip_c CRC:00ea41\n animation/anims/world/pistol/_default_pistol/walk_w_fwd_pistol.vnmclip_c CRC:00104820e2 size:8594\n animation/anims/world/pistol/_default_pistol/walk_w_mir_pistol.vnmclip_c CRC:00740a3272 size:9019\n animation/anims/world/pistol/_default_pistol/walk_w_pistol.vnmclip_c CRC:006e0a2d7d size:9640\n-animation/anims/world/pistol/pistol_cz75a/draw2_crouch_cz75a.vnmclip_c CRC:00fdac71e2 size:21134\n-animation/anims/world/pistol/pistol_cz75a/draw2_cz75a.vnmclip_c CRC:0047d79d49 size:24396\n-animation/anims/world/pistol/pistol_cz75a/draw_crouch_cz75a.vnmclip_c CRC:00e64e1113 size:24998\n-animation/anims/world/pistol/pistol_cz75a/draw_cz75a.vnmclip_c CRC:008409008c size:26801\n+animation/anims/world/pistol/pistol_cz75a/draw2_crouch_cz75a.vnmclip_c CRC:008c49b167 size:21134\n+animation/anims/world/pistol/pistol_cz75a/draw2_cz75a.vnmclip_c CRC:00e6bf33f7 size:24500\n+animation/anims/world/pistol/pistol_cz75a/draw_crouch_cz75a.vnmclip_c CRC:00421bdd4e size:24998\n+animation/anims/world/pistol/pistol_cz75a/draw_cz75a.vnmclip_c CRC:0052065328 size:26799\n animation/anims/world/pistol/pistol_cz75a/idle_crouch_cz75a.vnmclip+non_additive.vnmclip_c CRC:0095a88ce3 size:4562\n animation/anims/world/pistol/pistol_cz75a/idle_crouch_cz75a.vnmclip_c CRC:0080bb81b7 size:4178\n animation/anims/world/pistol/pistol_cz75a/idle_cz75a.vnmclip+non_additive.vnmclip_c CRC:00e05afd0a size:4574\n animation/anims/world/pistol/pistol_cz75a/idle_cz75a.vnmclip_c CRC:00d173c7f4 size:3846\n-animation/anims/world/pistol/pistol_cz75a/reload2_crouch_cz75a.vnmclip_c CRC:0065298e6e size:30784\n-animation/anims/world/pistol/pistol_cz75a/reload2_crouch_cz75a_silent.vnmclip_c CRC:0085e4368d size:30800\n-animation/anims/world/pistol/pistol_cz75a/reload2_cz75a.vnmclip_c CRC:00469ab3f5 size:33552\n-animation/anims/world/pistol/pistol_cz75a/reload2_cz75a_silent.vnmclip_c CRC:00b5fef242 size:33552\n+animation/anims/world/pistol/pistol_cz75a/reload2_crouch_cz75a.vnmclip_c CRC:00db64b333 size:30783\n+animation/anims/world/pistol/pistol_cz75a/reload2_crouch_cz75a_silent.vnmclip_c CRC:002ae20d9a size:30799\n+animation/anims/world/pistol/pistol_cz75a/reload2_cz75a.vnmclip_c CRC:001e252bc4 size:33551\n+animation/anims/world/pistol/pistol_cz75a/reload2_cz75a_silent.vnmclip_c CRC:009fc54fcb size:33551\n animation/anims/world/pistol/pistol_cz75a/reload2_empty_crouch_cz75a.vnmclip_c CRC:00701c0443 size:24549\n animation/anims/world/pistol/pistol_cz75a/reload2_empty_cz75a.vnmclip_c CRC:00adbd83dd size:26806\n-animation/anims/world/pistol/pistol_cz75a/reload_crouch_cz75a.vnmclip_c CRC:00c9f86b11 size:29807\n-animation/anims/world/pistol/pistol_cz75a/reload_crouch_cz75a_silent.vnmclip_c CRC:00126aa2ea size:29823\n-animation/anims/world/pistol/pistol_cz75a/reload_cz75a.vnmclip_c CRC:0005129c13 size:32367\n-animation/anims/world/pistol/pistol_cz75a/reload_cz75a_silent.vnmclip_c CRC:00cb1e548b size:32367\n+animation/anims/world/pistol/pistol_cz75a/reload_crouch_cz75a.vnmclip_c CRC:00a7aec517 size:29806\n+animation/anims/world/pistol/pistol_cz75a/reload_crouch_cz75a_silent.vnmclip_c CRC:002e0693b0 size:29822\n+animation/anims/world/pistol/pistol_cz75a/reload_cz75a.vnmclip_c CRC:0007510275 size:32366\n+animation/anims/world/pistol/pistol_cz75a/reload_cz75a_silent.vnmclip_c CRC:00ad181578 size:32366\n animation/anims/world/pistol/pistol_cz75a/reload_empty_crouch_cz75a.vnmclip_c CRC:00c4bbca89 size:28535\n animation/anims/world/pistol/pistol_cz75a/reload_empty_cz75a.vnmclip_c CRC:00f8cf3f4c size:28056\n animation/anims/world/pistol/pistol_cz75a/shoot_cz75.vnmclip+non_additive.vnmclip_c CRC:005f0e57f6 size:9584\n animation/anims/world/pistol/pistol_cz75a/shoot_cz75.vnmclip_c CRC:00a72f6894 size:8576\n animation/anims/world/pistol/pistol_cz75a/shoot_empty_cz75.vnmclip+non_additive.vnmclip_c CRC:00b055435b size:9512\n animation/anims/world/pistol/pistol_cz75a/shoot_empty_cz75.vnmclip_c CRC:00804a57de size:8509\n-animation/anims/world/pistol/pistol_deagle/draw_crouch_deagle.vnmclip_c CRC:00fa0db667 size:15579\n-animation/anims/world/pistol/pistol_deagle/draw_deagle.vnmclip_c CRC:005fd785a3 size:15729\n+animation/anims/world/pistol/pistol_deagle/draw_crouch_deagle.vnmclip_c CRC:008239c49e size:15576\n+animation/anims/world/pistol/pistol_deagle/draw_deagle.vnmclip_c CRC:00fc360ee5 size:15726\n animation/anims/world/pistol/pistol_deagle/idle_crouch_deagle.vnmclip+non_additive.vnmclip_c CRC:00d3f770b9 size:4557\n animation/anims/world/pistol/pistol_deagle/idle_crouch_deagle.vnmclip_c CRC:00f7b4c9fd size:4189\n animation/anims/world/pistol/pistol_deagle/idle_deagle.vnmclip+non_additive.vnmclip_c CRC:00994a05bc size:4580\n animation/anims/world/pistol/pistol_deagle/idle_deagle.vnmclip_c CRC:00ced1d061 size:4183\n-animation/anims/world/pistol/pistol_deagle/reload_crouch_deagle.vnmclip_c CRC:00d2ae9509 size:22484\n-animation/anims/world/pistol/pistol_deagle/reload_crouch_deagle_silent.vnmclip_c CRC:00e87b52a4 size:22484\n-animation/anims/world/pistol/pistol_deagle/reload_deagle.vnmclip_c CRC:00fe44e4dd size:22912\n-animation/anims/world/pistol/pistol_deagle/reload_deagle_silent.vnmclip_c CRC:0097557012 size:22928\n-animation/anims/world/pistol/pistol_deagle/reload_empty_crouch_deagle.vnmclip_c CRC:00621977b3 size:26917\n+animation/anims/world/pistol/pistol_deagle/reload_crouch_deagle.vnmclip_c CRC:00a8eb5fa0 size:22485\n+animation/anims/world/pistol/pistol_deagle/reload_crouch_deagle_silent.vnmclip_c CRC:00883a75e6 size:22485\n+animation/anims/world/pistol/pistol_deagle/reload_deagle.vnmclip_c CRC:0038c195b3 size:22912\n+animation/anims/world/pistol/pistol_deagle/reload_deagle_silent.vnmclip_c CRC:002523e07e size:22928\n+animation/anims/world/pistol/pistol_deagle/reload_empty_crouch_deagle.vnmclip_c CRC:00d231f827 size:26917\n animation/anims/world/pistol/pistol_deagle/reload_empty_deagle.vnmclip_c CRC:00d44fc733 size:27989\n animation/anims/world/pistol/pistol_deagle/shoot_deagle.vnmclip+non_additive.vnmclip_c CRC:0069fd4c29 size:9475\n animation/anims/world/pistol/pistol_deagle/shoot_deagle.vnmclip_c CRC:0029fb40b1 size:8728\n-animation/anims/world/pistol/pistol_elite/draw_crouch_elite.vnmclip_c CRC:008418b939 size:16360\n-animation/anims/world/pistol/pistol_elite/draw_elite.vnmclip_c CRC:00ccf9a431 size:16029\n+animation/anims/world/pistol/pistol_elite/draw_crouch_elite.vnmclip_c CRC:009ce165e8 size:16357\n+animation/anims/world/pistol/pistol_elite/draw_elite.vnmclip_c CRC:00e9f71850 size:16028\n animation/anims/world/pistol/pistol_elite/idle_crouch_elite.vnmclip+non_additive.vnmclip_c CRC:00a1697b96 size:5137\n animation/anims/world/pistol/pistol_elite/idle_crouch_elite.vnmclip_c CRC:00d68ad74b size:4990\n animation/anims/world/pistol/pistol_elite/idle_elite.vnmclip+non_additive.vnmclip_c CRC:00594725b7 size:5139\n@@ -2227,22 +2227,22 @@ animation/anims/world/pistol/pistol_elite/shoot_right1_elite.vnmclip+non_additiv\n animation/anims/world/pistol/pistol_elite/shoot_right1_elite.vnmclip_c CRC:005dfb0686 size:6125\n animation/anims/world/pistol/pistol_elite/shoot_rightlast_elite.vnmclip+non_additive.vnmclip_c CRC:00a92e080a size:7161\n animation/anims/world/pistol/pistol_elite/shoot_rightlast_elite.vnmclip_c CRC:00ef0bb74a size:5170\n-animation/anims/world/pistol/pistol_fiveseven/draw_crouch_fiveseven.vnmclip_c CRC:009fe09595 size:16678\n-animation/anims/world/pistol/pistol_fiveseven/draw_fiveseven.vnmclip_c CRC:004a11faa1 size:16823\n+animation/anims/world/pistol/pistol_fiveseven/draw_crouch_fiveseven.vnmclip_c CRC:005e4e8b00 size:16696\n+animation/anims/world/pistol/pistol_fiveseven/draw_fiveseven.vnmclip_c CRC:0036485288 size:16821\n animation/anims/world/pistol/pistol_fiveseven/idle_crouch_fiveseven.vnmclip+non_additive.vnmclip_c CRC:00406510c3 size:4584\n animation/anims/world/pistol/pistol_fiveseven/idle_crouch_fiveseven.vnmclip_c CRC:00e85df5b3 size:3873\n animation/anims/world/pistol/pistol_fiveseven/idle_fiveseven.vnmclip+non_additive.vnmclip_c CRC:00bb1f78ee size:4573\n animation/anims/world/pistol/pistol_fiveseven/idle_fiveseven.vnmclip_c CRC:007f548b31 size:3810\n-animation/anims/world/pistol/pistol_fiveseven/reload_crouch_fiveseven.vnmclip_c CRC:009c2c3f20 size:29347\n-animation/anims/world/pistol/pistol_fiveseven/reload_crouch_fiveseven_silent.vnmclip_c CRC:007e4060fe size:29347\n+animation/anims/world/pistol/pistol_fiveseven/reload_crouch_fiveseven.vnmclip_c CRC:00eaf1d989 size:29347\n+animation/anims/world/pistol/pistol_fiveseven/reload_crouch_fiveseven_silent.vnmclip_c CRC:0097798fbd size:29347\n animation/anims/world/pistol/pistol_fiveseven/reload_empty_crouch_fiveseven.vnmclip_c CRC:008c976616 size:21186\n animation/anims/world/pistol/pistol_fiveseven/reload_empty_fiveseven.vnmclip_c CRC:00365b301d size:21442\n-animation/anims/world/pistol/pistol_fiveseven/reload_fiveseven.vnmclip_c CRC:00ebd0cf1b size:30024\n-animation/anims/world/pistol/pistol_fiveseven/reload_fiveseven_silent.vnmclip_c CRC:00d161a75e size:30040\n+animation/anims/world/pistol/pistol_fiveseven/reload_fiveseven.vnmclip_c CRC:00855a2a52 size:30024\n+animation/anims/world/pistol/pistol_fiveseven/reload_fiveseven_silent.vnmclip_c CRC:007893e3af size:30040\n animation/anims/world/pistol/pistol_fiveseven/shoot_fiveseven.vnmclip+non_additive.vnmclip_c CRC:00f81c0342 size:9373\n animation/anims/world/pistol/pistol_fiveseven/shoot_fiveseven.vnmclip_c CRC:00f29873c0 size:8387\n-animation/anims/world/pistol/pistol_glock/draw_crouch_glock.vnmclip_c CRC:003b9ee0a1 size:16727\n-animation/anims/world/pistol/pistol_glock/draw_glock.vnmclip_c CRC:00f71fc3f0 size:16696\n+animation/anims/world/pistol/pistol_glock/draw_crouch_glock.vnmclip_c CRC:0096d93dd0 size:16724\n+animation/anims/world/pistol/pistol_glock/draw_glock.vnmclip_c CRC:00cd278793 size:16699\n animation/anims/world/pistol/pistol_glock/idle_crouch_glock.vnmclip+non_additive.vnmclip_c CRC:000a39ae26 size:4570\n animation/anims/world/pistol/pistol_glock/idle_crouch_glock.vnmclip_c CRC:002ef727da size:4209\n animation/anims/world/pistol/pistol_glock/idle_glock.vnmclip+non_additive.vnmclip_c CRC:009fd4e306 size:4576\n@@ -2255,22 +2255,22 @@ animation/anims/world/pistol/pistol_glock/reload_glock.vnmclip_c CRC:00a05e03c3\n animation/anims/world/pistol/pistol_glock/reload_glock_silent.vnmclip_c CRC:0048730161 size:24030\n animation/anims/world/pistol/pistol_glock/shoot_glock.vnmclip+non_additive.vnmclip_c CRC:00c2eb968b size:9318\n animation/anims/world/pistol/pistol_glock/shoot_glock.vnmclip_c CRC:004a979a8e size:8394\n-animation/anims/world/pistol/pistol_hkp2000/draw_crouch_hkp.vnmclip_c CRC:00ba9d6458 size:13764\n-animation/anims/world/pistol/pistol_hkp2000/draw_hkp.vnmclip_c CRC:009e6c9ec2 size:14024\n+animation/anims/world/pistol/pistol_hkp2000/draw_crouch_hkp.vnmclip_c CRC:000ef0bbcd size:13759\n+animation/anims/world/pistol/pistol_hkp2000/draw_hkp.vnmclip_c CRC:00e7710213 size:14021\n animation/anims/world/pistol/pistol_hkp2000/idle_crouch_hkp.vnmclip+non_additive.vnmclip_c CRC:00b9a9da4f size:4588\n animation/anims/world/pistol/pistol_hkp2000/idle_crouch_hkp.vnmclip_c CRC:005844c4c9 size:3854\n animation/anims/world/pistol/pistol_hkp2000/idle_hkp.vnmclip+non_additive.vnmclip_c CRC:00c5340311 size:4562\n animation/anims/world/pistol/pistol_hkp2000/idle_hkp.vnmclip_c CRC:0011e8f334 size:3820\n-animation/anims/world/pistol/pistol_hkp2000/reload_crouch_hkp.vnmclip_c CRC:00317eefa8 size:23111\n+animation/anims/world/pistol/pistol_hkp2000/reload_crouch_hkp.vnmclip_c CRC:00f2351a42 size:23111\n animation/anims/world/pistol/pistol_hkp2000/reload_crouch_hkp_silent.vnmclip_c CRC:0038027856 size:23111\n animation/anims/world/pistol/pistol_hkp2000/reload_empty_crouch_hkp.vnmclip_c CRC:00b0b94348 size:23332\n animation/anims/world/pistol/pistol_hkp2000/reload_empty_hkp.vnmclip_c CRC:003c906952 size:24379\n-animation/anims/world/pistol/pistol_hkp2000/reload_hkp.vnmclip_c CRC:00b7f27536 size:23026\n-animation/anims/world/pistol/pistol_hkp2000/reload_hkp_silent.vnmclip_c CRC:00c3bd5c41 size:23026\n+animation/anims/world/pistol/pistol_hkp2000/reload_hkp.vnmclip_c CRC:0035f8b901 size:23025\n+animation/anims/world/pistol/pistol_hkp2000/reload_hkp_silent.vnmclip_c CRC:00bdf47baa size:23041\n animation/anims/world/pistol/pistol_hkp2000/shoot_hkp.vnmclip+non_additive.vnmclip_c CRC:001d3d00de size:9460\n animation/anims/world/pistol/pistol_hkp2000/shoot_hkp.vnmclip_c CRC:00246a8018 size:8437\n-animation/anims/world/pistol/pistol_p250/draw_crouch_p250.vnmclip_c CRC:00b3e39359 size:16490\n-animation/anims/world/pistol/pistol_p250/draw_p250.vnmclip_c CRC:002124c8c5 size:16671\n+animation/anims/world/pistol/pistol_p250/draw_crouch_p250.vnmclip_c CRC:002569adf0 size:16490\n+animation/anims/world/pistol/pistol_p250/draw_p250.vnmclip_c CRC:00cd3e9a76 size:16676\n animation/anims/world/pistol/pistol_p250/idle_crouch_p250.vnmclip+non_additive.vnmclip_c CRC:00ae48a9e9 size:4560\n animation/anims/world/pistol/pistol_p250/idle_crouch_p250.vnmclip_c CRC:00d0665a4d size:4000\n animation/anims/world/pistol/pistol_p250/idle_p250.vnmclip+non_additive.vnmclip_c CRC:00b97d36d6 size:4581\n@@ -2283,10 +2283,10 @@ animation/anims/world/pistol/pistol_p250/reload_p250.vnmclip_c CRC:0060b88d1b si\n animation/anims/world/pistol/pistol_p250/reload_p250_silent.vnmclip_c CRC:00dafe3bac size:30193\n animation/anims/world/pistol/pistol_p250/shoot_p250.vnmclip+non_additive.vnmclip_c CRC:00c09db906 size:9309\n animation/anims/world/pistol/pistol_p250/shoot_p250.vnmclip_c CRC:0096dca4e1 size:8295\n-animation/anims/world/pistol/pistol_revolver/draw2_crouch_revolver.vnmclip_c CRC:00dedf370d size:17859\n-animation/anims/world/pistol/pistol_revolver/draw2_revolver.vnmclip_c CRC:00341030af size:18092\n-animation/anims/world/pistol/pistol_revolver/draw_crouch_revolver.vnmclip_c CRC:00858b699d size:16065\n-animation/anims/world/pistol/pistol_revolver/draw_revolver.vnmclip_c CRC:003dc8910f size:16314\n+animation/anims/world/pistol/pistol_revolver/draw2_crouch_revolver.vnmclip_c CRC:0051b5ba43 size:17862\n+animation/anims/world/pistol/pistol_revolver/draw2_revolver.vnmclip_c CRC:00b3639022 size:18095\n+animation/anims/world/pistol/pistol_revolver/draw_crouch_revolver.vnmclip_c CRC:00be145989 size:16070\n+animation/anims/world/pistol/pistol_revolver/draw_revolver.vnmclip_c CRC:0076bbfe22 size:16317\n animation/anims/world/pistol/pistol_revolver/idle_crouch_revolver.vnmclip+non_additive.vnmclip_c CRC:00a6a66b02 size:5071\n animation/anims/world/pistol/pistol_revolver/idle_crouch_revolver.vnmclip_c CRC:00b010ebd6 size:4688\n animation/anims/world/pistol/pistol_revolver/idle_revolver.vnmclip+non_additive.vnmclip_c CRC:00d245fa93 size:5115\n@@ -2299,16 +2299,16 @@ animation/anims/world/pistol/pistol_revolver/shoot_alt_revolver.vnmclip+non_addi\n animation/anims/world/pistol/pistol_revolver/shoot_alt_revolver.vnmclip_c CRC:002d900e71 size:13664\n animation/anims/world/pistol/pistol_revolver/shoot_revolver.vnmclip+non_additive.vnmclip_c CRC:00d7e81056 size:9384\n animation/anims/world/pistol/pistol_revolver/shoot_revolver.vnmclip_c CRC:00c6d027de size:8115\n-animation/anims/world/pistol/pistol_taser/draw_crouch_taser.vnmclip_c CRC:00f98af2af size:16055\n-animation/anims/world/pistol/pistol_taser/draw_taser.vnmclip_c CRC:00121e435c size:15909\n+animation/anims/world/pistol/pistol_taser/draw_crouch_taser.vnmclip_c CRC:009b17626c size:16052\n+animation/anims/world/pistol/pistol_taser/draw_taser.vnmclip_c CRC:00ec1a69d2 size:15907\n animation/anims/world/pistol/pistol_taser/idle_crouch_taser.vnmclip+non_additive.vnmclip_c CRC:003978e04d size:4567\n animation/anims/world/pistol/pistol_taser/idle_crouch_taser.vnmclip_c CRC:003ac85604 size:4218\n animation/anims/world/pistol/pistol_taser/idle_taser.vnmclip+non_additive.vnmclip_c CRC:0071aa4d24 size:4582\n animation/anims/world/pistol/pistol_taser/idle_taser.vnmclip_c CRC:003a456313 size:4231\n animation/anims/world/pistol/pistol_taser/shoot_taser.vnmclip+non_additive.vnmclip_c CRC:00024eaa51 size:9073\n animation/anims/world/pistol/pistol_taser/shoot_taser.vnmclip_c CRC:00c5d60b61 size:8078\n-animation/anims/world/pistol/pistol_tec9/draw_crouch_tec9.vnmclip_c CRC:00d7472dbf size:16995\n-animation/anims/world/pistol/pistol_tec9/draw_tec9.vnmclip_c CRC:000c9263ba size:16831\n+animation/anims/world/pistol/pistol_tec9/draw_crouch_tec9.vnmclip_c CRC:0055de9520 size:16993\n+animation/anims/world/pistol/pistol_tec9/draw_tec9.vnmclip_c CRC:00f20ece79 size:16831\n animation/anims/world/pistol/pistol_tec9/idle_crouch_tec9.vnmclip+non_additive.vnmclip_c CRC:00361fd0ca size:4558\n animation/anims/world/pistol/pistol_tec9/idle_crouch_tec9.vnmclip_c CRC:00c0c3bb2b size:4375\n animation/anims/world/pistol/pistol_tec9/idle_tec9.vnmclip+non_additive.vnmclip_c CRC:009ac4804b size:4565\n@@ -2319,8 +2319,8 @@ animation/anims/world/pistol/pistol_tec9/reload_tec9.vnmclip_c CRC:00d6151d02 si\n animation/anims/world/pistol/pistol_tec9/reload_tec9_silent.vnmclip_c CRC:00b3223879 size:33238\n animation/anims/world/pistol/pistol_tec9/shoot_tec9.vnmclip+non_additive.vnmclip_c CRC:00b8ee937b size:7350\n animation/anims/world/pistol/pistol_tec9/shoot_tec9.vnmclip_c CRC:0041de4e0e size:6271\n-animation/anims/world/pistol/pistol_usp/draw_crouch_pistol.vnmclip_c CRC:0069db1ad6 size:16809\n-animation/anims/world/pistol/pistol_usp/draw_usp.vnmclip_c CRC:000f3b8680 size:17117\n+animation/anims/world/pistol/pistol_usp/draw_crouch_pistol.vnmclip_c CRC:00532f8257 size:16807\n+animation/anims/world/pistol/pistol_usp/draw_usp.vnmclip_c CRC:008bdacef9 size:17115\n animation/anims/world/pistol/pistol_usp/idle_crouch_usp.vnmclip+non_additive.vnmclip_c CRC:00d8791597 size:4982\n animation/anims/world/pistol/pistol_usp/idle_crouch_usp.vnmclip_c CRC:00eb502f9b size:3010\n animation/anims/world/pistol/pistol_usp/idle_usp.vnmclip+non_additive.vnmclip_c CRC:001730c190 size:4972\n@@ -2530,44 +2530,44 @@ animation/anims/world/rifle/_default_rifle/walk_sw_rifle.vnmclip_c CRC:00d722a24\n animation/anims/world/rifle/_default_rifle/walk_w_fwd_rifle.vnmclip_c CRC:000e8701b1 size:8368\n animation/anims/world/rifle/_default_rifle/walk_w_mir_rifle.vnmclip_c CRC:0087cdaca5 size:8649\n animation/anims/world/rifle/_default_rifle/walk_w_rifle.vnmclip_c CRC:00ff2021a9 size:9777\n-animation/anims/world/rifle/rifle_ak/draw_ak.vnmclip_c CRC:00097a591f size:15548\n-animation/anims/world/rifle/rifle_ak/draw_crouch_ak.vnmclip_c CRC:00e6b28ad6 size:16839\n+animation/anims/world/rifle/rifle_ak/draw_ak.vnmclip_c CRC:00fdea3dc9 size:15551\n+animation/anims/world/rifle/rifle_ak/draw_crouch_ak.vnmclip_c CRC:00c680363e size:16840\n animation/anims/world/rifle/rifle_ak/idle_ak.vnmclip+non_additive.vnmclip_c CRC:00cd0f48bc size:4581\n animation/anims/world/rifle/rifle_ak/idle_ak.vnmclip_c CRC:00ec4a3b7f size:4222\n animation/anims/world/rifle/rifle_ak/idle_crouch_ak.vnmclip+non_additive.vnmclip_c CRC:00b3b14bfe size:4575\n animation/anims/world/rifle/rifle_ak/idle_crouch_ak.vnmclip_c CRC:0017fdc3df size:4433\n-animation/anims/world/rifle/rifle_ak/reload_ak.vnmclip_c CRC:0087f4fcac size:23759\n+animation/anims/world/rifle/rifle_ak/reload_ak.vnmclip_c CRC:00164452c3 size:23759\n animation/anims/world/rifle/rifle_ak/reload_ak_silent.vnmclip_c CRC:009d7c96ac size:23759\n-animation/anims/world/rifle/rifle_ak/reload_crouch_ak.vnmclip_c CRC:00d58e2490 size:23719\n-animation/anims/world/rifle/rifle_ak/reload_crouch_ak_silent.vnmclip_c CRC:00c03a0594 size:23735\n+animation/anims/world/rifle/rifle_ak/reload_crouch_ak.vnmclip_c CRC:00b18af1db size:23826\n+animation/anims/world/rifle/rifle_ak/reload_crouch_ak_silent.vnmclip_c CRC:00b77aa910 size:23842\n animation/anims/world/rifle/rifle_ak/shoot_ak.vnmclip+non_additive.vnmclip_c CRC:003a26deb2 size:9686\n animation/anims/world/rifle/rifle_ak/shoot_ak.vnmclip_c CRC:009f945a62 size:8597\n-animation/anims/world/rifle/rifle_aug/draw_aug.vnmclip_c CRC:00e7734bc7 size:17341\n-animation/anims/world/rifle/rifle_aug/draw_crouch_aug.vnmclip_c CRC:0076da91f5 size:17013\n+animation/anims/world/rifle/rifle_aug/draw_aug.vnmclip_c CRC:0073b85497 size:17341\n+animation/anims/world/rifle/rifle_aug/draw_crouch_aug.vnmclip_c CRC:001c56db6a size:17013\n animation/anims/world/rifle/rifle_aug/idle_aug.vnmclip+non_additive.vnmclip_c CRC:0060b6cd4c size:4579\n animation/anims/world/rifle/rifle_aug/idle_aug.vnmclip_c CRC:001228edc4 size:4282\n animation/anims/world/rifle/rifle_aug/idle_crouch_aug.vnmclip+non_additive.vnmclip_c CRC:0063ff4c5c size:4559\n animation/anims/world/rifle/rifle_aug/idle_crouch_aug.vnmclip_c CRC:0059b270f9 size:4442\n-animation/anims/world/rifle/rifle_aug/reload_aug.vnmclip_c CRC:00ec6fc2e5 size:30131\n-animation/anims/world/rifle/rifle_aug/reload_aug_silent.vnmclip_c CRC:0052086ecc size:30135\n-animation/anims/world/rifle/rifle_aug/reload_crouch_aug.vnmclip_c CRC:0091f9ac68 size:31993\n-animation/anims/world/rifle/rifle_aug/reload_crouch_aug_silent.vnmclip_c CRC:008d80c61d size:32013\n+animation/anims/world/rifle/rifle_aug/reload_aug.vnmclip_c CRC:0011030246 size:30131\n+animation/anims/world/rifle/rifle_aug/reload_aug_silent.vnmclip_c CRC:0008403c47 size:30131\n+animation/anims/world/rifle/rifle_aug/reload_crouch_aug.vnmclip_c CRC:001a7e2ad3 size:31993\n+animation/anims/world/rifle/rifle_aug/reload_crouch_aug_silent.vnmclip_c CRC:00abc6e00f size:32009\n animation/anims/world/rifle/rifle_aug/shoot_aug.vnmclip+non_additive.vnmclip_c CRC:000bc03afd size:15249\n animation/anims/world/rifle/rifle_aug/shoot_aug.vnmclip_c CRC:0003ea45b9 size:14049\n-animation/anims/world/rifle/rifle_awp/draw_awp.vnmclip_c CRC:008e0606b4 size:19262\n-animation/anims/world/rifle/rifle_awp/draw_crouch_awp.vnmclip_c CRC:0024e58db4 size:18457\n+animation/anims/world/rifle/rifle_awp/draw_awp.vnmclip_c CRC:00d7a4d173 size:19262\n+animation/anims/world/rifle/rifle_awp/draw_crouch_awp.vnmclip_c CRC:00138149ef size:18457\n animation/anims/world/rifle/rifle_awp/idle_awp.vnmclip+non_additive.vnmclip_c CRC:00390bf1e0 size:4550\n animation/anims/world/rifle/rifle_awp/idle_awp.vnmclip_c CRC:00221054aa size:4217\n animation/anims/world/rifle/rifle_awp/idle_crouch_awp.vnmclip+non_additive.vnmclip_c CRC:000f09a9e4 size:4564\n animation/anims/world/rifle/rifle_awp/idle_crouch_awp.vnmclip_c CRC:0098739854 size:4442\n animation/anims/world/rifle/rifle_awp/reload_awp.vnmclip_c CRC:0067fb6668 size:38965\n animation/anims/world/rifle/rifle_awp/reload_awp_silent.vnmclip_c CRC:00e01a3c09 size:38981\n-animation/anims/world/rifle/rifle_awp/reload_crouch_awp.vnmclip_c CRC:000111ddcd size:39447\n-animation/anims/world/rifle/rifle_awp/reload_crouch_awp_silent.vnmclip_c CRC:001a49f88f size:39447\n+animation/anims/world/rifle/rifle_awp/reload_crouch_awp.vnmclip_c CRC:00f84593a8 size:39446\n+animation/anims/world/rifle/rifle_awp/reload_crouch_awp_silent.vnmclip_c CRC:00d088e297 size:39446\n animation/anims/world/rifle/rifle_awp/shoot_awp.vnmclip+non_additive.vnmclip_c CRC:00d9962cc0 size:17190\n animation/anims/world/rifle/rifle_awp/shoot_awp.vnmclip_c CRC:008d36d2a6 size:16103\n-animation/anims/world/rifle/rifle_bizon/draw_bizon.vnmclip_c CRC:008bff5198 size:16757\n-animation/anims/world/rifle/rifle_bizon/draw_crouch_bizon.vnmclip_c CRC:0090c07434 size:17734\n+animation/anims/world/rifle/rifle_bizon/draw_bizon.vnmclip_c CRC:00ab073bf1 size:16758\n+animation/anims/world/rifle/rifle_bizon/draw_crouch_bizon.vnmclip_c CRC:0034800e59 size:17735\n animation/anims/world/rifle/rifle_bizon/idle_bizon.vnmclip+non_additive.vnmclip_c CRC:00c177c220 size:4566\n animation/anims/world/rifle/rifle_bizon/idle_bizon.vnmclip_c CRC:0063cecf63 size:4266\n animation/anims/world/rifle/rifle_bizon/idle_crouch_bizon.vnmclip+non_additive.vnmclip_c CRC:00fc3c4c9f size:4577\n@@ -2578,8 +2578,8 @@ animation/anims/world/rifle/rifle_bizon/reload_crouch_bizon.vnmclip_c CRC:005fa3\n animation/anims/world/rifle/rifle_bizon/reload_crouch_bizon_silent.vnmclip_c CRC:001965e84b size:24952\n animation/anims/world/rifle/rifle_bizon/shoot_bizon.vnmclip+non_additive.vnmclip_c CRC:009e841c24 size:10729\n animation/anims/world/rifle/rifle_bizon/shoot_bizon.vnmclip_c CRC:00bce48118 size:9968\n-animation/anims/world/rifle/rifle_famas/draw_crouch_famas.vnmclip_c CRC:005141e5c0 size:16708\n-animation/anims/world/rifle/rifle_famas/draw_famas.vnmclip_c CRC:00515a9c5a size:16123\n+animation/anims/world/rifle/rifle_famas/draw_crouch_famas.vnmclip_c CRC:004f01bbaa size:16702\n+animation/anims/world/rifle/rifle_famas/draw_famas.vnmclip_c CRC:00183746c6 size:16126\n animation/anims/world/rifle/rifle_famas/idle_crouch_famas.vnmclip+non_additive.vnmclip_c CRC:00cf5b007e size:4574\n animation/anims/world/rifle/rifle_famas/idle_crouch_famas.vnmclip_c CRC:007a7f33a5 size:4456\n animation/anims/world/rifle/rifle_famas/idle_famas.vnmclip+non_additive.vnmclip_c CRC:002148d3af size:4554\n@@ -2590,20 +2590,20 @@ animation/anims/world/rifle/rifle_famas/reload_famas.vnmclip_c CRC:00195b4e21 si\n animation/anims/world/rifle/rifle_famas/reload_famas_silent.vnmclip_c CRC:00973360b9 size:41324\n animation/anims/world/rifle/rifle_famas/shoot_famas.vnmclip+non_additive.vnmclip_c CRC:00c16bdb87 size:13932\n animation/anims/world/rifle/rifle_famas/shoot_famas.vnmclip_c CRC:00068e08d0 size:12949\n-animation/anims/world/rifle/rifle_g3sg1/draw_crouch_g3sg1.vnmclip_c CRC:009ff7711f size:17236\n-animation/anims/world/rifle/rifle_g3sg1/draw_g3sg1.vnmclip_c CRC:00e50ba6b1 size:17620\n+animation/anims/world/rifle/rifle_g3sg1/draw_crouch_g3sg1.vnmclip_c CRC:008269db24 size:17233\n+animation/anims/world/rifle/rifle_g3sg1/draw_g3sg1.vnmclip_c CRC:006535c122 size:17615\n animation/anims/world/rifle/rifle_g3sg1/idle_crouch_g3sg1.vnmclip+non_additive.vnmclip_c CRC:009e05bff3 size:4560\n animation/anims/world/rifle/rifle_g3sg1/idle_crouch_g3sg1.vnmclip_c CRC:00c563c203 size:4454\n animation/anims/world/rifle/rifle_g3sg1/idle_g3sg1.vnmclip+non_additive.vnmclip_c CRC:006437c398 size:4569\n animation/anims/world/rifle/rifle_g3sg1/idle_g3sg1.vnmclip_c CRC:00b9dc3b50 size:4253\n-animation/anims/world/rifle/rifle_g3sg1/reload_crouch_g3sg1.vnmclip_c CRC:00051376f5 size:43527\n-animation/anims/world/rifle/rifle_g3sg1/reload_crouch_g3sg1_silent.vnmclip_c CRC:00ef99672e size:43527\n+animation/anims/world/rifle/rifle_g3sg1/reload_crouch_g3sg1.vnmclip_c CRC:004a4adb88 size:43529\n+animation/anims/world/rifle/rifle_g3sg1/reload_crouch_g3sg1_silent.vnmclip_c CRC:00633f4809 size:43529\n animation/anims/world/rifle/rifle_g3sg1/reload_g3sg1.vnmclip_c CRC:00e26a8855 size:39751\n animation/anims/world/rifle/rifle_g3sg1/reload_g3sg1_silent.vnmclip_c CRC:0011001e67 size:39767\n animation/anims/world/rifle/rifle_g3sg1/shoot_g3sg1.vnmclip+non_additive.vnmclip_c CRC:00ed3e1359 size:11371\n animation/anims/world/rifle/rifle_g3sg1/shoot_g3sg1.vnmclip_c CRC:001b332e12 size:10319\n-animation/anims/world/rifle/rifle_galilar/draw_crouch_galilar.vnmclip_c CRC:00a4790940 size:17375\n-animation/anims/world/rifle/rifle_galilar/draw_galilar.vnmclip_c CRC:006c357a60 size:16480\n+animation/anims/world/rifle/rifle_galilar/draw_crouch_galilar.vnmclip_c CRC:00dd7bf73f size:17377\n+animation/anims/world/rifle/rifle_galilar/draw_galilar.vnmclip_c CRC:00753be752 size:16479\n animation/anims/world/rifle/rifle_galilar/idle_crouch_galilar.vnmclip+non_additive.vnmclip_c CRC:00567da3c5 size:4574\n animation/anims/world/rifle/rifle_galilar/idle_crouch_galilar.vnmclip_c CRC:00d0ce9287 size:4405\n animation/anims/world/rifle/rifle_galilar/idle_galilar.vnmclip+non_additive.vnmclip_c CRC:00053ca687 size:4575\n@@ -2614,16 +2614,16 @@ animation/anims/world/rifle/rifle_galilar/reload_galilar.vnmclip_c CRC:007edfa8e\n animation/anims/world/rifle/rifle_galilar/reload_galilar_silent.vnmclip_c CRC:00064d0caa size:36690\n animation/anims/world/rifle/rifle_galilar/shoot_galilar.vnmclip+non_additive.vnmclip_c CRC:009b1495e0 size:13167\n animation/anims/world/rifle/rifle_galilar/shoot_galilar.vnmclip_c CRC:009fa743bb size:12148\n-animation/anims/world/rifle/rifle_m249/draw_crouch_m249.vnmclip_c CRC:00fec3b9a7 size:15499\n-animation/anims/world/rifle/rifle_m249/draw_m249.vnmclip_c CRC:00b587170e size:14892\n+animation/anims/world/rifle/rifle_m249/draw_crouch_m249.vnmclip_c CRC:00b8048c30 size:15499\n+animation/anims/world/rifle/rifle_m249/draw_m249.vnmclip_c CRC:00aa553137 size:14889\n animation/anims/world/rifle/rifle_m249/idle_crouch_m249.vnmclip+non_additive.vnmclip_c CRC:008005a391 size:4572\n animation/anims/world/rifle/rifle_m249/idle_crouch_m249.vnmclip_c CRC:00b083e949 size:4370\n animation/anims/world/rifle/rifle_m249/idle_m249.vnmclip+non_additive.vnmclip_c CRC:00104e679b size:4568\n animation/anims/world/rifle/rifle_m249/idle_m249.vnmclip_c CRC:00d3d1b94e size:3824\n animation/anims/world/rifle/rifle_m249/reload_crouch_m249.vnmclip_c CRC:0030f23352 size:157661\n animation/anims/world/rifle/rifle_m249/reload_crouch_m249_silent.vnmclip_c CRC:00099c1469 size:157677\n-animation/anims/world/rifle/rifle_m249/reload_m249.vnmclip_c CRC:00322078d9 size:157142\n-animation/anims/world/rifle/rifle_m249/reload_m249_silent.vnmclip_c CRC:00c16ec416 size:157142\n+animation/anims/world/rifle/rifle_m249/reload_m249.vnmclip_c CRC:009ace7576 size:157144\n+animation/anims/world/rifle/rifle_m249/reload_m249_silent.vnmclip_c CRC:00cd516f45 size:157144\n animation/anims/world/rifle/rifle_m249/shoot_m249.vnmclip+non_additive.vnmclip_c CRC:0015c65e40 size:13235\n animation/anims/world/rifle/rifle_m249/shoot_m249.vnmclip_c CRC:0027636ef1 size:12238\n animation/anims/world/rifle/rifle_m4a1_silencer/draw_crouch_m4a1s.vnmclip_c CRC:0086bf96d7 size:18976\n@@ -2632,10 +2632,10 @@ animation/anims/world/rifle/rifle_m4a1_silencer/idle_crouch_m4a1s.vnmclip+non_ad\n animation/anims/world/rifle/rifle_m4a1_silencer/idle_crouch_m4a1s.vnmclip_c CRC:0033db17d2 size:2584\n animation/anims/world/rifle/rifle_m4a1_silencer/idle_m4a1s.vnmclip+non_additive.vnmclip_c CRC:005a18191a size:4559\n animation/anims/world/rifle/rifle_m4a1_silencer/idle_m4a1s.vnmclip_c CRC:00a157a4cb size:2619\n-animation/anims/world/rifle/rifle_m4a1_silencer/reload_crouch_m4a1s.vnmclip_c CRC:0073671963 size:36239\n-animation/anims/world/rifle/rifle_m4a1_silencer/reload_crouch_m4a1s_silent.vnmclip_c CRC:00f8cc2ebb size:36239\n-animation/anims/world/rifle/rifle_m4a1_silencer/reload_m4a1s.vnmclip_c CRC:007278e994 size:24387\n-animation/anims/world/rifle/rifle_m4a1_silencer/reload_m4a1s_silent.vnmclip_c CRC:0041a33a38 size:24387\n+animation/anims/world/rifle/rifle_m4a1_silencer/reload_crouch_m4a1s.vnmclip_c CRC:00f603de44 size:36239\n+animation/anims/world/rifle/rifle_m4a1_silencer/reload_crouch_m4a1s_silent.vnmclip_c CRC:00a508b8a5 size:36239\n+animation/anims/world/rifle/rifle_m4a1_silencer/reload_m4a1s.vnmclip_c CRC:005e0cf11f size:24387\n+animation/anims/world/rifle/rifle_m4a1_silencer/reload_m4a1s_silent.vnmclip_c CRC:000ccb678f size:24387\n animation/anims/world/rifle/rifle_m4a1_silencer/shoot_m4a1s.vnmclip+non_additive.vnmclip_c CRC:001c9eebcf size:7594\n animation/anims/world/rifle/rifle_m4a1_silencer/shoot_m4a1s.vnmclip_c CRC:00997ed68e size:6654\n animation/anims/world/rifle/rifle_m4a1_silencer/silencer_attach_m4a1s.vnmclip_c CRC:00493e23da size:47561\n@@ -2646,22 +2646,22 @@ animation/anims/world/rifle/rifle_m4a4/idle_crouch_m4a4.vnmclip+non_additive.vnm\n animation/anims/world/rifle/rifle_m4a4/idle_crouch_m4a4.vnmclip_c CRC:003e544df8 size:4337\n animation/anims/world/rifle/rifle_m4a4/idle_m4a4.vnmclip+non_additive.vnmclip_c CRC:000cebd135 size:4553\n animation/anims/world/rifle/rifle_m4a4/idle_m4a4.vnmclip_c CRC:007d9a6155 size:4082\n-animation/anims/world/rifle/rifle_m4a4/reload_crouch_m4a4.vnmclip_c CRC:005bf7a556 size:29231\n-animation/anims/world/rifle/rifle_m4a4/reload_crouch_m4a4_silent.vnmclip_c CRC:0019c4739a size:29231\n-animation/anims/world/rifle/rifle_m4a4/reload_m4a4.vnmclip_c CRC:00e1d589fb size:29080\n-animation/anims/world/rifle/rifle_m4a4/reload_m4a4_silent.vnmclip_c CRC:000824ee17 size:29080\n+animation/anims/world/rifle/rifle_m4a4/reload_crouch_m4a4.vnmclip_c CRC:0071986696 size:29232\n+animation/anims/world/rifle/rifle_m4a4/reload_crouch_m4a4_silent.vnmclip_c CRC:00abb616dc size:29232\n+animation/anims/world/rifle/rifle_m4a4/reload_m4a4.vnmclip_c CRC:00dcacc1e8 size:29080\n+animation/anims/world/rifle/rifle_m4a4/reload_m4a4_silent.vnmclip_c CRC:00ead03f13 size:29080\n animation/anims/world/rifle/rifle_m4a4/shoot_m4a4.vnmclip+non_additive.vnmclip_c CRC:00f1df64b7 size:7393\n animation/anims/world/rifle/rifle_m4a4/shoot_m4a4.vnmclip_c CRC:0000cca6b6 size:6473\n-animation/anims/world/rifle/rifle_mac10/draw_crouch_mac10.vnmclip_c CRC:00b1447e13 size:18036\n-animation/anims/world/rifle/rifle_mac10/draw_mac10.vnmclip_c CRC:0015f139b9 size:17362\n+animation/anims/world/rifle/rifle_mac10/draw_crouch_mac10.vnmclip_c CRC:00dabca20f size:18033\n+animation/anims/world/rifle/rifle_mac10/draw_mac10.vnmclip_c CRC:00490d8d86 size:17360\n animation/anims/world/rifle/rifle_mac10/idle_crouch_mac10.vnmclip+non_additive.vnmclip_c CRC:00cd493405 size:4570\n animation/anims/world/rifle/rifle_mac10/idle_crouch_mac10.vnmclip_c CRC:00ccb1f835 size:4465\n animation/anims/world/rifle/rifle_mac10/idle_mac10.vnmclip+non_additive.vnmclip_c CRC:00aabec4ee size:4572\n animation/anims/world/rifle/rifle_mac10/idle_mac10.vnmclip_c CRC:00e9058773 size:4279\n-animation/anims/world/rifle/rifle_mac10/reload__crouch_mac10.vnmclip_c CRC:00faacabcb size:29065\n-animation/anims/world/rifle/rifle_mac10/reload__crouch_mac10_silent.vnmclip_c CRC:0014dc5052 size:29081\n-animation/anims/world/rifle/rifle_mac10/reload_mac10.vnmclip_c CRC:000486ba2c size:28952\n-animation/anims/world/rifle/rifle_mac10/reload_mac10_silent.vnmclip_c CRC:00524016c1 size:28952\n+animation/anims/world/rifle/rifle_mac10/reload__crouch_mac10.vnmclip_c CRC:00a4f08312 size:29065\n+animation/anims/world/rifle/rifle_mac10/reload__crouch_mac10_silent.vnmclip_c CRC:00a68dcd33 size:29081\n+animation/anims/world/rifle/rifle_mac10/reload_mac10.vnmclip_c CRC:000f10af1d size:28953\n+animation/anims/world/rifle/rifle_mac10/reload_mac10_silent.vnmclip_c CRC:003ffa0937 size:28953\n animation/anims/world/rifle/rifle_mac10/shoot_mac10.vnmclip+non_additive.vnmclip_c CRC:007bfaed3b size:11564\n animation/anims/world/rifle/rifle_mac10/shoot_mac10.vnmclip_c CRC:00e48376fc size:10458\n animation/anims/world/rifle/rifle_mag7/draw_crouch_mag7.vnmclip_c CRC:00069a534e size:15218\n@@ -2670,10 +2670,10 @@ animation/anims/world/rifle/rifle_mag7/idle_crouch_mag7.vnmclip+non_additive.vnm\n animation/anims/world/rifle/rifle_mag7/idle_crouch_mag7.vnmclip_c CRC:00b8a729a1 size:4462\n animation/anims/world/rifle/rifle_mag7/idle_mag7.vnmclip+non_additive.vnmclip_c CRC:00ae298a6a size:4557\n animation/anims/world/rifle/rifle_mag7/idle_mag7.vnmclip_c CRC:006ba70d6b size:4262\n-animation/anims/world/rifle/rifle_mag7/reload_crouch_mag7.vnmclip_c CRC:006ccec109 size:22809\n-animation/anims/world/rifle/rifle_mag7/reload_crouch_mag7_silent.vnmclip_c CRC:0053d936ed size:22825\n-animation/anims/world/rifle/rifle_mag7/reload_mag7.vnmclip_c CRC:0092e4a390 size:24459\n-animation/anims/world/rifle/rifle_mag7/reload_mag7_silent.vnmclip_c CRC:00f4756b75 size:24459\n+animation/anims/world/rifle/rifle_mag7/reload_crouch_mag7.vnmclip_c CRC:00641b2846 size:22809\n+animation/anims/world/rifle/rifle_mag7/reload_crouch_mag7_silent.vnmclip_c CRC:00caa69eaf size:22825\n+animation/anims/world/rifle/rifle_mag7/reload_mag7.vnmclip_c CRC:00ca583cd3 size:24458\n+animation/anims/world/rifle/rifle_mag7/reload_mag7_silent.vnmclip_c CRC:00a265f1e6 size:24458\n animation/anims/world/rifle/rifle_mag7/shoot_mag7.vnmclip+non_additive.vnmclip_c CRC:0095f58b4b size:9645\n animation/anims/world/rifle/rifle_mag7/shoot_mag7.vnmclip_c CRC:00cd5fc271 size:8757\n animation/anims/world/rifle/rifle_mp5sd/draw2_crouch_mp5sd.vnmclip_c CRC:00daea6add size:14026\n@@ -2684,50 +2684,50 @@ animation/anims/world/rifle/rifle_mp5sd/idle_crouch_mp5sd.vnmclip+non_additive.v\n animation/anims/world/rifle/rifle_mp5sd/idle_crouch_mp5sd.vnmclip_c CRC:003051dd7a size:4476\n animation/anims/world/rifle/rifle_mp5sd/idle_mp5sd.vnmclip+non_additive.vnmclip_c CRC:00577f156e size:4560\n animation/anims/world/rifle/rifle_mp5sd/idle_mp5sd.vnmclip_c CRC:007b606235 size:4385\n-animation/anims/world/rifle/rifle_mp5sd/reload_crouch_mp5sd.vnmclip_c CRC:00e04f8a64 size:27026\n-animation/anims/world/rifle/rifle_mp5sd/reload_crouch_mp5sd_silent.vnmclip_c CRC:003cade9da size:27026\n+animation/anims/world/rifle/rifle_mp5sd/reload_crouch_mp5sd.vnmclip_c CRC:004d682fef size:27027\n+animation/anims/world/rifle/rifle_mp5sd/reload_crouch_mp5sd_silent.vnmclip_c CRC:0049895c5a size:27027\n animation/anims/world/rifle/rifle_mp5sd/reload_mp5sd.vnmclip_c CRC:00186f4d71 size:26868\n animation/anims/world/rifle/rifle_mp5sd/reload_mp5sd_silent.vnmclip_c CRC:005e632582 size:26868\n animation/anims/world/rifle/rifle_mp5sd/shoot_mp5sd.vnmclip+non_additive.vnmclip_c CRC:00f4d5dfab size:7364\n animation/anims/world/rifle/rifle_mp5sd/shoot_mp5sd.vnmclip_c CRC:00c706bb9a size:6298\n-animation/anims/world/rifle/rifle_mp7/draw_crouch_mp7.vnmclip_c CRC:0075efe275 size:15109\n-animation/anims/world/rifle/rifle_mp7/draw_mp7.vnmclip_c CRC:00cdca8f80 size:15383\n+animation/anims/world/rifle/rifle_mp7/draw_crouch_mp7.vnmclip_c CRC:009129ef47 size:15106\n+animation/anims/world/rifle/rifle_mp7/draw_mp7.vnmclip_c CRC:0035a59f76 size:15380\n animation/anims/world/rifle/rifle_mp7/idle_crouch_mp7.vnmclip+non_additive.vnmclip_c CRC:00ba66fbc5 size:4552\n animation/anims/world/rifle/rifle_mp7/idle_crouch_mp7.vnmclip_c CRC:0046bc6dca size:4432\n animation/anims/world/rifle/rifle_mp7/idle_mp7.vnmclip+non_additive.vnmclip_c CRC:001f283bbe size:4531\n animation/anims/world/rifle/rifle_mp7/idle_mp7.vnmclip_c CRC:00ebd1c4ba size:4397\n-animation/anims/world/rifle/rifle_mp7/reload_crouch_mp7.vnmclip_c CRC:00bbee420c size:28735\n-animation/anims/world/rifle/rifle_mp7/reload_crouch_mp7_silent.vnmclip_c CRC:0068100372 size:28735\n-animation/anims/world/rifle/rifle_mp7/reload_mp7.vnmclip_c CRC:00a07b4070 size:28540\n-animation/anims/world/rifle/rifle_mp7/reload_mp7_silent.vnmclip_c CRC:002e906e18 size:28556\n+animation/anims/world/rifle/rifle_mp7/reload_crouch_mp7.vnmclip_c CRC:004c7a3674 size:28735\n+animation/anims/world/rifle/rifle_mp7/reload_crouch_mp7_silent.vnmclip_c CRC:00fadebd4e size:28735\n+animation/anims/world/rifle/rifle_mp7/reload_mp7.vnmclip_c CRC:00a07dfdd9 size:28540\n+animation/anims/world/rifle/rifle_mp7/reload_mp7_silent.vnmclip_c CRC:00fc099247 size:28556\n animation/anims/world/rifle/rifle_mp7/shoot_mp7.vnmclip+non_additive.vnmclip_c CRC:001a15c5d1 size:9508\n animation/anims/world/rifle/rifle_mp7/shoot_mp7.vnmclip_c CRC:00e57e39ee size:8888\n-animation/anims/world/rifle/rifle_mp9/draw__crouch_mp9.vnmclip_c CRC:002a638eaa size:16336\n-animation/anims/world/rifle/rifle_mp9/draw_mp9.vnmclip_c CRC:00318888bd size:16854\n+animation/anims/world/rifle/rifle_mp9/draw__crouch_mp9.vnmclip_c CRC:00713e77f3 size:16336\n+animation/anims/world/rifle/rifle_mp9/draw_mp9.vnmclip_c CRC:0081e80e34 size:16854\n animation/anims/world/rifle/rifle_mp9/idle_crouch_mp9.vnmclip+non_additive.vnmclip_c CRC:001bdf4c89 size:4576\n animation/anims/world/rifle/rifle_mp9/idle_crouch_mp9.vnmclip_c CRC:007789dcf4 size:4475\n animation/anims/world/rifle/rifle_mp9/idle_mp9.vnmclip+non_additive.vnmclip_c CRC:00d9f0a4e2 size:4569\n animation/anims/world/rifle/rifle_mp9/idle_mp9.vnmclip_c CRC:00a0059a5b size:4269\n-animation/anims/world/rifle/rifle_mp9/reload_crouch_mp9.vnmclip_c CRC:00d3a5a6e9 size:25862\n-animation/anims/world/rifle/rifle_mp9/reload_crouch_mp9_silent.vnmclip_c CRC:0049da522c size:25862\n-animation/anims/world/rifle/rifle_mp9/reload_mp9.vnmclip_c CRC:0066a86d8d size:26123\n-animation/anims/world/rifle/rifle_mp9/reload_mp9_silent.vnmclip_c CRC:00020952ab size:26139\n+animation/anims/world/rifle/rifle_mp9/reload_crouch_mp9.vnmclip_c CRC:009a9d7102 size:25862\n+animation/anims/world/rifle/rifle_mp9/reload_crouch_mp9_silent.vnmclip_c CRC:008c02e690 size:25862\n+animation/anims/world/rifle/rifle_mp9/reload_mp9.vnmclip_c CRC:0055b6b7b3 size:26124\n+animation/anims/world/rifle/rifle_mp9/reload_mp9_silent.vnmclip_c CRC:00bb198516 size:26140\n animation/anims/world/rifle/rifle_mp9/shoot_mp9.vnmclip+non_additive.vnmclip_c CRC:00c5acc74e size:9787\n animation/anims/world/rifle/rifle_mp9/shoot_mp9.vnmclip_c CRC:00d297b6b4 size:8803\n-animation/anims/world/rifle/rifle_negev/draw_crouch_negev.vnmclip_c CRC:0020ed3cfd size:17904\n-animation/anims/world/rifle/rifle_negev/draw_negev.vnmclip_c CRC:0052203ce2 size:16309\n+animation/anims/world/rifle/rifle_negev/draw_crouch_negev.vnmclip_c CRC:00b636c99f size:17903\n+animation/anims/world/rifle/rifle_negev/draw_negev.vnmclip_c CRC:0043e10aea size:16310\n animation/anims/world/rifle/rifle_negev/idle_crouch_negev.vnmclip+non_additive.vnmclip_c CRC:00598ad530 size:4567\n animation/anims/world/rifle/rifle_negev/idle_crouch_negev.vnmclip_c CRC:00a25246a7 size:4472\n animation/anims/world/rifle/rifle_negev/idle_negev.vnmclip+non_additive.vnmclip_c CRC:0049ea56ab size:4560\n animation/anims/world/rifle/rifle_negev/idle_negev.vnmclip_c CRC:0045d9a1e8 size:4278\n-animation/anims/world/rifle/rifle_negev/reload_crouch_negev.vnmclip_c CRC:00db19c56d size:106953\n-animation/anims/world/rifle/rifle_negev/reload_crouch_negev_silent.vnmclip_c CRC:0000b1d101 size:106969\n-animation/anims/world/rifle/rifle_negev/reload_negev.vnmclip_c CRC:001719b36b size:106415\n-animation/anims/world/rifle/rifle_negev/reload_negev_silent.vnmclip_c CRC:00fc6b54f0 size:106415\n+animation/anims/world/rifle/rifle_negev/reload_crouch_negev.vnmclip_c CRC:00d0f11191 size:106955\n+animation/anims/world/rifle/rifle_negev/reload_crouch_negev_silent.vnmclip_c CRC:0015e8f62c size:106971\n+animation/anims/world/rifle/rifle_negev/reload_negev.vnmclip_c CRC:000f1c2b4b size:106416\n+animation/anims/world/rifle/rifle_negev/reload_negev_silent.vnmclip_c CRC:000fcd58f1 size:106416\n animation/anims/world/rifle/rifle_negev/shoot_negev.vnmclip+non_additive.vnmclip_c CRC:0020229954 size:20223\n animation/anims/world/rifle/rifle_negev/shoot_negev.vnmclip_c CRC:00fd67bb97 size:19070\n-animation/anims/world/rifle/rifle_nova/draw_crouch_nova.vnmclip_c CRC:009f4e5fda size:13104\n-animation/anims/world/rifle/rifle_nova/draw_nova.vnmclip_c CRC:0022fc514f size:13425\n+animation/anims/world/rifle/rifle_nova/draw_crouch_nova.vnmclip_c CRC:001dfa3361 size:13105\n+animation/anims/world/rifle/rifle_nova/draw_nova.vnmclip_c CRC:0028d26ebf size:13426\n animation/anims/world/rifle/rifle_nova/idle_crouch_nova.vnmclip+non_additive.vnmclip_c CRC:00fd90dbbc size:4577\n animation/anims/world/rifle/rifle_nova/idle_crouch_nova.vnmclip_c CRC:0033c49b6a size:4450\n animation/anims/world/rifle/rifle_nova/idle_nova.vnmclip+non_additive.vnmclip_c CRC:00a66d1057 size:4576\n@@ -2738,16 +2738,16 @@ animation/anims/world/rifle/rifle_nova/reload_nova.vnmclip_c CRC:000818f5a8 size\n animation/anims/world/rifle/rifle_nova/reload_nova_silent.vnmclip_c CRC:003df945b5 size:20914\n animation/anims/world/rifle/rifle_nova/shoot_nova.vnmclip+non_additive.vnmclip_c CRC:000b71642f size:9854\n animation/anims/world/rifle/rifle_nova/shoot_nova.vnmclip_c CRC:005ec69ba3 size:8671\n-animation/anims/world/rifle/rifle_p90/draw_crouch_p90.vnmclip_c CRC:0079064230 size:16737\n-animation/anims/world/rifle/rifle_p90/draw_p90.vnmclip_c CRC:001d3a0164 size:17155\n+animation/anims/world/rifle/rifle_p90/draw_crouch_p90.vnmclip_c CRC:005d6c1888 size:16737\n+animation/anims/world/rifle/rifle_p90/draw_p90.vnmclip_c CRC:0083e3cb43 size:17155\n animation/anims/world/rifle/rifle_p90/idle_crouch_p90.vnmclip+non_additive.vnmclip_c CRC:00e05854a6 size:4578\n animation/anims/world/rifle/rifle_p90/idle_crouch_p90.vnmclip_c CRC:003ede180b size:4479\n animation/anims/world/rifle/rifle_p90/idle_p90.vnmclip+non_additive.vnmclip_c CRC:00d2ebce33 size:4559\n animation/anims/world/rifle/rifle_p90/idle_p90.vnmclip_c CRC:002c78f996 size:4288\n-animation/anims/world/rifle/rifle_p90/reload_crouch_p90.vnmclip_c CRC:006d5b1e8d size:35373\n-animation/anims/world/rifle/rifle_p90/reload_crouch_p90_silent.vnmclip_c CRC:00f6bf86bc size:35389\n-animation/anims/world/rifle/rifle_p90/reload_p90.vnmclip_c CRC:0069672f2f size:35369\n-animation/anims/world/rifle/rifle_p90/reload_p90_silent.vnmclip_c CRC:00ad890452 size:35369\n+animation/anims/world/rifle/rifle_p90/reload_crouch_p90.vnmclip_c CRC:007f4dc41d size:35373\n+animation/anims/world/rifle/rifle_p90/reload_crouch_p90_silent.vnmclip_c CRC:003fef6d53 size:35389\n+animation/anims/world/rifle/rifle_p90/reload_p90.vnmclip_c CRC:000cfabc85 size:35369\n+animation/anims/world/rifle/rifle_p90/reload_p90_silent.vnmclip_c CRC:00f2f70454 size:35369\n animation/anims/world/rifle/rifle_p90/shoot_p90.vnmclip+non_additive.vnmclip_c CRC:001789d867 size:13689\n animation/anims/world/rifle/rifle_p90/shoot_p90.vnmclip_c CRC:005a339bcf size:12682\n animation/anims/world/rifle/rifle_sawedoff/draw_crouch_sawedoff.vnmclip_c CRC:00639df0a7 size:16699\n@@ -2756,69 +2756,69 @@ animation/anims/world/rifle/rifle_sawedoff/idle_crouch_sawedoff.vnmclip+non_addi\n animation/anims/world/rifle/rifle_sawedoff/idle_crouch_sawedoff.vnmclip_c CRC:00132a892a size:4452\n animation/anims/world/rifle/rifle_sawedoff/idle_sawedoff.vnmclip+non_additive.vnmclip_c CRC:00878ec4e3 size:4574\n animation/anims/world/rifle/rifle_sawedoff/idle_sawedoff.vnmclip_c CRC:00e20d955c size:4253\n-animation/anims/world/rifle/rifle_sawedoff/reload_crouch_sawedoff.vnmclip_c CRC:0088fb6e2e size:17922\n-animation/anims/world/rifle/rifle_sawedoff/reload_crouch_sawedoff_silent.vnmclip_c CRC:00094792d7 size:17922\n-animation/anims/world/rifle/rifle_sawedoff/reload_sawedoff.vnmclip_c CRC:002f30fe56 size:17765\n-animation/anims/world/rifle/rifle_sawedoff/reload_sawedoff_silent.vnmclip_c CRC:00d5467ccb size:17765\n+animation/anims/world/rifle/rifle_sawedoff/reload_crouch_sawedoff.vnmclip_c CRC:00d34f2891 size:17925\n+animation/anims/world/rifle/rifle_sawedoff/reload_crouch_sawedoff_silent.vnmclip_c CRC:0066ddb12f size:17925\n+animation/anims/world/rifle/rifle_sawedoff/reload_sawedoff.vnmclip_c CRC:005652c566 size:17762\n+animation/anims/world/rifle/rifle_sawedoff/reload_sawedoff_silent.vnmclip_c CRC:008efa0537 size:17778\n animation/anims/world/rifle/rifle_sawedoff/shoot_sawedoff.vnmclip+non_additive.vnmclip_c CRC:00db987845 size:9812\n animation/anims/world/rifle/rifle_sawedoff/shoot_sawedoff.vnmclip_c CRC:008ad1a310 size:8846\n-animation/anims/world/rifle/rifle_scar/draw_crouch_scar20.vnmclip_c CRC:008d827eee size:13515\n-animation/anims/world/rifle/rifle_scar/draw_scar20.vnmclip_c CRC:0092b2b949 size:13115\n+animation/anims/world/rifle/rifle_scar/draw_crouch_scar20.vnmclip_c CRC:00307501b8 size:13502\n+animation/anims/world/rifle/rifle_scar/draw_scar20.vnmclip_c CRC:0090ff3414 size:13112\n animation/anims/world/rifle/rifle_scar/idle_crouch_scar20.vnmclip+non_additive.vnmclip_c CRC:00223d85bf size:4564\n animation/anims/world/rifle/rifle_scar/idle_crouch_scar20.vnmclip_c CRC:009eab1ae6 size:4447\n animation/anims/world/rifle/rifle_scar/idle_scar20.vnmclip+non_additive.vnmclip_c CRC:00bdf98c6a size:4566\n animation/anims/world/rifle/rifle_scar/idle_scar20.vnmclip_c CRC:003282e2b3 size:4244\n-animation/anims/world/rifle/rifle_scar/reload_crouch_scar20.vnmclip_c CRC:003a53774c size:28611\n-animation/anims/world/rifle/rifle_scar/reload_crouch_scar20_silent.vnmclip_c CRC:00cb3e15dd size:28611\n-animation/anims/world/rifle/rifle_scar/reload_scar20.vnmclip_c CRC:00792520b6 size:30344\n-animation/anims/world/rifle/rifle_scar/reload_scar20_silent.vnmclip_c CRC:00005e8d90 size:30344\n+animation/anims/world/rifle/rifle_scar/reload_crouch_scar20.vnmclip_c CRC:00506cd7f5 size:28611\n+animation/anims/world/rifle/rifle_scar/reload_crouch_scar20_silent.vnmclip_c CRC:00bb2d2de1 size:28611\n+animation/anims/world/rifle/rifle_scar/reload_scar20.vnmclip_c CRC:00cc6418f4 size:30344\n+animation/anims/world/rifle/rifle_scar/reload_scar20_silent.vnmclip_c CRC:001837e245 size:30344\n animation/anims/world/rifle/rifle_scar/shoot_scar20.vnmclip+non_additive.vnmclip_c CRC:0063da594a size:11692\n animation/anims/world/rifle/rifle_scar/shoot_scar20.vnmclip_c CRC:004a5377a6 size:10384\n-animation/anims/world/rifle/rifle_sg556/draw_crouch_sg556.vnmclip_c CRC:00c0d381bd size:13524\n-animation/anims/world/rifle/rifle_sg556/draw_sg556.vnmclip_c CRC:00400cec9c size:13958\n+animation/anims/world/rifle/rifle_sg556/draw_crouch_sg556.vnmclip_c CRC:005111e677 size:13524\n+animation/anims/world/rifle/rifle_sg556/draw_sg556.vnmclip_c CRC:0029da185a size:13958\n animation/anims/world/rifle/rifle_sg556/idle_crouch_sg556.vnmclip+non_additive.vnmclip_c CRC:00110d3cea size:4574\n animation/anims/world/rifle/rifle_sg556/idle_crouch_sg556.vnmclip_c CRC:00f995cbcc size:4443\n animation/anims/world/rifle/rifle_sg556/idle_sg556.vnmclip+non_additive.vnmclip_c CRC:000e3fdec2 size:4564\n animation/anims/world/rifle/rifle_sg556/idle_sg556.vnmclip_c CRC:00310ab755 size:4409\n-animation/anims/world/rifle/rifle_sg556/reload_crouch_sg556.vnmclip_c CRC:002765af11 size:25249\n-animation/anims/world/rifle/rifle_sg556/reload_crouch_sg556_silent.vnmclip_c CRC:00a7981c5b size:25265\n-animation/anims/world/rifle/rifle_sg556/reload_sg556.vnmclip_c CRC:00daf51dce size:24867\n-animation/anims/world/rifle/rifle_sg556/reload_sg556_silent.vnmclip_c CRC:00877dd825 size:24867\n+animation/anims/world/rifle/rifle_sg556/reload_crouch_sg556.vnmclip_c CRC:00f3a1e3d9 size:25248\n+animation/anims/world/rifle/rifle_sg556/reload_crouch_sg556_silent.vnmclip_c CRC:008cc45ab7 size:25264\n+animation/anims/world/rifle/rifle_sg556/reload_sg556.vnmclip_c CRC:0043e9fa93 size:24866\n+animation/anims/world/rifle/rifle_sg556/reload_sg556_silent.vnmclip_c CRC:00b2846984 size:24866\n animation/anims/world/rifle/rifle_sg556/shoot_sg556.vnmclip+non_additive.vnmclip_c CRC:00e46754b4 size:10377\n animation/anims/world/rifle/rifle_sg556/shoot_sg556.vnmclip_c CRC:0094e6208f size:9404\n animation/anims/world/rifle/rifle_ssg08/draw_crouch_ssg08.vnmclip_c CRC:007d07ec12 size:16969\n-animation/anims/world/rifle/rifle_ssg08/draw_ssg08.vnmclip_c CRC:003531547e size:17140\n+animation/anims/world/rifle/rifle_ssg08/draw_ssg08.vnmclip_c CRC:00e6d92766 size:17139\n animation/anims/world/rifle/rifle_ssg08/idle_crouch_ssg08.vnmclip+non_additive.vnmclip_c CRC:001d9a6444 size:4568\n animation/anims/world/rifle/rifle_ssg08/idle_crouch_ssg08.vnmclip_c CRC:008df02f66 size:4392\n animation/anims/world/rifle/rifle_ssg08/idle_ssg08.vnmclip+non_additive.vnmclip_c CRC:00e7265579 size:4575\n animation/anims/world/rifle/rifle_ssg08/idle_ssg08.vnmclip_c CRC:00daafce8a size:4143\n-animation/anims/world/rifle/rifle_ssg08/reload_crouch_ssg08.vnmclip_c CRC:00f0d70361 size:33732\n-animation/anims/world/rifle/rifle_ssg08/reload_crouch_ssg08_silent.vnmclip_c CRC:00b432a0cd size:33748\n-animation/anims/world/rifle/rifle_ssg08/reload_ssg08.vnmclip_c CRC:004b8251d0 size:33217\n-animation/anims/world/rifle/rifle_ssg08/reload_ssg08_silent.vnmclip_c CRC:00192591d7 size:33217\n+animation/anims/world/rifle/rifle_ssg08/reload_crouch_ssg08.vnmclip_c CRC:00bdd298c3 size:33732\n+animation/anims/world/rifle/rifle_ssg08/reload_crouch_ssg08_silent.vnmclip_c CRC:00f7ad95bc size:33748\n+animation/anims/world/rifle/rifle_ssg08/reload_ssg08.vnmclip_c CRC:003e70b4f3 size:33217\n+animation/anims/world/rifle/rifle_ssg08/reload_ssg08_silent.vnmclip_c CRC:00558bdf80 size:33217\n animation/anims/world/rifle/rifle_ssg08/shoot_ssg08.vnmclip+non_additive.vnmclip_c CRC:00aa8b00a1 size:18630\n animation/anims/world/rifle/rifle_ssg08/shoot_ssg08.vnmclip_c CRC:003d1becb2 size:17769\n-animation/anims/world/rifle/rifle_ump45/draw_crouch_ump45.vnmclip_c CRC:009dadc2c8 size:17118\n-animation/anims/world/rifle/rifle_ump45/draw_ump45.vnmclip_c CRC:0080790016 size:17503\n+animation/anims/world/rifle/rifle_ump45/draw_crouch_ump45.vnmclip_c CRC:00370c8565 size:17114\n+animation/anims/world/rifle/rifle_ump45/draw_ump45.vnmclip_c CRC:00a2d3aee1 size:17503\n animation/anims/world/rifle/rifle_ump45/idle_crouch_ump45.vnmclip+non_additive.vnmclip_c CRC:0040b79059 size:4580\n animation/anims/world/rifle/rifle_ump45/idle_crouch_ump45.vnmclip_c CRC:001cc0fab4 size:4450\n animation/anims/world/rifle/rifle_ump45/idle_ump45.vnmclip+non_additive.vnmclip_c CRC:0095b7d3ba size:4550\n animation/anims/world/rifle/rifle_ump45/idle_ump45.vnmclip_c CRC:00bb3bfdb2 size:4430\n-animation/anims/world/rifle/rifle_ump45/reload_crouch_ump45.vnmclip_c CRC:000adaf2b9 size:30926\n-animation/anims/world/rifle/rifle_ump45/reload_crouch_ump45_silent.vnmclip_c CRC:003d87c479 size:30926\n-animation/anims/world/rifle/rifle_ump45/reload_ump45.vnmclip_c CRC:005efdad2d size:30855\n-animation/anims/world/rifle/rifle_ump45/reload_ump45_silent.vnmclip_c CRC:00a7ffc259 size:30855\n+animation/anims/world/rifle/rifle_ump45/reload_crouch_ump45.vnmclip_c CRC:0004952794 size:30927\n+animation/anims/world/rifle/rifle_ump45/reload_crouch_ump45_silent.vnmclip_c CRC:000c1af705 size:30927\n+animation/anims/world/rifle/rifle_ump45/reload_ump45.vnmclip_c CRC:005194008b size:30856\n+animation/anims/world/rifle/rifle_ump45/reload_ump45_silent.vnmclip_c CRC:00277179a6 size:30856\n animation/anims/world/rifle/rifle_ump45/shoot_ump45.vnmclip+non_additive.vnmclip_c CRC:00767f56c7 size:11385\n animation/anims/world/rifle/rifle_ump45/shoot_ump45.vnmclip_c CRC:004569bf32 size:10361\n-animation/anims/world/rifle/rifle_xm1014/draw_crouch_xm1014.vnmclip_c CRC:0096f80a10 size:11406\n-animation/anims/world/rifle/rifle_xm1014/draw_xm1014.vnmclip_c CRC:005eb31210 size:11615\n+animation/anims/world/rifle/rifle_xm1014/draw_crouch_xm1014.vnmclip_c CRC:00d4dd8308 size:11409\n+animation/anims/world/rifle/rifle_xm1014/draw_xm1014.vnmclip_c CRC:00efec21ca size:11615\n animation/anims/world/rifle/rifle_xm1014/idle_crouch_xm1014.vnmclip+non_additive.vnmclip_c CRC:00b770bc92 size:4896\n animation/anims/world/rifle/rifle_xm1014/idle_crouch_xm1014.vnmclip_c CRC:0078e4f517 size:4877\n animation/anims/world/rifle/rifle_xm1014/idle_xm1014.vnmclip+non_additive.vnmclip_c CRC:003fdad468 size:4898\n animation/anims/world/rifle/rifle_xm1014/idle_xm1014.vnmclip_c CRC:00daa71b1b size:4622\n animation/anims/world/rifle/rifle_xm1014/reload_crouch_xm1014.vnmclip_c CRC:00f44a4597 size:19028\n animation/anims/world/rifle/rifle_xm1014/reload_crouch_xm1014_silent.vnmclip_c CRC:007abc64c4 size:19044\n-animation/anims/world/rifle/rifle_xm1014/reload_xm1014.vnmclip_c CRC:002b142038 size:19379\n+animation/anims/world/rifle/rifle_xm1014/reload_xm1014.vnmclip_c CRC:00ca8a7cfc size:19379\n animation/anims/world/rifle/rifle_xm1014/reload_xm1014_silent.vnmclip_c CRC:002b7ad3e1 size:19379\n animation/anims/world/rifle/rifle_xm1014/shoot_xm1014.vnmclip+non_additive.vnmclip_c CRC:00db565ebe size:9457\n animation/anims/world/rifle/rifle_xm1014/shoot_xm1014.vnmclip_c CRC:003f942730 size:8407\n@@ -3139,7 +3139,7 @@ animation/graphs/viewmodel/viewmodel_knife.vnmgraph_c CRC:002f223d05 size:8504\n animation/graphs/viewmodel/viewmodel_knife_butterfly.vnmgraph_c CRC:00d8a1d1f2 size:8335\n animation/graphs/viewmodel/viewmodel_knife_karambit.vnmgraph_c CRC:00a460498e size:8333\n animation/graphs/viewmodel/viewmodel_knife_talon.vnmgraph_c CRC:0092514c48 size:8249\n-animation/graphs/worldmodel/worldmodel.vnmgraph_c CRC:00bb1317bb size:73481\n+animation/graphs/worldmodel/worldmodel.vnmgraph_c CRC:00ebc8f863 size:73496\n animation/graphs/worldmodel/worldmodel_grenade.vnmgraph+decoy.vnmgraph_c CRC:008065ce30 size:5313\n animation/graphs/worldmodel/worldmodel_grenade.vnmgraph+flash.vnmgraph_c CRC:00e879d270 size:5315\n animation/graphs/worldmodel/worldmodel_grenade.vnmgraph+he.vnmgraph_c CRC:006f790dc2 size:5311\n@@ -3326,11 +3326,11 @@ cfg/moddefaults.txt CRC:0068b076c6 size:315510\n cfg/survival/coop/coop_sirocco_missions.kv3 CRC:00bd783c4a size:8518\n cfg/survival/coop/dzcooptest_missions.kv3 CRC:00d63215ed size:5899\n cfg/survival/survival_config.kv3 CRC:0034a09936 size:30113\n-cfg/video_defaults_0.txt CRC:009c72f446 size:467\n-cfg/video_defaults_1.txt CRC:0008f0936a size:468\n-cfg/video_defaults_2.txt CRC:005439d79a size:468\n-cfg/video_defaults_3.txt CRC:007a888e0e size:477\n-cfg/video_version.txt CRC:00ff3ce713 size:197\n+cfg/video_defaults_0.txt CRC:00877dcf55 size:510\n+cfg/video_defaults_1.txt CRC:00009efb39 size:511\n+cfg/video_defaults_2.txt CRC:0051fcad97 size:511\n+cfg/video_defaults_3.txt CRC:003ba1472c size:520\n+cfg/video_version.txt CRC:00594beca7 size:197\n characters/models/ctm_diver/ctm_diver_varianta.vmdl_c CRC:00086fed19 size:4818\n characters/models/ctm_diver/ctm_diver_variantb.vmdl_c CRC:00eb02f675 size:4818\n characters/models/ctm_diver/ctm_diver_variantc.vmdl_c CRC:00b5d9ff51 size:4818\n@@ -16795,6 +16795,7 @@ materials/dev/dof2.vmat_c CRC:00c942e8ea size:1516\n materials/dev/downsample_outlineglows.vmat_c CRC:00446ffccc size:1306\n materials/dev/film_grain_noise_tga_ee035d08.vtex_c CRC:00fb5bcc34 size:34784\n materials/dev/friendly_crosshair_icon_psd_66512e34.vtex_c CRC:00506e3570 size:18480\n+materials/dev/frost.vtex_c CRC:000dc5f403 size:1400232\n materials/dev/generate_decal_normals.vmat_c CRC:00cc728db2 size:1584\n materials/dev/glow_health_color.vmat_c CRC:00af2f9c86 size:3056\n materials/dev/glow_health_color_vmat_g_tcolor_37753f91.vtex_c CRC:00b53b1e0e size:1968\n@@ -84434,7 +84435,7 @@ panorama/layout/settings/settings_promoted.vxml_c CRC:00680b88f2 size:2157\n panorama/layout/settings/settings_search.vxml_c CRC:00656a9fbc size:2302\n panorama/layout/settings/settings_slider.vxml_c CRC:00271e714b size:1988\n panorama/layout/settings/settings_steaminput.vxml_c CRC:00e643d64a size:5018\n-panorama/layout/settings/settings_video.vxml_c CRC:00177cb05e size:7903\n+panorama/layout/settings/settings_video.vxml_c CRC:00a566c7fe size:8015\n panorama/layout/shielddamagealert.vxml_c CRC:00444e5974 size:1592\n panorama/layout/simple_player_tile.vxml_c CRC:00b16a2ced size:1709\n panorama/layout/slider_toggle.vxml_c CRC:0051cab4e4 size:1596\n@@ -87985,31 +87986,31 @@ resource/csgo_bulgarian.txt CRC:00ad431afd size:7759343\n resource/csgo_czech.txt CRC:005482a707 size:5097565\n resource/csgo_danish.txt CRC:00bb321d04 size:5004038\n resource/csgo_dutch.txt CRC:0045192cf1 size:5049873\n-resource/csgo_english.txt CRC:00e83600df size:4879039\n-resource/csgo_finnish.txt CRC:00a79f8c2b size:4960818\n+resource/csgo_english.txt CRC:00e80a07c7 size:4879236\n+resource/csgo_finnish.txt CRC:002fc7ab9d size:4960817\n resource/csgo_french.txt CRC:002433e025 size:5254990\n-resource/csgo_german.txt CRC:008c76453f size:5165453\n-resource/csgo_greek.txt CRC:00a68efa30 size:7151367\n+resource/csgo_german.txt CRC:00b7318010 size:5165419\n+resource/csgo_greek.txt CRC:003592854b size:7152191\n resource/csgo_hungarian.txt CRC:000a1961a8 size:5078957\n resource/csgo_indonesian.txt CRC:0023f7fd61 size:4729593\n-resource/csgo_italian.txt CRC:0019309189 size:5178719\n+resource/csgo_italian.txt CRC:0001be6bca size:5178719\n resource/csgo_japanese.txt CRC:007c931b86 size:5333463\n-resource/csgo_koreana.txt CRC:007c56bde5 size:5096798\n+resource/csgo_koreana.txt CRC:004c2ea4f8 size:5097080\n resource/csgo_latam.txt CRC:00430502d0 size:5188734\n resource/csgo_norwegian.txt CRC:001049104e size:4925063\n-resource/csgo_polish.txt CRC:0048f2bc13 size:5321400\n+resource/csgo_polish.txt CRC:00f548da8d size:5322005\n resource/csgo_portuguese.txt CRC:00bf8fe57b size:5060318\n-resource/csgo_romanian.txt CRC:00f8a9b880 size:5271518\n-resource/csgo_russian.txt CRC:0089b5889a size:6563734\n-resource/csgo_schinese.txt CRC:007b74ea72 size:4931452\n+resource/csgo_romanian.txt CRC:00999ead8f size:5271569\n+resource/csgo_russian.txt CRC:00e74335d2 size:6564323\n+resource/csgo_schinese.txt CRC:002d1fa173 size:4931866\n resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645\n resource/csgo_spanish.txt CRC:00deb972b5 size:5160188\n resource/csgo_swedish.txt CRC:00b4c12d74 size:5032375\n-resource/csgo_tchinese.txt CRC:00f44e6b58 size:4627815\n-resource/csgo_thai.txt CRC:00826d1c7b size:8128621\n+resource/csgo_tchinese.txt CRC:00e8efb69c size:4628387\n+resource/csgo_thai.txt CRC:0079d7968d size:8129614\n resource/csgo_turkish.txt CRC:00cabf481a size:5165905\n resource/csgo_ukrainian.txt CRC:003ac03c61 size:6621798\n-resource/csgo_vietnamese.txt CRC:00ee4d1e19 size:5450532\n+resource/csgo_vietnamese.txt CRC:007aea5525 size:5451149\n resource/game.gameevents CRC:0090de10bc size:9837\n resource/halflife2.vfont CRC:00b064848c size:58000\n resource/mod.gameevents CRC:0035ddf423 size:20770\n@@ -88098,6 +88099,12 @@ scripts/ai/practice/modules/newplayer_dust2_01/bt_t_5.kv3 CRC:00f8f036c3 size:61\n scripts/ai/practice/modules/newplayer_dust2_01/bt_takeover_strategy.kv3 CRC:00a42346ef size:1427\n scripts/ai/practice/modules/newplayer_dust2_01/bt_wait.kv3 CRC:00a764ca22 size:295\n scripts/ai/practice/newplayer_dust2_01.kv3 CRC:005756f767 size:8887\n+scripts/ai/retakes/bt_config.kv3 CRC:0067e7fe47 size:17972\n+scripts/ai/retakes/bt_default.kv3 CRC:000f58389f size:3897\n+scripts/ai/retakes/modules/bt_defuse_planted_bomb.kv3 CRC:0080a2708c size:1259\n+scripts/ai/retakes/modules/bt_hide_near_planted_bomb.kv3 CRC:0088fd0792 size:3180\n+scripts/ai/retakes/modules/bt_hold_near_planted_bomb.kv3 CRC:00b91d97cf size:988\n+scripts/ai/retakes/modules/bt_watch_approach_points.kv3 CRC:00b7703534 size:489\n scripts/ai/rush/bt_config.kv3 CRC:0067e7fe47 size:17972\n scripts/ai/rush/bt_default.kv3 CRC:00a81d754f size:4520\n scripts/camera_data.json CRC:00b8437a11 size:1887\n@@ -135581,7 +135588,8 @@ weapons/models/bizon/weapon_smg_bizon_mag.vmdl_c CRC:0015b02247 size:75366\n weapons/models/c4/defuse_multimeter.vmdl_c CRC:0007a5ff05 size:37678\n weapons/models/c4/materials/c4_ao_tga_bb64a00d.vtex_c CRC:009ea6f6e8 size:1562328\n weapons/models/c4/materials/c4_color_psd_75da6dec.vtex_c CRC:0044656af2 size:4287764\n-weapons/models/c4/materials/c4_digits_psd_52746c2d.vtex_c CRC:008f08827c size:77606\n+weapons/models/c4/materials/c4_digits_mask_psd_3de339d1.vtex_c CRC:0050f6267a size:45808\n+weapons/models/c4/materials/c4_digits_psd_f79d8a5b.vtex_c CRC:00f5905449 size:62459\n weapons/models/c4/materials/c4_led_selfillum_psd_d8363a2a.vtex_c CRC:00d7344b97 size:46702\n weapons/models/c4/materials/c4_normal_tga_389762e7.vtex_c CRC:001fe768f2 size:1317004\n weapons/models/c4/materials/c4_normal_tga_4e48d437.vtex_c CRC:00c3a1128e size:4914548\n@@ -135603,9 +135611,10 @@ weapons/models/c4/materials/defuse_multimeter_color_psd_93513db5.vtex_c CRC:0088\n weapons/models/c4/materials/defuse_multimeter_rough_tga_4ee97d61.vtex_c CRC:0041a8839e size:229308\n weapons/models/c4/materials/stickers/weapon_c4_sticker_mask_psd_a9cf6509.vtex_c CRC:0005f9ce48 size:16785\n weapons/models/c4/materials/weapon_c4.vmat_c CRC:0078b6f155 size:7204\n-weapons/models/c4/materials/weapon_c4_digits.vmat_c CRC:0092001150 size:3956\n+weapons/models/c4/materials/weapon_c4_digits.vmat_c CRC:00a850ca82 size:4660\n+weapons/models/c4/materials/weapon_c4_digits_vmat_g_tcolor_6dc78c9e.vtex_c CRC:000a0f569e size:2000\n weapons/models/c4/materials/weapon_c4_digits_vmat_g_tmetalness_5818ca09.vtex_c CRC:00702fc683 size:2256\n-weapons/models/c4/weapon_c4.vmdl_c CRC:006f816ff5 size:470164\n+weapons/models/c4/weapon_c4.vmdl_c CRC:00d9190618 size:468916\n weapons/models/cz75a/materials/composite_inputs/weapon_pist_cz75a_cavity_psd_ffc5ea6f.vtex_c CRC:0083759f3e size:706616\n weapons/models/cz75a/materials/composite_inputs/weapon_pist_cz75a_composite_inputs.vmat_c CRC:00cab58bff size:3929\n weapons/models/cz75a/materials/composite_inputs/weapon_pist_cz75a_masks_png_bb8e5559.vtex_c CRC:00c8d75ff0 size:188419\n@@ -136442,7 +136451,7 @@ weapons/paints/community/community_37/p90_deathgaze.vcompmat_c CRC:009016d88e si\n weapons/paints/community/community_37/sawedoff_fusion.vcompmat_c CRC:00135969c4 size:5812\n weapons/paints/community/community_37/ump_fragment.vcompmat_c CRC:009bc9c301 size:5833\n weapons/paints/community/community_37/usps_silent_boy.vcompmat_c CRC:00a4c87d7a size:5907\n-weapons/paints/legacy/_shared_paint_generic.vcompmat_c CRC:002dccc7cf size:3038\n+weapons/paints/legacy/_shared_paint_generic.vcompmat_c CRC:0008e69648 size:3096\n weapons/paints/legacy/aa_ancient_brown.vcompmat_c CRC:00a92f27e9 size:1681\n weapons/paints/legacy/aa_awp_fade.vcompmat_c CRC:0094e96f18 size:1612\n weapons/paints/legacy/aa_desert_bloom_bright.vcompmat_c CRC:00cb8b3cb9 size:1704"
        },
        {
          "filename": "game/csgo/pak01_dir/cfg/video_defaults_0.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -12,6 +12,7 @@\n \t\"setting.videocfg_texture_detail\"\t\t\t\"0\"\n \t\"setting.videocfg_particle_detail\"\t\t\t\"0\"\n \t\"setting.videocfg_ao_detail\"\t\t\t\t\"0\"\n+\t\"setting.videocfg_parallax_detail\"\t\t\t\"0\"\n \t\"setting.videocfg_hdr_detail\"\t\t\t\t\"3\"\n \t\"setting.videocfg_fsr_detail\"\t\t\t\t\"3\"\n "
        },
        {
          "filename": "game/csgo/pak01_dir/cfg/video_defaults_1.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -12,6 +12,7 @@\n \t\"setting.videocfg_texture_detail\"\t\t\t\"1\"\n \t\"setting.videocfg_particle_detail\"\t\t\t\"1\"\n \t\"setting.videocfg_ao_detail\"\t\t\t\t\"0\"\n+\t\"setting.videocfg_parallax_detail\"\t\t\t\"0\"\n \t\"setting.videocfg_hdr_detail\"\t\t\t\t\"3\"\n \t\"setting.videocfg_fsr_detail\"\t\t\t\t\"2\"\n "
        },
        {
          "filename": "game/csgo/pak01_dir/cfg/video_defaults_2.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -12,6 +12,7 @@\n \t\"setting.videocfg_texture_detail\"\t\t\t\"2\"\n \t\"setting.videocfg_particle_detail\"\t\t\t\"2\"\n \t\"setting.videocfg_ao_detail\"\t\t\t\t\"2\"\n+\t\"setting.videocfg_parallax_detail\"\t\t\t\"1\"\n \t\"setting.videocfg_hdr_detail\"\t\t\t\t\"-1\"\n \t\"setting.videocfg_fsr_detail\"\t\t\t\t\"0\"\n "
        },
        {
          "filename": "game/csgo/pak01_dir/cfg/video_defaults_3.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -12,6 +12,7 @@\n \t\"setting.videocfg_texture_detail\"\t\t\t\"2\"\n \t\"setting.videocfg_particle_detail\"\t\t\t\"3\"\n \t\"setting.videocfg_ao_detail\"\t\t\t\t\"3\"\n+\t\"setting.videocfg_parallax_detail\"\t\t\t\"1\"\n \t\"setting.videocfg_hdr_detail\"\t\t\t\t\"-1\"\n \t\"setting.videocfg_fsr_detail\"\t\t\t\t\"0\"\n "
        },
        {
          "filename": "game/csgo/pak01_dir/cfg/video_version.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -1,5 +1,5 @@\n // Bump the version number to force auto config to be re-run so that the local settings will be re-generated from the appropriate video_defaults_#.txt\n \"video_version.txt\"\n {\n-\t\"Version\"\t\t\"16\"\n+\t\"Version\"\t\t\"17\"\n }"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/layout/settings/settings_video.xml",
          "status": "modified",
          "additions": 8,
          "deletions": 0,
          "changes": 8,
          "patch": "@@ -253,6 +253,14 @@\n \t\t\t\t\t\t\t\t\t\t</CSGOSettingsEnumDropDown>\n \t\t\t\t\t\t\t\t\t</TooltipPanel>\n \t\t\t\t\t\t\t\t\t<Panel class=\"horizontal-separator\" />\n+\t\t\t\t\t\t\t\t\t<TooltipPanel class=\"SettingsMenuDropdownContainer\" tooltip=\"#SFUI_Settings_Parallax_Info\" id=\"ParallaxPanel\">\n+\t\t\t\t\t\t\t\t\t\t<Label text=\"#SFUI_Settings_Parallax\" class=\"half-width\" />\n+\t\t\t\t\t\t\t\t\t\t<CSGOSettingsEnumDropDown onuserinputsubmit=\"SettingsMenuShared.VideoSettingsEnableDiscard()\" oninputsubmit=\"CSGOVideoChanged(&apos;&apos;)\" class=\"PopupButton White\" id=\"ParallaxDetail\">\n+\t\t\t\t\t\t\t\t\t\t\t<Label text=\"#SFUI_Settings_Disabled\" value=\"0\" id=\"parallax0\" />\n+\t\t\t\t\t\t\t\t\t\t\t<Label text=\"#SFUI_Settings_Enabled\" value=\"1\" id=\"parallax1\" />\n+\t\t\t\t\t\t\t\t\t\t</CSGOSettingsEnumDropDown>\n+\t\t\t\t\t\t\t\t\t</TooltipPanel>\n+\t\t\t\t\t\t\t\t\t<Panel class=\"horizontal-separator\" id=\"ParallaxSeparator\" />\n \t\t\t\t\t\t\t\t\t<TooltipPanel class=\"SettingsMenuDropdownContainer\" tooltip=\"#SFUI_Settings_HDR_Info\">\n \t\t\t\t\t\t\t\t\t\t<Label text=\"#SFUI_Settings_HDR\" class=\"half-width\" />\n \t\t\t\t\t\t\t\t\t\t<CSGOSettingsEnumDropDown onuserinputsubmit=\"SettingsMenuShared.VideoSettingsEnableDiscard()\" oninputsubmit=\"CSGOVideoChanged(&apos;&apos;)\" class=\"PopupButton White\" id=\"HDR\">"
        },
        {
          "filename": "game/csgo/pak01_dir/resource/csgo_english.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 0,
          "changes": 2,
          "patch": "@@ -44560,6 +44560,8 @@\n \n \t\t\"SFUI_Settings_AOProxy\"\t\t\t\t\"Ambient Occlusion\"\n \t\t\"SFUI_Settings_AOProxy_Info\"\t\t\"Calculate lighting using Ambient Occlusion.  Enabling Ambient Occlusion can degrade graphics performance.\"\n+\t\t\"SFUI_Settings_Parallax\"\t\t\t\"Parallax Occlusion Mapping\"\n+\t\t\"SFUI_Settings_Parallax_Info\"\t\t\"Gives some surfaces, such as snow, real looking depth.  Enabling it can degrade graphics performance.\"\n \n \t\t\"SFUI_Settings_FSR\"\t\t\t\t\t\"FidelityFX Super Resolution\"\n \t\t\"SFUI_Settings_FSR_Info\"\t\t\t\"FidelityFX Super Resolution may improve performance by rendering at reduced resolution and upscaling using a high-quality spatial technique.\""
        },
        {
          "filename": "game/csgo/pak01_dir/scripts/ai/retakes/bt_config.kv3",
          "status": "added",
          "additions": 453,
          "deletions": 0,
          "changes": 453,
          "patch": "@@ -0,0 +1,453 @@\n+<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->\n+{\n+\tdefault =\n+\t{\n+\t\taim_target_acquisition_lerp_time = 0.7\n+\t\taim_target_acquisition_lerp_time_deviation = 0.1\n+\t\taim_target_acquisition_angle_penalty = 7.0\n+\t\taim_target_acquisition_angle_penalty_deviation = 2.0\n+\t\taim_target_acquisition_angle_penalty_reduction_ratio = 0.3\n+\t\taim_target_acquisition_angle_tolerance = 1.0\n+\t\taim_target_acquisition_angle_lerp_bias = 0.75\n+\t\taim_target_tracking_lerp_time = 0.1\n+\t\taim_target_tracking_lerp_time_deviation = 0.05\n+\t\taim_target_tracking_focus_interval = 0.07\n+\t\taim_target_tracking_focus_interval_deviation = 0.02\n+\t\taim_target_tracking_angle_lerp_bias = 0.35\n+\t\taim_ready_angle_tolerance = 3.0\n+\t\taim_new_target_angle_tolerance = 30.0\n+\t\taim_max_duration = 0.9\n+\t\taim_max_duration_deviation = 0.3\n+\t\taim_punch_angle_reaction_chance = 0.5\n+\n+\t\tlook_around_awareness_yaw_range = 50\n+\t\tlook_around_awareness_pitch_range = 10\n+\t\tlook_around_focus_interval = 0.7\n+\t\tlook_around_focus_interval_deviation = 0.2\n+\t\tlook_around_lerp_time = 0.3\n+\t\tlook_around_lerp_time_deviation = 0.05\n+\t\tlook_around_lerp_bias = 0.5\n+\n+\t\treaction_time = 0.4\n+\n+\t\tcombat_crouch_chance = 0.1\n+\t\tcombat_dodge_command_duration = 1.2\n+\t\tcombat_dodge_command_duration_deviation = 0.2\n+\n+\t\tattack =\n+\t\t[\n+\t\t\t// duration, duration deviation, cadence, cooldown, cooldown deviation\n+\n+\t\t\t// KNIFE\t\t\t\t\t\t\t\t\tPISTOL\t\t\t\t\t\t\t\t\tSUBMACHINEGUN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ 0.95, 0.25, 0.5, 0.15, 0.05 ],\t\t[ 0.42, 0.07, 0.0, 0.15, 0.05 ],\n+\t\t\t// RIFLE\t\t\t\t\t\t\t\t\tSHOTGUN\t\t\t\t\t\t\t\t\tSNIPER_RIFLE\n+\t\t\t[ 0.22, 0.07, 0.0, 0.45, 0.15 ],\t\t\t[ 0.3, 0.0, 0.0, 0.95, 0.25 ],\t\t\t[ 0.22, 0.07, 0.0, 2.0, 0.0 ],\n+\t\t\t// MACHINEGUN\t\t\t\t\t\t\t\tC4\t\t\t\t\t\t\t\t\t\tTASER\n+\t\t\t[ 0.75, 0.15, 0.0, 0.3, 0.1 ],\t\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// GRENADE\t\t\t\t\t\t\t\t\tEQUIPMENT\t\t\t\t\t\t\t\tSTACKABLEITEM\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// UNKNOWN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ]\n+\t\t]\n+\t}\n+\tlow =\n+\t{\n+\t\taim_target_acquisition_lerp_time = 0.5\n+\t\taim_target_acquisition_lerp_time_deviation = 0.1\n+\t\taim_target_acquisition_angle_penalty = 5\n+\t\taim_target_acquisition_angle_penalty_deviation = 1.5\n+\t\taim_target_acquisition_angle_penalty_reduction_ratio = 0.8\n+\t\taim_target_acquisition_angle_tolerance = 1.0\n+\t\taim_target_acquisition_angle_lerp_bias = 0.5\n+\t\taim_target_tracking_lerp_time = 0.65\n+\t\taim_target_tracking_lerp_time_deviation = 0.1\n+\t\taim_target_tracking_focus_interval = 0.35\n+\t\taim_target_tracking_focus_interval_deviation = 0.1\n+\t\taim_target_tracking_angle_lerp_bias = 0.5\n+\t\taim_ready_angle_tolerance = 3.0\n+\t\taim_new_target_angle_tolerance = 30.0\n+\t\taim_max_duration = 1.1\n+\t\taim_max_duration_deviation = 0.3\n+\t\taim_punch_angle_reaction_chance = 0.35\n+\n+\t\tlook_around_awareness_yaw_range = 60\n+\t\tlook_around_awareness_pitch_range = 20\n+\t\tlook_around_focus_interval = 0.9\n+\t\tlook_around_focus_interval_deviation = 0.4\n+\t\tlook_around_lerp_time = 0.6\n+\t\tlook_around_lerp_time_deviation = 0.1\n+\t\tlook_around_lerp_bias = 0.25\n+\n+\t\treaction_time = 0.5\n+\n+\t\tcombat_crouch_chance = 0\n+\t\tcombat_dodge_command_duration = 2.2\n+\t\tcombat_dodge_command_duration_deviation = 0.3\n+\n+\t\tattack =\n+\t\t[\n+\t\t\t// duration, duration deviation, cadence, cooldown, cooldown deviation\n+\n+\t\t\t// KNIFE\t\t\t\t\t\t\t\t\tPISTOL\t\t\t\t\t\t\t\t\tSUBMACHINEGUN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ 0.95, 0.25, 0.6, 0.15, 0.05 ],\t\t[ 0.75, 0.15, 0.0, 0.25, 0.05 ],\n+\t\t\t// RIFLE\t\t\t\t\t\t\t\t\tSHOTGUN\t\t\t\t\t\t\t\t\tSNIPER_RIFLE\n+\t\t\t[ 0.95, 0.25, 0.0, 0.75, 0.15 ],\t\t\t[ 0.3, 0.0, 0.0, 0.8, 0.0 ],\t\t\t[ 0.22, 0.07, 0.0, 2.0, 0.0 ],\n+\t\t\t// MACHINEGUN\t\t\t\t\t\t\t\tC4\t\t\t\t\t\t\t\t\t\tTASER\n+\t\t\t[ 1.45, 0.25, 0.0, 0.8, 0.1 ],\t\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// GRENADE\t\t\t\t\t\t\t\t\tEQUIPMENT\t\t\t\t\t\t\t\tSTACKABLEITEM\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// UNKNOWN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ]\n+\t\t]\n+\t}\n+\tfair =\n+\t{\n+\t\taim_target_acquisition_lerp_time = 0.45\n+\t\taim_target_acquisition_lerp_time_deviation = 0.1\n+\t\taim_target_acquisition_angle_penalty = 5\n+\t\taim_target_acquisition_angle_penalty_deviation = 1.5\n+\t\taim_target_acquisition_angle_penalty_reduction_ratio = 0.7\n+\t\taim_target_acquisition_angle_tolerance = 1.0\n+\t\taim_target_acquisition_angle_lerp_bias = 0.5\n+\t\taim_target_tracking_lerp_time = 0.55\n+\t\taim_target_tracking_lerp_time_deviation = 0.1\n+\t\taim_target_tracking_focus_interval = 0.3\n+\t\taim_target_tracking_focus_interval_deviation = 0.05\n+\t\taim_target_tracking_angle_lerp_bias = 0.5\n+\t\taim_ready_angle_tolerance = 3.0\n+\t\taim_new_target_angle_tolerance = 30.0\n+\t\taim_max_duration = 1.1\n+\t\taim_max_duration_deviation = 0.3\n+\t\taim_punch_angle_reaction_chance = 0.5\n+\n+\t\tlook_around_awareness_yaw_range = 60\n+\t\tlook_around_awareness_pitch_range = 20\n+\t\tlook_around_focus_interval = 0.9\n+\t\tlook_around_focus_interval_deviation = 0.4\n+\t\tlook_around_lerp_time = 0.55\n+\t\tlook_around_lerp_time_deviation = 0.1\n+\t\tlook_around_lerp_bias = 0.25\n+\n+\t\treaction_time = 0.5\n+\n+\t\tcombat_crouch_chance = 0.05\n+\t\tcombat_dodge_command_duration = 1.3\n+\t\tcombat_dodge_command_duration_deviation = 0.2\n+\n+\t\tattack =\n+\t\t[\n+\t\t\t// duration, duration deviation, cadence, cooldown, cooldown deviation\n+\n+\t\t\t// KNIFE\t\t\t\t\t\t\t\t\tPISTOL\t\t\t\t\t\t\t\t\tSUBMACHINEGUN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ 0.9, 0.2, 0.6, 0.15, 0.05 ],\t\t\t[ 0.42, 0.08, 0.0, 0.15, 0.05 ],\n+\t\t\t// RIFLE\t\t\t\t\t\t\t\t\tSHOTGUN\t\t\t\t\t\t\t\t\tSNIPER_RIFLE\n+\t\t\t[ 0.95, 0.25, 0.0, 0.65, 0.15 ],\t\t\t[ 0.3, 0.0, 0.0, 0.65, 0.0 ],\t\t\t[ 0.22, 0.07, 0.0, 2.0, 0.0 ],\n+\t\t\t// MACHINEGUN\t\t\t\t\t\t\t\tC4\t\t\t\t\t\t\t\t\t\tTASER\n+\t\t\t[ 1.05, 0.15, 0.0, 0.65, 0.15 ],\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// GRENADE\t\t\t\t\t\t\t\t\tEQUIPMENT\t\t\t\t\t\t\t\tSTACKABLEITEM\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// UNKNOWN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ]\n+\t\t]\n+\t}\n+\tnormal =\n+\t{\n+\t\taim_target_acquisition_lerp_time = 0.4\n+\t\taim_target_acquisition_lerp_time_deviation = 0.1\n+\t\taim_target_acquisition_angle_penalty = 5\n+\t\taim_target_acquisition_angle_penalty_deviation = 1.5\n+\t\taim_target_acquisition_angle_penalty_reduction_ratio = 0.6\n+\t\taim_target_acquisition_angle_tolerance = 1.0\n+\t\taim_target_acquisition_angle_lerp_bias = 0.5\n+\t\taim_target_tracking_lerp_time = 0.5\n+\t\taim_target_tracking_lerp_time_deviation = 0.1\n+\t\taim_target_tracking_focus_interval = 0.275\n+\t\taim_target_tracking_focus_interval_deviation = 0.05\n+\t\taim_target_tracking_angle_lerp_bias = 0.5\n+\t\taim_ready_angle_tolerance = 3.0\n+\t\taim_new_target_angle_tolerance = 30.0\n+\t\taim_max_duration = 1.1\n+\t\taim_max_duration_deviation = 0.3\n+\t\taim_punch_angle_reaction_chance = 0.55\n+\n+\t\tlook_around_awareness_yaw_range = 60\n+\t\tlook_around_awareness_pitch_range = 20\n+\t\tlook_around_focus_interval = 0.85\n+\t\tlook_around_focus_interval_deviation = 0.4\n+\t\tlook_around_lerp_time = 0.5\n+\t\tlook_around_lerp_time_deviation = 0.05\n+\t\tlook_around_lerp_bias = 0.25\n+\n+\t\treaction_time = 0.4\n+\n+\t\tcombat_crouch_chance = 0.1\n+\t\tcombat_dodge_command_duration = 1.2\n+\t\tcombat_dodge_command_duration_deviation = 0.2\n+\n+\t\tattack =\n+\t\t[\n+\t\t\t// duration, duration deviation, cadence, cooldown, cooldown deviation\n+\n+\t\t\t// KNIFE\t\t\t\t\t\t\t\t\tPISTOL\t\t\t\t\t\t\t\t\tSUBMACHINEGUN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ 0.95, 0.25, 0.5, 0.15, 0.05 ],\t\t[ 0.42, 0.07, 0.0, 0.15, 0.05 ],\n+\t\t\t// RIFLE\t\t\t\t\t\t\t\t\tSHOTGUN\t\t\t\t\t\t\t\t\tSNIPER_RIFLE\n+\t\t\t[ 0.22, 0.07, 0.0, 0.45, 0.15 ],\t\t\t[ 0.3, 0.0, 0.0, 0.95, 0.25 ],\t\t\t[ 0.22, 0.07, 0.0, 2.0, 0.0 ],\n+\t\t\t// MACHINEGUN\t\t\t\t\t\t\t\tC4\t\t\t\t\t\t\t\t\t\tTASER\n+\t\t\t[ 0.75, 0.15, 0.0, 0.3, 0.1 ],\t\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// GRENADE\t\t\t\t\t\t\t\t\tEQUIPMENT\t\t\t\t\t\t\t\tSTACKABLEITEM\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// UNKNOWN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ]\n+\t\t]\n+\t}\n+\ttough =\n+\t{\n+\t\taim_target_acquisition_lerp_time = 0.375\n+\t\taim_target_acquisition_lerp_time_deviation = 0.1\n+\t\taim_target_acquisition_angle_penalty = 5\n+\t\taim_target_acquisition_angle_penalty_deviation = 1.5\n+\t\taim_target_acquisition_angle_penalty_reduction_ratio = 0.6\n+\t\taim_target_acquisition_angle_tolerance = 1.0\n+\t\taim_target_acquisition_angle_lerp_bias = 0.5\n+\t\taim_target_tracking_lerp_time = 0.475\n+\t\taim_target_tracking_lerp_time_deviation = 0.1\n+\t\taim_target_tracking_focus_interval = 0.25\n+\t\taim_target_tracking_focus_interval_deviation = 0.05\n+\t\taim_target_tracking_angle_lerp_bias = 0.5\n+\t\taim_ready_angle_tolerance = 3.0\n+\t\taim_new_target_angle_tolerance = 30.0\n+\t\taim_max_duration = 1.1\n+\t\taim_max_duration_deviation = 0.3\n+\t\taim_punch_angle_reaction_chance = 0.6\n+\n+\t\tlook_around_awareness_yaw_range = 60\n+\t\tlook_around_awareness_pitch_range = 20\n+\t\tlook_around_focus_interval = 0.85\n+\t\tlook_around_focus_interval_deviation = 0.4\n+\t\tlook_around_lerp_time = 0.45\n+\t\tlook_around_lerp_time_deviation = 0.05\n+\t\tlook_around_lerp_bias = 0.25\n+\n+\t\treaction_time = 0.35\n+\n+\t\tcombat_crouch_chance = 0.12\n+\t\tcombat_dodge_command_duration = 1.05\n+\t\tcombat_dodge_command_duration_deviation = 0.25\n+\n+\t\tattack =\n+\t\t[\n+\t\t\t// duration, duration deviation, cadence, cooldown, cooldown deviation\n+\n+\t\t\t// KNIFE\t\t\t\t\t\t\t\t\tPISTOL\t\t\t\t\t\t\t\t\tSUBMACHINEGUN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ 0.95, 0.25, 0.45, 0.125, 0.025 ],\t\t[ 0.4, 0.1, 0.0, 0.175, 0.025 ],\n+\t\t\t// RIFLE\t\t\t\t\t\t\t\t\tSHOTGUN\t\t\t\t\t\t\t\t\tSNIPER_RIFLE\n+\t\t\t[ 0.225, 0.075, 0.0, 0.32, 0.12 ],\t\t\t[ 0.3, 0.0, 0.0, 0.55, 0.1 ],\t\t\t[ 0.22, 0.07, 0.0, 2.0, 0.0 ],\n+\t\t\t// MACHINEGUN\t\t\t\t\t\t\t\tC4\t\t\t\t\t\t\t\t\t\tTASER\n+\t\t\t[ 0.85, 0.25, 0.0, 0.3, 0.1 ],\t\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// GRENADE\t\t\t\t\t\t\t\t\tEQUIPMENT\t\t\t\t\t\t\t\tSTACKABLEITEM\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// UNKNOWN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ]\n+\t\t]\n+\t}\n+\thard =\n+\t{\n+\t\taim_target_acquisition_lerp_time = 0.35\n+\t\taim_target_acquisition_lerp_time_deviation = 0.1\n+\t\taim_target_acquisition_angle_penalty = 5\n+\t\taim_target_acquisition_angle_penalty_deviation = 1.5\n+\t\taim_target_acquisition_angle_penalty_reduction_ratio = 0.55\n+\t\taim_target_acquisition_angle_tolerance = 1.0\n+\t\taim_target_acquisition_angle_lerp_bias = 0.45\n+\t\taim_target_tracking_lerp_time = 0.45\n+\t\taim_target_tracking_lerp_time_deviation = 0.1\n+\t\taim_target_tracking_focus_interval = 0.2\n+\t\taim_target_tracking_focus_interval_deviation = 0.05\n+\t\taim_target_tracking_angle_lerp_bias = 0.5\n+\t\taim_ready_angle_tolerance = 3.0\n+\t\taim_new_target_angle_tolerance = 30.0\n+\t\taim_max_duration = 1.1\n+\t\taim_max_duration_deviation = 0.3\n+\t\taim_punch_angle_reaction_chance = 0.65\n+\n+\t\tlook_around_awareness_yaw_range = 60\n+\t\tlook_around_awareness_pitch_range = 20\n+\t\tlook_around_focus_interval = 0.8\n+\t\tlook_around_focus_interval_deviation = 0.3\n+\t\tlook_around_lerp_time = 0.4\n+\t\tlook_around_lerp_time_deviation = 0.05\n+\t\tlook_around_lerp_bias = 0.25\n+\n+\t\treaction_time = 0.3\n+\n+\t\tcombat_crouch_chance = 0.22\n+\t\tcombat_dodge_command_duration = 0.95\n+\t\tcombat_dodge_command_duration_deviation = 0.25\n+\n+\t\tattack =\n+\t\t[\n+\t\t\t// duration, duration deviation, cadence, cooldown, cooldown deviation\n+\n+\t\t\t// KNIFE\t\t\t\t\t\t\t\t\tPISTOL\t\t\t\t\t\t\t\t\tSUBMACHINEGUN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ 0.95, 0.25, 0.4, 0.1, 0.0 ],\t\t\t[ 0.4, 0.1, 0.0, 0.175, 0.025 ],\n+\t\t\t// RIFLE\t\t\t\t\t\t\t\t\tSHOTGUN\t\t\t\t\t\t\t\t\tSNIPER_RIFLE\n+\t\t\t[ 0.225, 0.075, 0.0, 0.25, 0.05 ],\t\t\t[ 0.3, 0.0, 0.0, 0.375, 0.075 ],\t\t[ 0.22, 0.07, 0.0, 2.0, 0.0 ],\n+\t\t\t// MACHINEGUN\t\t\t\t\t\t\t\tC4\t\t\t\t\t\t\t\t\t\tTASER\n+\t\t\t[ 0.9, 0.3, 0.0, 0.275, 0.075 ],\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// GRENADE\t\t\t\t\t\t\t\t\tEQUIPMENT\t\t\t\t\t\t\t\tSTACKABLEITEM\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// UNKNOWN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ]\n+\t\t]\n+\t}\n+\tvery_hard =\n+\t{\n+\t\taim_target_acquisition_lerp_time = 0.3\n+\t\taim_target_acquisition_lerp_time_deviation = 0.1\n+\t\taim_target_acquisition_angle_penalty = 5\n+\t\taim_target_acquisition_angle_penalty_deviation = 1.5\n+\t\taim_target_acquisition_angle_penalty_reduction_ratio = 0.45\n+\t\taim_target_acquisition_angle_tolerance = 1.0\n+\t\taim_target_acquisition_angle_lerp_bias = 0.3\n+\t\taim_target_tracking_lerp_time = 0.4\n+\t\taim_target_tracking_lerp_time_deviation = 0.1\n+\t\taim_target_tracking_focus_interval = 0.2\n+\t\taim_target_tracking_focus_interval_deviation = 0.05\n+\t\taim_target_tracking_angle_lerp_bias = 0.5\n+\t\taim_ready_angle_tolerance = 3.0\n+\t\taim_new_target_angle_tolerance = 30.0\n+\t\taim_max_duration = 1.1\n+\t\taim_max_duration_deviation = 0.3\n+\t\taim_punch_angle_reaction_chance = 0.7\n+\n+\t\tlook_around_awareness_yaw_range = 60\n+\t\tlook_around_awareness_pitch_range = 20\n+\t\tlook_around_focus_interval = 0.7\n+\t\tlook_around_focus_interval_deviation = 0.2\n+\t\tlook_around_lerp_time = 0.35\n+\t\tlook_around_lerp_time_deviation = 0.05\n+\t\tlook_around_lerp_bias = 0.25\n+\n+\t\treaction_time = 0.25\n+\n+\t\tcombat_crouch_chance = 0.22\n+\t\tcombat_dodge_command_duration = 0.95\n+\t\tcombat_dodge_command_duration_deviation = 0.15\n+\n+\t\tattack =\n+\t\t[\n+\t\t\t// duration, duration deviation, cadence, cooldown, cooldown deviation\n+\n+\t\t\t// KNIFE\t\t\t\t\t\t\t\t\tPISTOL\t\t\t\t\t\t\t\t\tSUBMACHINEGUN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ 0.95, 0.25, 0.35, 0.05, 0.0 ],\t\t[ 0.4, 0.1, 0.0, 0.175, 0.025 ],\n+\t\t\t// RIFLE\t\t\t\t\t\t\t\t\tSHOTGUN\t\t\t\t\t\t\t\t\tSNIPER_RIFLE\n+\t\t\t[ 0.225, 0.075, 0.0, 0.2, 0.05 ],\t\t\t[ 0.3, 0.0, 0.0, 0.3, 0.05 ],\t\t\t[ 0.22, 0.07, 0.0, 2.0, 0.0 ],\n+\t\t\t// MACHINEGUN\t\t\t\t\t\t\t\tC4\t\t\t\t\t\t\t\t\t\tTASER\n+\t\t\t[ 0.9, 0.3, 0.0, 0.25, 0.05 ],\t\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// GRENADE\t\t\t\t\t\t\t\t\tEQUIPMENT\t\t\t\t\t\t\t\tSTACKABLEITEM\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// UNKNOWN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ]\n+\t\t]\n+\t}\n+\texpert =\n+\t{\n+\t\taim_target_acquisition_lerp_time = 0.25\n+\t\taim_target_acquisition_lerp_time_deviation = 0.1\n+\t\taim_target_acquisition_angle_penalty = 5\n+\t\taim_target_acquisition_angle_penalty_deviation = 1.5\n+\t\taim_target_acquisition_angle_penalty_reduction_ratio = 0.35\n+\t\taim_target_acquisition_angle_tolerance = 1.0\n+\t\taim_target_acquisition_angle_lerp_bias = 0.3\n+\t\taim_target_tracking_lerp_time = 0.3\n+\t\taim_target_tracking_lerp_time_deviation = 0.1\n+\t\taim_target_tracking_focus_interval = 0.15\n+\t\taim_target_tracking_focus_interval_deviation = 0.05\n+\t\taim_target_tracking_angle_lerp_bias = 0.5\n+\t\taim_ready_angle_tolerance = 3.0\n+\t\taim_new_target_angle_tolerance = 30.0\n+\t\taim_max_duration = 1.1\n+\t\taim_max_duration_deviation = 0.3\n+\t\taim_punch_angle_reaction_chance = 0.75\n+\n+\t\tlook_around_awareness_yaw_range = 60\n+\t\tlook_around_awareness_pitch_range = 20\n+\t\tlook_around_focus_interval = 0.6\n+\t\tlook_around_focus_interval_deviation = 0.2\n+\t\tlook_around_lerp_time = 0.25\n+\t\tlook_around_lerp_time_deviation = 0.05\n+\t\tlook_around_lerp_bias = 0.25\n+\n+\t\treaction_time = 0.2\n+\n+\t\tcombat_crouch_chance = 0.33\n+\t\tcombat_dodge_command_duration = 0.95\n+\t\tcombat_dodge_command_duration_deviation = 0.15\n+\n+\t\tattack =\n+\t\t[\n+\t\t\t// duration, duration deviation, cadence, cooldown, cooldown deviation\n+\n+\t\t\t// KNIFE\t\t\t\t\t\t\t\t\tPISTOL\t\t\t\t\t\t\t\t\tSUBMACHINEGUN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ 0.95, 0.25, 0.25, 0.05, 0.0 ],\t\t[ 0.425, 0.075, 0.0, 0.125, 0.025 ],\n+\t\t\t// RIFLE\t\t\t\t\t\t\t\t\tSHOTGUN\t\t\t\t\t\t\t\t\tSNIPER_RIFLE\n+\t\t\t[ 0.225, 0.075, 0.0, 0.15, 0.05 ],\t\t\t[ 0.3, 0.0, 0.0, 0.25, 0.05 ],\t\t\t[ 0.22, 0.07, 0.0, 2.0, 0.0 ],\n+\t\t\t// MACHINEGUN\t\t\t\t\t\t\t\tC4\t\t\t\t\t\t\t\t\t\tTASER\n+\t\t\t[ 0.9, 0.3, 0.0, 0.15, 0.05 ],\t\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// GRENADE\t\t\t\t\t\t\t\t\tEQUIPMENT\t\t\t\t\t\t\t\tSTACKABLEITEM\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// UNKNOWN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ]\n+\t\t]\n+\t}\n+\telite =\n+\t{\n+\t\taim_target_acquisition_lerp_time = 0.15\n+\t\taim_target_acquisition_lerp_time_deviation = 0.05\n+\t\taim_target_acquisition_angle_penalty = 4\n+\t\taim_target_acquisition_angle_penalty_deviation = 1.5\n+\t\taim_target_acquisition_angle_penalty_reduction_ratio = 0.2\n+\t\taim_target_acquisition_angle_tolerance = 1.0\n+\t\taim_target_acquisition_angle_lerp_bias = 0.3\n+\t\taim_target_tracking_lerp_time = 0.15\n+\t\taim_target_tracking_lerp_time_deviation = 0.1\n+\t\taim_target_tracking_focus_interval = 0.06\n+\t\taim_target_tracking_focus_interval_deviation = 0.03\n+\t\taim_target_tracking_angle_lerp_bias = 0.3\n+\t\taim_ready_angle_tolerance = 3.0\n+\t\taim_new_target_angle_tolerance = 30.0\n+\t\taim_max_duration = 1.1\n+\t\taim_max_duration_deviation = 0.3\n+\t\taim_punch_angle_reaction_chance = 0.95\n+\n+\t\tlook_around_awareness_yaw_range = 60\n+\t\tlook_around_awareness_pitch_range = 20\n+\t\tlook_around_focus_interval = 0.4\n+\t\tlook_around_focus_interval_deviation = 0.2\n+\t\tlook_around_lerp_time = 0.15\n+\t\tlook_around_lerp_time_deviation = 0.05\n+\t\tlook_around_lerp_bias = 0.25\n+\n+\t\treaction_time = 0.12\n+\n+\t\tcombat_crouch_chance = 0.33\n+\t\tcombat_dodge_command_duration = 0.95\n+\t\tcombat_dodge_command_duration_deviation = 0.15\n+\n+\t\tattack =\n+\t\t[\n+\t\t\t// duration, duration deviation, cadence, cooldown, cooldown deviation\n+\n+\t\t\t// KNIFE\t\t\t\t\t\t\t\t\tPISTOL\t\t\t\t\t\t\t\t\tSUBMACHINEGUN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ 0.95, 0.25, 0.2, 0.05, 0.0 ],\t\t\t[ 0.425, 0.075, 0.0, 0.125, 0.025 ],\n+\t\t\t// RIFLE\t\t\t\t\t\t\t\t\tSHOTGUN\t\t\t\t\t\t\t\t\tSNIPER_RIFLE\n+\t\t\t[ 0.155, 0.035, 0.0, 0.15, 0.05 ],\t\t\t[ 0.3, 0.0, 0.0, 0.25, 0.05 ],\t\t\t[ 0.22, 0.07, 0.0, 2.0, 0.0 ],\n+\t\t\t// MACHINEGUN\t\t\t\t\t\t\t\tC4\t\t\t\t\t\t\t\t\t\tTASER\n+\t\t\t[ 0.9, 0.3, 0.0, 0.15, 0.05 ],\t\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// GRENADE\t\t\t\t\t\t\t\t\tEQUIPMENT\t\t\t\t\t\t\t\tSTACKABLEITEM\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ],\n+\t\t\t// UNKNOWN\n+\t\t\t[ -1.0, -1.0, -1.0, -1.0, -1.0 ]\n+\t\t]\n+\t}\n+}"
        },
        {
          "filename": "game/csgo/pak01_dir/scripts/ai/retakes/bt_default.kv3",
          "status": "added",
          "additions": 156,
          "deletions": 0,
          "changes": 156,
          "patch": "@@ -0,0 +1,156 @@\n+<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->\n+// Retakes bots. CTs defuse and push the site, Ts hide around the bomb.\n+{\n+\tconfig = \"scripts/ai/retakes/bt_config.kv3\"\n+\troot =\n+\t{\n+\t\ttype = \"decorator_bot_service\"\n+\t\tmemory_to_expire =\n+\t\t[\n+\t\t\t{\n+\t\t\t\tkey = \"ShortTermAttackMemory\"\n+\t\t\t\ttime = 0.7\n+\t\t\t\tdistance = 0\n+\t\t\t},\n+\t\t\t{\n+\t\t\t\tkey = \"LongTermMemory\"\n+\t\t\t\ttime = 10\n+\t\t\t\tdistance = 500\n+\t\t\t},\n+\t\t\t{\n+\t\t\t\tkey = \"ShortTermInvestigateMemory\"\n+\t\t\t\ttime = 3\n+\t\t\t\tdistance = 200\n+\t\t\t}\n+\t\t]\n+\t\tchild =\n+\t\t{\n+\t\t\ttype = \"parallel\"\n+\t\t\tchildren =\n+\t\t\t[\n+\t\t\t\t{\n+\t\t\t\t\ttype = \"decorator_repeat\"\n+\t\t\t\t\tchild =\n+\t\t\t\t\t{\n+\t\t\t\t\t\ttype = \"parallel\"\n+\t\t\t\t\t\tchildren =\n+\t\t\t\t\t\t[\n+\t\t\t\t\t\t\t// memorize enemies through vision\n+\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\ttype = \"subtree\"\n+\t\t\t\t\t\t\t\tfile = \"scripts/ai/modules/bt_memorize_enemies_vision.kv3\"\n+\t\t\t\t\t\t\t\tname = \"MemorizeEnemiesVision\"\n+\t\t\t\t\t\t\t},\n+\t\t\t\t\t\t\t// memorize noises happening right now\n+\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\ttype = \"subtree\"\n+\t\t\t\t\t\t\t\tfile = \"scripts/ai/modules/bt_memorize_noises.kv3\"\n+\t\t\t\t\t\t\t\tname = \"MemorizeNoises\"\n+\t\t\t\t\t\t\t},\n+\t\t\t\t\t\t\t// record the nearest memorized event to investigate\n+\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\ttype = \"subtree\"\n+\t\t\t\t\t\t\t\tfile = \"scripts/ai/modules/bt_memorize_nearest_investigation.kv3\"\n+\t\t\t\t\t\t\t\tname = \"MemorizeNearestInvestigation\"\n+\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t]\n+\t\t\t\t\t}\n+\t\t\t\t},\n+\t\t\t\t{\n+\t\t\t\t\ttype = \"decorator_repeat\"\n+\t\t\t\t\tchild =\n+\t\t\t\t\t{\n+\t\t\t\t\t\ttype = \"selector\"\n+\t\t\t\t\t\tchildren =\n+\t\t\t\t\t\t[\n+\t\t\t\t\t\t\t// face the damage source if we're taking damage\n+\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\ttype = \"decorator_sensor\"\n+\t\t\t\t\t\t\t\tentity_type_filter = \"DAMAGE\"\n+\t\t\t\t\t\t\t\toutput = \"Damage\"\n+\t\t\t\t\t\t\t\tpriority = 0\n+\t\t\t\t\t\t\t\tchild =\n+\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\ttype = \"condition_is_empty\"\n+\t\t\t\t\t\t\t\t\tinput = \"Damage\"\n+\t\t\t\t\t\t\t\t\tnegated = 1\n+\t\t\t\t\t\t\t\t\tchild =\n+\t\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\t\ttype = \"action_aim\"\n+\t\t\t\t\t\t\t\t\t\tinput = \"Damage\"\n+\t\t\t\t\t\t\t\t\t\tacquire_only = 1\n+\t\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t},\n+\t\t\t\t\t\t\t// Else: attack if we see an enemy\n+\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\ttype = \"subtree\"\n+\t\t\t\t\t\t\t\tfile = \"scripts/ai/modules/bt_attack.kv3\"\n+\t\t\t\t\t\t\t\tname = \"Attack\"\n+\t\t\t\t\t\t\t},\n+\t\t\t\t\t\t\t// Else: one CT goes for the defuse\n+\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\ttype = \"condition_is_equal\"\n+\t\t\t\t\t\t\t\tsource = \"TeamName\"\n+\t\t\t\t\t\t\t\tdestination = \"'CT'\"\n+\t\t\t\t\t\t\t\tchild =\n+\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\ttype = \"subtree\"\n+\t\t\t\t\t\t\t\t\tfile = \"scripts/ai/retakes/modules/bt_defuse_planted_bomb.kv3\"\n+\t\t\t\t\t\t\t\t\tname = \"DefusePlantedBomb\"\n+\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t},\n+\t\t\t\t\t\t\t// Else: Ts take cover around the bomb\n+\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\ttype = \"condition_is_equal\"\n+\t\t\t\t\t\t\t\tsource = \"TeamName\"\n+\t\t\t\t\t\t\t\tdestination = \"'T'\"\n+\t\t\t\t\t\t\t\tchild =\n+\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\ttype = \"subtree\"\n+\t\t\t\t\t\t\t\t\tfile = \"scripts/ai/retakes/modules/bt_hide_near_planted_bomb.kv3\"\n+\t\t\t\t\t\t\t\t\tname = \"HideNearPlantedBomb\"\n+\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t},\n+\t\t\t\t\t\t\t// Else: CTs push onto the site\n+\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\ttype = \"condition_is_equal\"\n+\t\t\t\t\t\t\t\tsource = \"TeamName\"\n+\t\t\t\t\t\t\t\tdestination = \"'CT'\"\n+\t\t\t\t\t\t\t\tchild =\n+\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\ttype = \"subtree\"\n+\t\t\t\t\t\t\t\t\tfile = \"scripts/ai/retakes/modules/bt_hold_near_planted_bomb.kv3\"\n+\t\t\t\t\t\t\t\t\tname = \"HoldNearPlantedBomb\"\n+\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t},\n+\t\t\t\t\t\t\t// Else: investigate the closest memorized event\n+\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\ttype = \"subtree\"\n+\t\t\t\t\t\t\t\tfile = \"scripts/ai/modules/bt_investigate_closest_memorized_event.kv3\"\n+\t\t\t\t\t\t\t\tname = \"InvestigateClosestMemorizedEvent\"\n+\t\t\t\t\t\t\t},\n+\t\t\t\t\t\t\t// Else: hunt. Only reached with no bomb, like warmup.\n+\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\ttype = \"sequencer\"\n+\t\t\t\t\t\t\t\tchildren =\n+\t\t\t\t\t\t\t\t[\n+\t\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\t\ttype = \"decorator_random_approach_point\"\n+\t\t\t\t\t\t\t\t\t\toutput = \"TargetHuntArea\"\n+\t\t\t\t\t\t\t\t\t},\n+\t\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\t\ttype = \"action_move_to\"\n+\t\t\t\t\t\t\t\t\t\tdestination = \"TargetHuntArea\"\n+\t\t\t\t\t\t\t\t\t\tmovement_type = \"BT_ACTION_MOVETO_RUN\"\n+\t\t\t\t\t\t\t\t\t\troute_type = \"BT_ACTION_MOVETO_FASTEST_ROUTE\"\n+\t\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t\t]\n+\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t]\n+\t\t\t\t\t}\n+\t\t\t\t}\n+\t\t\t]\n+\t\t}\n+\t}\n+}"
        },
        {
          "filename": "game/csgo/pak01_dir/scripts/ai/retakes/modules/bt_defuse_planted_bomb.kv3",
          "status": "added",
          "additions": 53,
          "deletions": 0,
          "changes": 53,
          "patch": "@@ -0,0 +1,53 @@\n+<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->\n+// Run to the planted bomb anywhere on the map and hold use on it. One bot at a time.\n+{\n+\ttype = \"decorator_sensor\"\n+\tentity_type_filter = \"CLASSNAME\"\n+\tclass_name = \"planted_c4\"\n+\toutput = \"PlantedBomb\"\n+\tpriority = 1\n+\tchild =\n+\t{\n+\t\ttype = \"condition_is_empty\"\n+\t\tinput = \"PlantedBomb\"\n+\t\tnegated = 1\n+\t\tchild =\n+\t\t{\n+\t\t\ttype = \"decorator_try_lock\"\n+\t\t\tdomain = \"'DefusePlantedBomb'\"\n+\t\t\tchild =\n+\t\t\t{\n+\t\t\t\ttype = \"sequencer\"\n+\t\t\t\tchildren =\n+\t\t\t\t[\n+\t\t\t\t\t{\n+\t\t\t\t\t\ttype = \"action_move_to\"\n+\t\t\t\t\t\tdestination = \"PlantedBomb\"\n+\t\t\t\t\t\tmovement_type = \"BT_ACTION_MOVETO_RUN\"\n+\t\t\t\t\t\troute_type = \"BT_ACTION_MOVETO_FASTEST_ROUTE\"\n+\t\t\t\t\t\tthreat = \"NearestThreatMemory\"\n+\t\t\t\t\t\tnearest_area_distance_threshold = 20\n+\t\t\t\t\t\tarrival_epsilon = 35\n+\t\t\t\t\t},\n+\t\t\t\t\t{\n+\t\t\t\t\t\ttype = \"action_look_at\"\n+\t\t\t\t\t\tinput_location = \"PlantedBomb\"\n+\t\t\t\t\t},\n+\t\t\t\t\t{\n+\t\t\t\t\t\ttype = \"action_wait\"\n+\t\t\t\t\t\twait_time_min = 0.25\n+\t\t\t\t\t\twait_time_max = 0.25\n+\t\t\t\t\t},\n+\t\t\t\t\t// keep pressing use so the defuse doesn't cancel\n+\t\t\t\t\t{\n+\t\t\t\t\t\ttype = \"decorator_repeat\"\n+\t\t\t\t\t\tchild =\n+\t\t\t\t\t\t{\n+\t\t\t\t\t\t\ttype = \"action_use\"\n+\t\t\t\t\t\t}\n+\t\t\t\t\t}\n+\t\t\t\t]\n+\t\t\t}\n+\t\t}\n+\t}\n+}"
        },
        {
          "filename": "game/csgo/pak01_dir/scripts/ai/retakes/modules/bt_hide_near_planted_bomb.kv3",
          "status": "added",
          "additions": 124,
          "deletions": 0,
          "changes": 124,
          "patch": "@@ -0,0 +1,124 @@\n+<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->\n+// Move to a random spot near the planted bomb, then take the nearest free hiding spot and watch where enemies could come from.\n+{\n+\ttype = \"decorator_sensor\"\n+\tentity_type_filter = \"CLASSNAME\"\n+\tclass_name = \"planted_c4\"\n+\toutput = \"PlantedBomb\"\n+\tpriority = 1\n+\tchild =\n+\t{\n+\t\ttype = \"condition_is_empty\"\n+\t\tinput = \"PlantedBomb\"\n+\t\tnegated = 1\n+\t\tchild =\n+\t\t{\n+\t\t\ttype = \"sequencer\"\n+\t\t\tchildren =\n+\t\t\t[\n+\t\t\t\t{\n+\t\t\t\t\ttype = \"action_choose_random_waypoint_within_radius\"\n+\t\t\t\t\torigin = \"PlantedBomb\"\n+\t\t\t\t\tradius = 500\n+\t\t\t\t\toutput = \"BombHoldSpot\"\n+\t\t\t\t},\n+\t\t\t\t{\n+\t\t\t\t\ttype = \"action_move_to\"\n+\t\t\t\t\tdestination = \"BombHoldSpot\"\n+\t\t\t\t\tmovement_type = \"BT_ACTION_MOVETO_RUN\"\n+\t\t\t\t\troute_type = \"BT_ACTION_MOVETO_FASTEST_ROUTE\"\n+\t\t\t\t\tthreat = \"NearestThreatMemory\"\n+\t\t\t\t},\n+\t\t\t\t{\n+\t\t\t\t\ttype = \"selector\"\n+\t\t\t\t\tchildren =\n+\t\t\t\t\t[\n+\t\t\t\t\t\t// take cover at the closest hiding spot nobody is in\n+\t\t\t\t\t\t{\n+\t\t\t\t\t\t\ttype = \"sequencer\"\n+\t\t\t\t\t\t\tchildren =\n+\t\t\t\t\t\t\t[\n+\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\ttype = \"action_hide\"\n+\t\t\t\t\t\t\t\t\tmax_range = 400\n+\t\t\t\t\t\t\t\t\toutput = \"BombHidingSpot\"\n+\t\t\t\t\t\t\t\t},\n+\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\ttype = \"action_move_to\"\n+\t\t\t\t\t\t\t\t\tdestination = \"BombHidingSpot\"\n+\t\t\t\t\t\t\t\t\tmovement_type = \"BT_ACTION_MOVETO_RUN\"\n+\t\t\t\t\t\t\t\t\troute_type = \"BT_ACTION_MOVETO_FASTEST_ROUTE\"\n+\t\t\t\t\t\t\t\t\tthreat = \"NearestThreatMemory\"\n+\t\t\t\t\t\t\t\t\tarrival_epsilon = 20\n+\t\t\t\t\t\t\t\t},\n+\t\t\t\t\t\t\t\t// only stay if no teammate got here first\n+\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\ttype = \"decorator_sensor\"\n+\t\t\t\t\t\t\t\t\tentity_type_filter = \"PLAYERS\"\n+\t\t\t\t\t\t\t\t\tteam_filter = \"SAME\"\n+\t\t\t\t\t\t\t\t\tshape =\n+\t\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\t\ttype = \"sensor_shape_sphere\"\n+\t\t\t\t\t\t\t\t\t\tradius = 80\n+\t\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t\t\toutput = \"TeammatesAtSpot\"\n+\t\t\t\t\t\t\t\t\tchild =\n+\t\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\t\ttype = \"condition_is_empty\"\n+\t\t\t\t\t\t\t\t\t\tinput = \"TeammatesAtSpot\"\n+\t\t\t\t\t\t\t\t\t\tchild =\n+\t\t\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\t\t\ttype = \"decorator_repeat\"\n+\t\t\t\t\t\t\t\t\t\t\tamount = 4\n+\t\t\t\t\t\t\t\t\t\t\tchild =\n+\t\t\t\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\t\t\t\ttype = \"subtree\"\n+\t\t\t\t\t\t\t\t\t\t\t\tfile = \"scripts/ai/retakes/modules/bt_watch_approach_points.kv3\"\n+\t\t\t\t\t\t\t\t\t\t\t\tname = \"WatchApproachPoints\"\n+\t\t\t\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t]\n+\t\t\t\t\t\t},\n+\t\t\t\t\t\t// Else: a teammate already has this spot, leave so we pick another one\n+\t\t\t\t\t\t{\n+\t\t\t\t\t\t\ttype = \"decorator_sensor\"\n+\t\t\t\t\t\t\tentity_type_filter = \"PLAYERS\"\n+\t\t\t\t\t\t\tteam_filter = \"SAME\"\n+\t\t\t\t\t\t\tshape =\n+\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\ttype = \"sensor_shape_sphere\"\n+\t\t\t\t\t\t\t\tradius = 80\n+\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\toutput = \"TeammatesAtSpot\"\n+\t\t\t\t\t\t\tchild =\n+\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\ttype = \"condition_is_empty\"\n+\t\t\t\t\t\t\t\tinput = \"TeammatesAtSpot\"\n+\t\t\t\t\t\t\t\tnegated = 1\n+\t\t\t\t\t\t\t\tchild =\n+\t\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\t\ttype = \"action_wait\"\n+\t\t\t\t\t\t\t\t\twait_time_min = 0.1\n+\t\t\t\t\t\t\t\t\twait_time_max = 0.1\n+\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t},\n+\t\t\t\t\t\t// Else: no hiding spot nearby, watch from here for a bit\n+\t\t\t\t\t\t{\n+\t\t\t\t\t\t\ttype = \"decorator_repeat\"\n+\t\t\t\t\t\t\tamount = 2\n+\t\t\t\t\t\t\tchild =\n+\t\t\t\t\t\t\t{\n+\t\t\t\t\t\t\t\ttype = \"subtree\"\n+\t\t\t\t\t\t\t\tfile = \"scripts/ai/retakes/modules/bt_watch_approach_points.kv3\"\n+\t\t\t\t\t\t\t\tname = \"WatchApproachPoints\"\n+\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t}\n+\t\t\t\t\t]\n+\t\t\t\t}\n+\t\t\t]\n+\t\t}\n+\t}\n+}"
        },
        {
          "filename": "game/csgo/pak01_dir/scripts/ai/retakes/modules/bt_hold_near_planted_bomb.kv3",
          "status": "added",
          "additions": 40,
          "deletions": 0,
          "changes": 40,
          "patch": "@@ -0,0 +1,40 @@\n+<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->\n+// Move to a random spot near the planted bomb and hold it for a few seconds, then pick a new spot.\n+{\n+\ttype = \"decorator_sensor\"\n+\tentity_type_filter = \"CLASSNAME\"\n+\tclass_name = \"planted_c4\"\n+\toutput = \"PlantedBomb\"\n+\tpriority = 1\n+\tchild =\n+\t{\n+\t\ttype = \"condition_is_empty\"\n+\t\tinput = \"PlantedBomb\"\n+\t\tnegated = 1\n+\t\tchild =\n+\t\t{\n+\t\t\ttype = \"sequencer\"\n+\t\t\tchildren =\n+\t\t\t[\n+\t\t\t\t{\n+\t\t\t\t\ttype = \"action_choose_random_waypoint_within_radius\"\n+\t\t\t\t\torigin = \"PlantedBomb\"\n+\t\t\t\t\tradius = 500\n+\t\t\t\t\toutput = \"BombHoldSpot\"\n+\t\t\t\t},\n+\t\t\t\t{\n+\t\t\t\t\ttype = \"action_move_to\"\n+\t\t\t\t\tdestination = \"BombHoldSpot\"\n+\t\t\t\t\tmovement_type = \"BT_ACTION_MOVETO_RUN\"\n+\t\t\t\t\troute_type = \"BT_ACTION_MOVETO_FASTEST_ROUTE\"\n+\t\t\t\t\tthreat = \"NearestThreatMemory\"\n+\t\t\t\t},\n+\t\t\t\t{\n+\t\t\t\t\ttype = \"action_wait\"\n+\t\t\t\t\twait_time_min = 3\n+\t\t\t\t\twait_time_max = 6\n+\t\t\t\t}\n+\t\t\t]\n+\t\t}\n+\t}\n+}"
        },
        {
          "filename": "game/csgo/pak01_dir/scripts/ai/retakes/modules/bt_watch_approach_points.kv3",
          "status": "added",
          "additions": 21,
          "deletions": 0,
          "changes": 21,
          "patch": "@@ -0,0 +1,21 @@\n+<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->\n+// Face a spot enemies could come from and watch it for a few seconds.\n+{\n+\ttype = \"sequencer\"\n+\tchildren =\n+\t[\n+\t\t{\n+\t\t\ttype = \"decorator_random_approach_point\"\n+\t\t\toutput = \"WatchPoint\"\n+\t\t},\n+\t\t{\n+\t\t\ttype = \"action_look_at\"\n+\t\t\tinput_location = \"WatchPoint\"\n+\t\t},\n+\t\t{\n+\t\t\ttype = \"action_wait\"\n+\t\t\twait_time_min = 2\n+\t\t\twait_time_max = 4\n+\t\t}\n+\t]\n+}"
        },
        {
          "filename": "game/csgo/readonly_tools_asset_info.txt",
          "status": "modified",
          "additions": 4,
          "deletions": 1,
          "changes": 5,
          "patch": "@@ -106658,7 +106658,6 @@ materials/de_inferno/ground/inferno_stone_floor_08_ao_tga_961ee77e.vtex\n materials/de_inferno/ground/inferno_stone_floor_08_color_tga_199a7503.vtex\n materials/trim/concrete_trim_02_ao_tga_68704a36.vtex\n materials/trim/concrete_trim_02_color_tga_971de7c0.vtex\n-weapons/models/c4/materials/c4_digits_psd_52746c2d.vtex\n weapons/models/c4/materials/weapon_c4_digits_vmat_g_tmetalness_5818ca09.vtex\n weapons/models/shared/shells/shotgun/mag7_bullet_color_psd_29ec1a9d.vtex\n maps/ar_shoots_night.vmap\n@@ -134924,3 +134923,7 @@ panorama/layout/hud/hudmutators.vxml\n panorama/styles/hud/hudmutators.vcss\n sounds/graphs/bighead_pitch.vsnd\n panorama/images/econ/keychains/bud2025/kc_bud2025_png.vtex\n+materials/dev/frost.vtex\n+weapons/models/c4/materials/c4_digits_mask_psd_3de339d1.vtex\n+weapons/models/c4/materials/c4_digits_psd_f79d8a5b.vtex\n+weapons/models/c4/materials/weapon_c4_digits_vmat_g_tcolor_6dc78c9e.vtex"
        },
        {
          "filename": "game/csgo/shaders_pc_dir.txt",
          "status": "modified",
          "additions": 199,
          "deletions": 199,
          "changes": 398,
          "patch": "@@ -1,10 +1,10 @@\n shaders/vfx/bilateral_upsample.ini CRC:0000000000 size:0\n-shaders/vfx/bilateral_upsample_pc_50_features.vcs CRC:0034e7463f size:1746\n-shaders/vfx/bilateral_upsample_pc_50_ps.vcs CRC:00e1ae0d6b size:2684\n+shaders/vfx/bilateral_upsample_pc_50_features.vcs CRC:006c4f6911 size:1762\n+shaders/vfx/bilateral_upsample_pc_50_ps.vcs CRC:00042818cd size:2684\n shaders/vfx/bilateral_upsample_pc_50_vs.vcs CRC:00f096d35d size:2526\n shaders/vfx/bloom_cs.ini CRC:0000000000 size:0\n-shaders/vfx/bloom_cs_pc_50_cs.vcs CRC:003c640dc0 size:9081\n-shaders/vfx/bloom_cs_pc_50_features.vcs CRC:008fd509b8 size:2018\n+shaders/vfx/bloom_cs_pc_50_cs.vcs CRC:00db01272e size:9081\n+shaders/vfx/bloom_cs_pc_50_features.vcs CRC:0074832d4b size:2018\n shaders/vfx/blur.ini CRC:0000000000 size:0\n shaders/vfx/blur_pc_50_features.vcs CRC:001ea646d8 size:2098\n shaders/vfx/blur_pc_50_ps.vcs CRC:0080a05570 size:14418\n@@ -18,10 +18,10 @@ shaders/vfx/bomb_blast_pc_50_features.vcs CRC:007c0852a7 size:1682\n shaders/vfx/bomb_blast_pc_50_ps.vcs CRC:001870c92e size:2718\n shaders/vfx/bomb_blast_pc_50_vs.vcs CRC:00d87cc785 size:2253\n shaders/vfx/cables.ini CRC:0000000000 size:0\n-shaders/vfx/cables_pc_50_features.vcs CRC:001ff5763c size:4690\n-shaders/vfx/cables_pc_50_ps.vcs CRC:0038710ee4 size:256518\n-shaders/vfx/cables_pc_50_psrs.vcs CRC:00ebbb81fb size:3266\n-shaders/vfx/cables_pc_50_vs.vcs CRC:0076b3ef42 size:22671\n+shaders/vfx/cables_pc_50_features.vcs CRC:00006c1e1c size:4690\n+shaders/vfx/cables_pc_50_ps.vcs CRC:000e95ec88 size:256463\n+shaders/vfx/cables_pc_50_psrs.vcs CRC:00b935a061 size:3282\n+shaders/vfx/cables_pc_50_vs.vcs CRC:00f307b471 size:22671\n shaders/vfx/cs_color_picker.ini CRC:0000000000 size:0\n shaders/vfx/cs_color_picker_pc_50_features.vcs CRC:00b8399ca8 size:1394\n shaders/vfx/cs_color_picker_pc_50_ps.vcs CRC:00532d7d2a size:1843\n@@ -31,25 +31,25 @@ shaders/vfx/csgo_alpha_immunity_pc_50_features.vcs CRC:0028b20085 size:1698\n shaders/vfx/csgo_alpha_immunity_pc_50_ps.vcs CRC:00b932a9b1 size:1937\n shaders/vfx/csgo_alpha_immunity_pc_50_vs.vcs CRC:009d972d06 size:1935\n shaders/vfx/csgo_beachfoam.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_beachfoam_pc_50_features.vcs CRC:00a69a0c5d size:3282\n-shaders/vfx/csgo_beachfoam_pc_50_ps.vcs CRC:00bd3c0ca7 size:4373\n-shaders/vfx/csgo_beachfoam_pc_50_psrs.vcs CRC:00a641f69c size:1826\n-shaders/vfx/csgo_beachfoam_pc_50_vs.vcs CRC:001bdb8e1b size:10066\n+shaders/vfx/csgo_beachfoam_pc_50_features.vcs CRC:00d55e96ba size:3298\n+shaders/vfx/csgo_beachfoam_pc_50_ps.vcs CRC:00e9d92dda size:4373\n+shaders/vfx/csgo_beachfoam_pc_50_psrs.vcs CRC:0024b3b21e size:1826\n+shaders/vfx/csgo_beachfoam_pc_50_vs.vcs CRC:00f256386b size:10066\n shaders/vfx/csgo_black_unlit.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_black_unlit_pc_50_features.vcs CRC:006b997500 size:2658\n-shaders/vfx/csgo_black_unlit_pc_50_ps.vcs CRC:00db0acfad size:3782\n-shaders/vfx/csgo_black_unlit_pc_50_psrs.vcs CRC:000a9a08e4 size:1794\n-shaders/vfx/csgo_black_unlit_pc_50_vs.vcs CRC:00b4f45add size:5438\n+shaders/vfx/csgo_black_unlit_pc_50_features.vcs CRC:00e6ea9e1c size:2658\n+shaders/vfx/csgo_black_unlit_pc_50_ps.vcs CRC:00d062960d size:3782\n+shaders/vfx/csgo_black_unlit_pc_50_psrs.vcs CRC:005a2ae455 size:1794\n+shaders/vfx/csgo_black_unlit_pc_50_vs.vcs CRC:004a5323fa size:5454\n shaders/vfx/csgo_character.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_character_pc_50_features.vcs CRC:00f06dd1c3 size:8978\n-shaders/vfx/csgo_character_pc_50_ps.vcs CRC:000bbac0ac size:189827159\n-shaders/vfx/csgo_character_pc_50_psrs.vcs CRC:00b02597dd size:3474\n-shaders/vfx/csgo_character_pc_50_vs.vcs CRC:0055266743 size:1087605\n+shaders/vfx/csgo_character_pc_50_features.vcs CRC:008eefeaa7 size:9010\n+shaders/vfx/csgo_character_pc_50_ps.vcs CRC:005a31661e size:207470863\n+shaders/vfx/csgo_character_pc_50_psrs.vcs CRC:00fc9939ed size:3474\n+shaders/vfx/csgo_character_pc_50_vs.vcs CRC:0006510e27 size:1122552\n shaders/vfx/csgo_complex.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_complex_pc_50_features.vcs CRC:002c54617b size:7442\n-shaders/vfx/csgo_complex_pc_50_ps.vcs CRC:00c7b99669 size:28492560\n+shaders/vfx/csgo_complex_pc_50_features.vcs CRC:002361cfa7 size:7458\n+shaders/vfx/csgo_complex_pc_50_ps.vcs CRC:00788902eb size:28676540\n shaders/vfx/csgo_complex_pc_50_psrs.vcs CRC:0052229d16 size:3186\n-shaders/vfx/csgo_complex_pc_50_vs.vcs CRC:0077bd33e4 size:253601\n+shaders/vfx/csgo_complex_pc_50_vs.vcs CRC:002bdb8f50 size:253636\n shaders/vfx/csgo_composite_generic.ini CRC:0000000000 size:0\n shaders/vfx/csgo_composite_generic_pc_50_features.vcs CRC:0056569b3f size:1778\n shaders/vfx/csgo_composite_generic_pc_50_ps.vcs CRC:004276e0a8 size:2028\n@@ -71,103 +71,103 @@ shaders/vfx/csgo_crosshair_pc_50_features.vcs CRC:00f12acb43 size:1730\n shaders/vfx/csgo_crosshair_pc_50_ps.vcs CRC:00ec3b135b size:3493\n shaders/vfx/csgo_crosshair_pc_50_vs.vcs CRC:004ff0a9c9 size:1438\n shaders/vfx/csgo_customglove.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_customglove_pc_50_features.vcs CRC:0004c59a8b size:11538\n-shaders/vfx/csgo_customglove_pc_50_ps.vcs CRC:0067b422db size:38190\n+shaders/vfx/csgo_customglove_pc_50_features.vcs CRC:004931493e size:11538\n+shaders/vfx/csgo_customglove_pc_50_ps.vcs CRC:00d78330d8 size:38190\n shaders/vfx/csgo_customglove_pc_50_vs.vcs CRC:003c0a3fbf size:3732\n shaders/vfx/csgo_customglove_preview.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_customglove_preview_pc_50_features.vcs CRC:002c379f80 size:9714\n-shaders/vfx/csgo_customglove_preview_pc_50_ps.vcs CRC:00f807d88f size:66324\n-shaders/vfx/csgo_customglove_preview_pc_50_psrs.vcs CRC:009b036760 size:1874\n-shaders/vfx/csgo_customglove_preview_pc_50_vs.vcs CRC:009109a76d size:12642\n+shaders/vfx/csgo_customglove_preview_pc_50_features.vcs CRC:00cf860234 size:9714\n+shaders/vfx/csgo_customglove_preview_pc_50_ps.vcs CRC:005b883d0c size:66365\n+shaders/vfx/csgo_customglove_preview_pc_50_psrs.vcs CRC:0076bdde45 size:1874\n+shaders/vfx/csgo_customglove_preview_pc_50_vs.vcs CRC:007fe752e7 size:12656\n shaders/vfx/csgo_customweapon.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_customweapon_pc_50_features.vcs CRC:00f5faa539 size:6642\n-shaders/vfx/csgo_customweapon_pc_50_ps.vcs CRC:00bf16439b size:2369483\n+shaders/vfx/csgo_customweapon_pc_50_features.vcs CRC:00d0dbb0d1 size:6642\n+shaders/vfx/csgo_customweapon_pc_50_ps.vcs CRC:0066543773 size:2369483\n shaders/vfx/csgo_customweapon_pc_50_vs.vcs CRC:00aef77df3 size:3926\n shaders/vfx/csgo_decal_renderer.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_decal_renderer_pc_50_features.vcs CRC:00ad4c4fd7 size:1986\n-shaders/vfx/csgo_decal_renderer_pc_50_ps.vcs CRC:002caf0993 size:2311\n-shaders/vfx/csgo_decal_renderer_pc_50_vs.vcs CRC:00898d6700 size:4014\n+shaders/vfx/csgo_decal_renderer_pc_50_features.vcs CRC:00205d1ed4 size:1986\n+shaders/vfx/csgo_decal_renderer_pc_50_ps.vcs CRC:00c9bee2cb size:2311\n+shaders/vfx/csgo_decal_renderer_pc_50_vs.vcs CRC:009f750384 size:4014\n shaders/vfx/csgo_decalmodulate.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_decalmodulate_pc_50_features.vcs CRC:00512501a2 size:3426\n-shaders/vfx/csgo_decalmodulate_pc_50_ps.vcs CRC:00eafa1455 size:3743\n-shaders/vfx/csgo_decalmodulate_pc_50_psrs.vcs CRC:00c3bbd8e9 size:1890\n-shaders/vfx/csgo_decalmodulate_pc_50_vs.vcs CRC:00a96d1538 size:15536\n+shaders/vfx/csgo_decalmodulate_pc_50_features.vcs CRC:006f5f0fb8 size:3426\n+shaders/vfx/csgo_decalmodulate_pc_50_ps.vcs CRC:0031250161 size:3743\n+shaders/vfx/csgo_decalmodulate_pc_50_psrs.vcs CRC:007c80e187 size:1906\n+shaders/vfx/csgo_decalmodulate_pc_50_vs.vcs CRC:005bab6986 size:15536\n shaders/vfx/csgo_depth_only.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_depth_only_pc_50_features.vcs CRC:00dc9a4723 size:3218\n-shaders/vfx/csgo_depth_only_pc_50_ps.vcs CRC:00ae9f5104 size:4588\n-shaders/vfx/csgo_depth_only_pc_50_vs.vcs CRC:0026d0d00d size:9367\n+shaders/vfx/csgo_depth_only_pc_50_features.vcs CRC:00690fd609 size:3234\n+shaders/vfx/csgo_depth_only_pc_50_ps.vcs CRC:00da61265c size:4604\n+shaders/vfx/csgo_depth_only_pc_50_vs.vcs CRC:00ebcbccf1 size:9367\n shaders/vfx/csgo_dronecam.ini CRC:0000000000 size:0\n shaders/vfx/csgo_dronecam_pc_50_features.vcs CRC:00c669bb55 size:1778\n shaders/vfx/csgo_dronecam_pc_50_ps.vcs CRC:0064da1316 size:2617\n shaders/vfx/csgo_dronecam_pc_50_vs.vcs CRC:0080ed5afd size:1419\n shaders/vfx/csgo_effects.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_effects_pc_50_features.vcs CRC:0030264a33 size:4210\n-shaders/vfx/csgo_effects_pc_50_ps.vcs CRC:00fdbf6300 size:85300\n-shaders/vfx/csgo_effects_pc_50_psrs.vcs CRC:00e60f45eb size:2242\n-shaders/vfx/csgo_effects_pc_50_vs.vcs CRC:00a4824733 size:12391\n+shaders/vfx/csgo_effects_pc_50_features.vcs CRC:0013a5d2c7 size:4226\n+shaders/vfx/csgo_effects_pc_50_ps.vcs CRC:004f3dc82d size:85300\n+shaders/vfx/csgo_effects_pc_50_psrs.vcs CRC:00153d4526 size:2242\n+shaders/vfx/csgo_effects_pc_50_vs.vcs CRC:00ba26d49a size:12391\n shaders/vfx/csgo_environment.ini CRC:0000000000 size:0\n shaders/vfx/csgo_environment_blend.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_environment_blend_pc_50_features.vcs CRC:00628a172a size:10802\n-shaders/vfx/csgo_environment_blend_pc_50_ps.vcs CRC:00a1f5b123 size:16771460\n-shaders/vfx/csgo_environment_blend_pc_50_psrs.vcs CRC:009b0d6923 size:2498\n-shaders/vfx/csgo_environment_blend_pc_50_vs.vcs CRC:00a98781f0 size:262853\n-shaders/vfx/csgo_environment_pc_50_features.vcs CRC:004cc5e42a size:6402\n-shaders/vfx/csgo_environment_pc_50_ps.vcs CRC:00e08c6423 size:586762\n-shaders/vfx/csgo_environment_pc_50_psrs.vcs CRC:005fcd929b size:2450\n-shaders/vfx/csgo_environment_pc_50_vs.vcs CRC:0020d390c7 size:108674\n+shaders/vfx/csgo_environment_blend_pc_50_features.vcs CRC:00b4ff75e4 size:11298\n+shaders/vfx/csgo_environment_blend_pc_50_ps.vcs CRC:00f90093db size:76670919\n+shaders/vfx/csgo_environment_blend_pc_50_psrs.vcs CRC:001472f002 size:2722\n+shaders/vfx/csgo_environment_blend_pc_50_vs.vcs CRC:007d04cd5e size:468956\n+shaders/vfx/csgo_environment_pc_50_features.vcs CRC:00c59ec509 size:6834\n+shaders/vfx/csgo_environment_pc_50_ps.vcs CRC:005275f316 size:2487759\n+shaders/vfx/csgo_environment_pc_50_psrs.vcs CRC:004ac0f75e size:2594\n+shaders/vfx/csgo_environment_pc_50_vs.vcs CRC:009a2a7cfe size:192935\n shaders/vfx/csgo_eyeball.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_eyeball_pc_50_features.vcs CRC:000f2dfa98 size:3922\n-shaders/vfx/csgo_eyeball_pc_50_ps.vcs CRC:00df4e7bc8 size:67003\n-shaders/vfx/csgo_eyeball_pc_50_psrs.vcs CRC:00b0972c53 size:1650\n-shaders/vfx/csgo_eyeball_pc_50_vs.vcs CRC:00f96baefc size:16917\n+shaders/vfx/csgo_eyeball_pc_50_features.vcs CRC:0016b98da6 size:3922\n+shaders/vfx/csgo_eyeball_pc_50_ps.vcs CRC:00e11218f9 size:66492\n+shaders/vfx/csgo_eyeball_pc_50_psrs.vcs CRC:00072dbbdc size:1650\n+shaders/vfx/csgo_eyeball_pc_50_vs.vcs CRC:00326c6a8e size:16917\n shaders/vfx/csgo_flashbang_overlay.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_flashbang_overlay_pc_50_features.vcs CRC:00969e232f size:3506\n-shaders/vfx/csgo_flashbang_overlay_pc_50_ps.vcs CRC:00da6182a6 size:3441\n-shaders/vfx/csgo_flashbang_overlay_pc_50_psrs.vcs CRC:00c63abcc9 size:1810\n-shaders/vfx/csgo_flashbang_overlay_pc_50_vs.vcs CRC:006f2f92dd size:10955\n+shaders/vfx/csgo_flashbang_overlay_pc_50_features.vcs CRC:00629c8b47 size:3506\n+shaders/vfx/csgo_flashbang_overlay_pc_50_ps.vcs CRC:00eb33329b size:3457\n+shaders/vfx/csgo_flashbang_overlay_pc_50_psrs.vcs CRC:00cf9557be size:1810\n+shaders/vfx/csgo_flashbang_overlay_pc_50_vs.vcs CRC:00a9beece1 size:10955\n shaders/vfx/csgo_foliage.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_foliage_pc_50_features.vcs CRC:0024e6305a size:6546\n-shaders/vfx/csgo_foliage_pc_50_ps.vcs CRC:00bfdccfd6 size:1780494\n+shaders/vfx/csgo_foliage_pc_50_features.vcs CRC:00e75ed1a3 size:6562\n+shaders/vfx/csgo_foliage_pc_50_ps.vcs CRC:00298e50c4 size:1792798\n shaders/vfx/csgo_foliage_pc_50_psrs.vcs CRC:0031f2542c size:2338\n-shaders/vfx/csgo_foliage_pc_50_vs.vcs CRC:002c7e7ad5 size:181743\n+shaders/vfx/csgo_foliage_pc_50_vs.vcs CRC:00da5d427f size:181749\n shaders/vfx/csgo_glass.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_glass_pc_50_features.vcs CRC:00d2842b3d size:4402\n-shaders/vfx/csgo_glass_pc_50_ps.vcs CRC:003ea7ff8c size:331042\n+shaders/vfx/csgo_glass_pc_50_features.vcs CRC:00fbb549d6 size:4418\n+shaders/vfx/csgo_glass_pc_50_ps.vcs CRC:000f3b36cc size:331042\n shaders/vfx/csgo_glass_pc_50_psrs.vcs CRC:005ac685d9 size:2818\n-shaders/vfx/csgo_glass_pc_50_vs.vcs CRC:0025c5aa41 size:103464\n+shaders/vfx/csgo_glass_pc_50_vs.vcs CRC:00949969fc size:103526\n shaders/vfx/csgo_grenade_camera.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_grenade_camera_pc_50_features.vcs CRC:000c7874cb size:1890\n-shaders/vfx/csgo_grenade_camera_pc_50_ps.vcs CRC:00d4fdb943 size:2964\n+shaders/vfx/csgo_grenade_camera_pc_50_features.vcs CRC:006a5f3554 size:1890\n+shaders/vfx/csgo_grenade_camera_pc_50_ps.vcs CRC:00fe98941f size:2964\n shaders/vfx/csgo_grenade_camera_pc_50_vs.vcs CRC:0005d6a808 size:1408\n shaders/vfx/csgo_legs_prepass.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_legs_prepass_pc_50_features.vcs CRC:004e844ea8 size:3074\n-shaders/vfx/csgo_legs_prepass_pc_50_ps.vcs CRC:007aeda789 size:2033\n-shaders/vfx/csgo_legs_prepass_pc_50_vs.vcs CRC:00a04b38b1 size:14653\n+shaders/vfx/csgo_legs_prepass_pc_50_features.vcs CRC:00bc7d148c size:3074\n+shaders/vfx/csgo_legs_prepass_pc_50_ps.vcs CRC:007fdbbe6a size:2033\n+shaders/vfx/csgo_legs_prepass_pc_50_vs.vcs CRC:0081c22f2e size:14666\n shaders/vfx/csgo_lightmapped_4wayblend.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_lightmapped_4wayblend_pc_50_features.vcs CRC:006c1c09f3 size:4594\n-shaders/vfx/csgo_lightmapped_4wayblend_pc_50_ps.vcs CRC:007ea53fa7 size:388193\n-shaders/vfx/csgo_lightmapped_4wayblend_pc_50_psrs.vcs CRC:003c1c6177 size:2050\n-shaders/vfx/csgo_lightmapped_4wayblend_pc_50_vs.vcs CRC:00a217c744 size:46838\n+shaders/vfx/csgo_lightmapped_4wayblend_pc_50_features.vcs CRC:006c523e22 size:4594\n+shaders/vfx/csgo_lightmapped_4wayblend_pc_50_ps.vcs CRC:000552caf2 size:389420\n+shaders/vfx/csgo_lightmapped_4wayblend_pc_50_psrs.vcs CRC:00fe2f5b08 size:2050\n+shaders/vfx/csgo_lightmapped_4wayblend_pc_50_vs.vcs CRC:001d0e662e size:46836\n shaders/vfx/csgo_lightmappedgeneric.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_lightmappedgeneric_pc_50_features.vcs CRC:00ab338200 size:7010\n-shaders/vfx/csgo_lightmappedgeneric_pc_50_ps.vcs CRC:00d42aecf8 size:11580019\n-shaders/vfx/csgo_lightmappedgeneric_pc_50_psrs.vcs CRC:00d26d1ffd size:3986\n-shaders/vfx/csgo_lightmappedgeneric_pc_50_vs.vcs CRC:00766cc456 size:464239\n+shaders/vfx/csgo_lightmappedgeneric_pc_50_features.vcs CRC:007da3545b size:7042\n+shaders/vfx/csgo_lightmappedgeneric_pc_50_ps.vcs CRC:008c2aea61 size:11648526\n+shaders/vfx/csgo_lightmappedgeneric_pc_50_psrs.vcs CRC:0054e765df size:4002\n+shaders/vfx/csgo_lightmappedgeneric_pc_50_vs.vcs CRC:00f77e68b5 size:648944\n shaders/vfx/csgo_moondome.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_moondome_pc_50_features.vcs CRC:004b2fc1ab size:3634\n-shaders/vfx/csgo_moondome_pc_50_ps.vcs CRC:00ca9ad03d size:4945\n-shaders/vfx/csgo_moondome_pc_50_psrs.vcs CRC:009f55912f size:1762\n-shaders/vfx/csgo_moondome_pc_50_vs.vcs CRC:001bdb8e1b size:10066\n+shaders/vfx/csgo_moondome_pc_50_features.vcs CRC:0020f98436 size:3650\n+shaders/vfx/csgo_moondome_pc_50_ps.vcs CRC:007dda1bc9 size:4945\n+shaders/vfx/csgo_moondome_pc_50_psrs.vcs CRC:00e49eec17 size:1762\n+shaders/vfx/csgo_moondome_pc_50_vs.vcs CRC:00f256386b size:10066\n shaders/vfx/csgo_panolayer_rt.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_panolayer_rt_pc_50_features.vcs CRC:00a63eaa01 size:1858\n-shaders/vfx/csgo_panolayer_rt_pc_50_ps.vcs CRC:00cea846d3 size:2459\n-shaders/vfx/csgo_panolayer_rt_pc_50_psrs.vcs CRC:00bcb37f20 size:1586\n-shaders/vfx/csgo_panolayer_rt_pc_50_vs.vcs CRC:004f3c6ce2 size:1419\n+shaders/vfx/csgo_panolayer_rt_pc_50_features.vcs CRC:00c1759f92 size:1858\n+shaders/vfx/csgo_panolayer_rt_pc_50_ps.vcs CRC:00a8cd3e0c size:2475\n+shaders/vfx/csgo_panolayer_rt_pc_50_psrs.vcs CRC:0029a0cc5e size:1586\n+shaders/vfx/csgo_panolayer_rt_pc_50_vs.vcs CRC:00bce22fb9 size:1419\n shaders/vfx/csgo_projected_decals.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_projected_decals_pc_50_features.vcs CRC:0000663690 size:5362\n-shaders/vfx/csgo_projected_decals_pc_50_ps.vcs CRC:001cd181b2 size:38518294\n-shaders/vfx/csgo_projected_decals_pc_50_psrs.vcs CRC:002ab260b2 size:2786\n-shaders/vfx/csgo_projected_decals_pc_50_vs.vcs CRC:005e3ce8d5 size:9438\n+shaders/vfx/csgo_projected_decals_pc_50_features.vcs CRC:00d8e93893 size:5362\n+shaders/vfx/csgo_projected_decals_pc_50_ps.vcs CRC:00ca835ab8 size:38861312\n+shaders/vfx/csgo_projected_decals_pc_50_psrs.vcs CRC:00ad2bd92b size:2786\n+shaders/vfx/csgo_projected_decals_pc_50_vs.vcs CRC:001a6ee55c size:9438\n shaders/vfx/csgo_refract.ini CRC:0000000000 size:0\n shaders/vfx/csgo_refract_pc_50_features.vcs CRC:00743561c0 size:2530\n shaders/vfx/csgo_refract_pc_50_ps.vcs CRC:00eee6c25d size:9649\n@@ -178,34 +178,34 @@ shaders/vfx/csgo_screenspace_zone_pc_50_ps.vcs CRC:0042a3d8e9 size:3579\n shaders/vfx/csgo_screenspace_zone_pc_50_vs.vcs CRC:0080ed5afd size:1419\n shaders/vfx/csgo_simple.ini CRC:0000000000 size:0\n shaders/vfx/csgo_simple_2way_blend.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_simple_2way_blend_pc_50_features.vcs CRC:0057a7c390 size:4754\n-shaders/vfx/csgo_simple_2way_blend_pc_50_ps.vcs CRC:0099bfdb09 size:213121\n+shaders/vfx/csgo_simple_2way_blend_pc_50_features.vcs CRC:00ca6d9747 size:4770\n+shaders/vfx/csgo_simple_2way_blend_pc_50_ps.vcs CRC:006e297b57 size:214804\n shaders/vfx/csgo_simple_2way_blend_pc_50_psrs.vcs CRC:0090fd3cc3 size:1826\n-shaders/vfx/csgo_simple_2way_blend_pc_50_vs.vcs CRC:0019225be2 size:27921\n+shaders/vfx/csgo_simple_2way_blend_pc_50_vs.vcs CRC:00325aecc7 size:27921\n shaders/vfx/csgo_simple_3layer_parallax.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_simple_3layer_parallax_pc_50_features.vcs CRC:00d9b4c117 size:4946\n-shaders/vfx/csgo_simple_3layer_parallax_pc_50_ps.vcs CRC:00afc01a69 size:3090430\n+shaders/vfx/csgo_simple_3layer_parallax_pc_50_features.vcs CRC:004f50c607 size:4962\n+shaders/vfx/csgo_simple_3layer_parallax_pc_50_ps.vcs CRC:00812de13f size:3100480\n shaders/vfx/csgo_simple_3layer_parallax_pc_50_psrs.vcs CRC:0051d20c11 size:1890\n-shaders/vfx/csgo_simple_3layer_parallax_pc_50_vs.vcs CRC:008fdae558 size:25434\n+shaders/vfx/csgo_simple_3layer_parallax_pc_50_vs.vcs CRC:00b270a088 size:25436\n shaders/vfx/csgo_simple_liquid.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_simple_liquid_pc_50_features.vcs CRC:00eba0f1b9 size:5810\n-shaders/vfx/csgo_simple_liquid_pc_50_ps.vcs CRC:00a17d45fa size:1003783\n-shaders/vfx/csgo_simple_liquid_pc_50_psrs.vcs CRC:009897a715 size:1826\n-shaders/vfx/csgo_simple_liquid_pc_50_vs.vcs CRC:00e8bef575 size:41959\n-shaders/vfx/csgo_simple_pc_50_features.vcs CRC:00fb3b70e4 size:4754\n-shaders/vfx/csgo_simple_pc_50_ps.vcs CRC:00bce484ff size:314662\n+shaders/vfx/csgo_simple_liquid_pc_50_features.vcs CRC:005ba47738 size:5874\n+shaders/vfx/csgo_simple_liquid_pc_50_ps.vcs CRC:00b2e7db99 size:1119447\n+shaders/vfx/csgo_simple_liquid_pc_50_psrs.vcs CRC:007031f32d size:1842\n+shaders/vfx/csgo_simple_liquid_pc_50_vs.vcs CRC:0081f2cd4d size:43667\n+shaders/vfx/csgo_simple_pc_50_features.vcs CRC:0026fefa0a size:4754\n+shaders/vfx/csgo_simple_pc_50_ps.vcs CRC:00be0541d6 size:316365\n shaders/vfx/csgo_simple_pc_50_psrs.vcs CRC:001a21352e size:2082\n-shaders/vfx/csgo_simple_pc_50_vs.vcs CRC:00d3cec24c size:27531\n+shaders/vfx/csgo_simple_pc_50_vs.vcs CRC:002b6e0499 size:27542\n shaders/vfx/csgo_static_overlay.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_static_overlay_pc_50_features.vcs CRC:00ef4dc224 size:7666\n-shaders/vfx/csgo_static_overlay_pc_50_ps.vcs CRC:00d49c87a1 size:550765\n-shaders/vfx/csgo_static_overlay_pc_50_psrs.vcs CRC:0044b08142 size:2610\n-shaders/vfx/csgo_static_overlay_pc_50_vs.vcs CRC:00a5a24102 size:164188\n+shaders/vfx/csgo_static_overlay_pc_50_features.vcs CRC:009e159750 size:7698\n+shaders/vfx/csgo_static_overlay_pc_50_ps.vcs CRC:00bfe17d30 size:566088\n+shaders/vfx/csgo_static_overlay_pc_50_psrs.vcs CRC:000e222ab4 size:2610\n+shaders/vfx/csgo_static_overlay_pc_50_vs.vcs CRC:0049c8b951 size:174537\n shaders/vfx/csgo_textile_layer.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_textile_layer_pc_50_features.vcs CRC:001e279830 size:7170\n-shaders/vfx/csgo_textile_layer_pc_50_ps.vcs CRC:006ca73be9 size:63755\n-shaders/vfx/csgo_textile_layer_pc_50_psrs.vcs CRC:00ace63e8c size:1858\n-shaders/vfx/csgo_textile_layer_pc_50_vs.vcs CRC:00349ea552 size:11757\n+shaders/vfx/csgo_textile_layer_pc_50_features.vcs CRC:0097e0b483 size:7170\n+shaders/vfx/csgo_textile_layer_pc_50_ps.vcs CRC:00db4e4125 size:63816\n+shaders/vfx/csgo_textile_layer_pc_50_psrs.vcs CRC:00ff9799e7 size:1858\n+shaders/vfx/csgo_textile_layer_pc_50_vs.vcs CRC:00f643c4db size:11790\n shaders/vfx/csgo_tools_shading_complexity.ini CRC:0000000000 size:0\n shaders/vfx/csgo_tools_shading_complexity_pc_50_features.vcs CRC:00d8a30b64 size:2114\n shaders/vfx/csgo_tools_shading_complexity_pc_50_ps.vcs CRC:00eecda73b size:2577\n@@ -219,39 +219,39 @@ shaders/vfx/csgo_ui_texture_attribute_pc_50_features.vcs CRC:003dc34fc4 size:161\n shaders/vfx/csgo_ui_texture_attribute_pc_50_ps.vcs CRC:00431b2656 size:1848\n shaders/vfx/csgo_ui_texture_attribute_pc_50_vs.vcs CRC:003c1853ee size:1867\n shaders/vfx/csgo_unlitgeneric.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_unlitgeneric_pc_50_features.vcs CRC:00f0929503 size:4770\n-shaders/vfx/csgo_unlitgeneric_pc_50_ps.vcs CRC:00e7bf9e46 size:76959\n-shaders/vfx/csgo_unlitgeneric_pc_50_psrs.vcs CRC:0073277f05 size:3314\n-shaders/vfx/csgo_unlitgeneric_pc_50_vs.vcs CRC:00318acf7e size:103921\n+shaders/vfx/csgo_unlitgeneric_pc_50_features.vcs CRC:00bd0c721d size:4770\n+shaders/vfx/csgo_unlitgeneric_pc_50_ps.vcs CRC:00b017f336 size:76959\n+shaders/vfx/csgo_unlitgeneric_pc_50_psrs.vcs CRC:00b75836fd size:3314\n+shaders/vfx/csgo_unlitgeneric_pc_50_vs.vcs CRC:00fc810b1f size:103921\n shaders/vfx/csgo_vertexlitgeneric.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_vertexlitgeneric_pc_50_features.vcs CRC:004e1f5a12 size:6658\n-shaders/vfx/csgo_vertexlitgeneric_pc_50_ps.vcs CRC:0066457772 size:12667234\n+shaders/vfx/csgo_vertexlitgeneric_pc_50_features.vcs CRC:00544d2abe size:6642\n+shaders/vfx/csgo_vertexlitgeneric_pc_50_ps.vcs CRC:003304b993 size:12755930\n shaders/vfx/csgo_vertexlitgeneric_pc_50_psrs.vcs CRC:00db85377a size:3106\n-shaders/vfx/csgo_vertexlitgeneric_pc_50_vs.vcs CRC:008bc35408 size:126928\n+shaders/vfx/csgo_vertexlitgeneric_pc_50_vs.vcs CRC:00b12fdf01 size:126943\n shaders/vfx/csgo_volume_viewer.ini CRC:0000000000 size:0\n shaders/vfx/csgo_volume_viewer_pc_50_features.vcs CRC:00bdb2e588 size:1794\n shaders/vfx/csgo_volume_viewer_pc_50_ps.vcs CRC:00600c6a33 size:2179\n shaders/vfx/csgo_volume_viewer_pc_50_vs.vcs CRC:0029500299 size:2659\n shaders/vfx/csgo_water.ini CRC:0000000000 size:0\n shaders/vfx/csgo_water_fancy.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_water_fancy_pc_50_features.vcs CRC:00c2275326 size:6162\n-shaders/vfx/csgo_water_fancy_pc_50_ps.vcs CRC:001bbe3d34 size:3503468\n-shaders/vfx/csgo_water_fancy_pc_50_psrs.vcs CRC:00e4b067b7 size:2018\n-shaders/vfx/csgo_water_fancy_pc_50_vs.vcs CRC:00ca1229b6 size:19579\n-shaders/vfx/csgo_water_pc_50_features.vcs CRC:000cad1c3a size:5138\n-shaders/vfx/csgo_water_pc_50_ps.vcs CRC:0001291e1b size:2221212\n-shaders/vfx/csgo_water_pc_50_psrs.vcs CRC:0087a55d56 size:1954\n-shaders/vfx/csgo_water_pc_50_vs.vcs CRC:0093c11494 size:20601\n+shaders/vfx/csgo_water_fancy_pc_50_features.vcs CRC:00262edc14 size:6162\n+shaders/vfx/csgo_water_fancy_pc_50_ps.vcs CRC:00d8ff36ee size:3578730\n+shaders/vfx/csgo_water_fancy_pc_50_psrs.vcs CRC:0004f79ddd size:2034\n+shaders/vfx/csgo_water_fancy_pc_50_vs.vcs CRC:003f8c14d3 size:19595\n+shaders/vfx/csgo_water_pc_50_features.vcs CRC:004373abbd size:5138\n+shaders/vfx/csgo_water_pc_50_ps.vcs CRC:0073b9f700 size:2220610\n+shaders/vfx/csgo_water_pc_50_psrs.vcs CRC:00c6817183 size:1954\n+shaders/vfx/csgo_water_pc_50_vs.vcs CRC:000cee3c23 size:20601\n shaders/vfx/csgo_weapon.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_weapon_pc_50_features.vcs CRC:00bd645c36 size:10418\n-shaders/vfx/csgo_weapon_pc_50_ps.vcs CRC:002e0f201d size:19658921\n-shaders/vfx/csgo_weapon_pc_50_psrs.vcs CRC:006d9cbaa5 size:2354\n-shaders/vfx/csgo_weapon_pc_50_vs.vcs CRC:00d4d49014 size:44923\n+shaders/vfx/csgo_weapon_pc_50_features.vcs CRC:00df9602ca size:10466\n+shaders/vfx/csgo_weapon_pc_50_ps.vcs CRC:0004b6fdc7 size:22231269\n+shaders/vfx/csgo_weapon_pc_50_psrs.vcs CRC:00f3d4d37e size:2354\n+shaders/vfx/csgo_weapon_pc_50_vs.vcs CRC:0006aef284 size:46901\n shaders/vfx/csgo_weapon_sticker.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_weapon_sticker_pc_50_features.vcs CRC:00ee8f2ca3 size:4898\n-shaders/vfx/csgo_weapon_sticker_pc_50_ps.vcs CRC:008449e6cd size:68340\n-shaders/vfx/csgo_weapon_sticker_pc_50_psrs.vcs CRC:00080c9adc size:1586\n-shaders/vfx/csgo_weapon_sticker_pc_50_vs.vcs CRC:00242d0cb8 size:12898\n+shaders/vfx/csgo_weapon_sticker_pc_50_features.vcs CRC:002cac1c3b size:4898\n+shaders/vfx/csgo_weapon_sticker_pc_50_ps.vcs CRC:00e5a10529 size:68746\n+shaders/vfx/csgo_weapon_sticker_pc_50_psrs.vcs CRC:00a6a7b43d size:1586\n+shaders/vfx/csgo_weapon_sticker_pc_50_vs.vcs CRC:00a0703155 size:12901\n shaders/vfx/deferred_particle_shadows.ini CRC:0000000000 size:0\n shaders/vfx/deferred_particle_shadows_pc_50_features.vcs CRC:00d44879f1 size:1682\n shaders/vfx/deferred_particle_shadows_pc_50_ps.vcs CRC:009a835a77 size:2992\n@@ -288,15 +288,15 @@ shaders/vfx/generate_decal_normals_pc_50_features.vcs CRC:00069b1c3e size:1554\n shaders/vfx/generate_decal_normals_pc_50_ps.vcs CRC:00839562e3 size:1895\n shaders/vfx/generate_decal_normals_pc_50_vs.vcs CRC:002d1a35e9 size:1419\n shaders/vfx/generic.ini CRC:0000000000 size:0\n-shaders/vfx/generic_pc_50_features.vcs CRC:00a49ee6d7 size:5010\n-shaders/vfx/generic_pc_50_ps.vcs CRC:007f5b5de9 size:1297216\n-shaders/vfx/generic_pc_50_psrs.vcs CRC:005f693504 size:3442\n-shaders/vfx/generic_pc_50_vs.vcs CRC:002e662204 size:31137\n+shaders/vfx/generic_pc_50_features.vcs CRC:0016f89f37 size:5026\n+shaders/vfx/generic_pc_50_ps.vcs CRC:00eb817a41 size:1307310\n+shaders/vfx/generic_pc_50_psrs.vcs CRC:00896ac5fa size:3442\n+shaders/vfx/generic_pc_50_vs.vcs CRC:00b0e71d64 size:31181\n shaders/vfx/grasstile.ini CRC:0000000000 size:0\n-shaders/vfx/grasstile_pc_50_features.vcs CRC:00707fe2e8 size:3490\n-shaders/vfx/grasstile_pc_50_ps.vcs CRC:00a35ed17b size:51526\n-shaders/vfx/grasstile_pc_50_psrs.vcs CRC:00f2d803fd size:2002\n-shaders/vfx/grasstile_pc_50_vs.vcs CRC:00b31ffdcb size:6278\n+shaders/vfx/grasstile_pc_50_features.vcs CRC:00b51f5d59 size:3490\n+shaders/vfx/grasstile_pc_50_ps.vcs CRC:00277696d8 size:52151\n+shaders/vfx/grasstile_pc_50_psrs.vcs CRC:0076620160 size:2002\n+shaders/vfx/grasstile_pc_50_vs.vcs CRC:00ebdb67c8 size:6278\n shaders/vfx/grasstile_preview.ini CRC:0000000000 size:0\n shaders/vfx/grasstile_preview_pc_50_features.vcs CRC:00f9a2db40 size:2162\n shaders/vfx/grasstile_preview_pc_50_ps.vcs CRC:00c1526de5 size:2785\n@@ -306,44 +306,44 @@ shaders/vfx/healthboost_pc_50_features.vcs CRC:00f1c7615b size:1794\n shaders/vfx/healthboost_pc_50_ps.vcs CRC:00cc385ef6 size:2308\n shaders/vfx/healthboost_pc_50_vs.vcs CRC:00ea0f5927 size:1353\n shaders/vfx/histogram_cs.ini CRC:0000000000 size:0\n-shaders/vfx/histogram_cs_pc_50_cs.vcs CRC:0087c15044 size:8723\n-shaders/vfx/histogram_cs_pc_50_features.vcs CRC:004748ea81 size:1730\n+shaders/vfx/histogram_cs_pc_50_cs.vcs CRC:006ee143a1 size:8723\n+shaders/vfx/histogram_cs_pc_50_features.vcs CRC:0054363111 size:1730\n shaders/vfx/inferno.ini CRC:0000000000 size:0\n-shaders/vfx/inferno_pc_50_features.vcs CRC:00e8a32a48 size:1858\n-shaders/vfx/inferno_pc_50_ps.vcs CRC:0020e63fb1 size:2955\n-shaders/vfx/inferno_pc_50_vs.vcs CRC:007e4883ac size:2274\n+shaders/vfx/inferno_pc_50_features.vcs CRC:00a2f47759 size:1858\n+shaders/vfx/inferno_pc_50_ps.vcs CRC:007219e50e size:2955\n+shaders/vfx/inferno_pc_50_vs.vcs CRC:003dbfc764 size:2290\n shaders/vfx/legacy_sniper_scope.ini CRC:0000000000 size:0\n shaders/vfx/legacy_sniper_scope_pc_50_features.vcs CRC:000ec34ac7 size:1714\n shaders/vfx/legacy_sniper_scope_pc_50_ps.vcs CRC:00122e834a size:2967\n shaders/vfx/legacy_sniper_scope_pc_50_vs.vcs CRC:00ea0f5927 size:1353\n shaders/vfx/lpv_debug_grid.ini CRC:0000000000 size:0\n-shaders/vfx/lpv_debug_grid_pc_50_features.vcs CRC:001f4ea574 size:2786\n-shaders/vfx/lpv_debug_grid_pc_50_gs.vcs CRC:0073fb9e1d size:3622\n-shaders/vfx/lpv_debug_grid_pc_50_ps.vcs CRC:00bbe14152 size:45414\n-shaders/vfx/lpv_debug_grid_pc_50_vs.vcs CRC:00179f8e7d size:2513\n+shaders/vfx/lpv_debug_grid_pc_50_features.vcs CRC:003b1f5f43 size:2786\n+shaders/vfx/lpv_debug_grid_pc_50_gs.vcs CRC:00a9eb3df9 size:3622\n+shaders/vfx/lpv_debug_grid_pc_50_ps.vcs CRC:00f3bd2331 size:45306\n+shaders/vfx/lpv_debug_grid_pc_50_vs.vcs CRC:00ca4b87d5 size:2513\n shaders/vfx/luminaire.ini CRC:0000000000 size:0\n-shaders/vfx/luminaire_pc_50_features.vcs CRC:000c8a8a01 size:2370\n-shaders/vfx/luminaire_pc_50_ps.vcs CRC:005477504a size:6420\n-shaders/vfx/luminaire_pc_50_psrs.vcs CRC:00c073b324 size:2018\n-shaders/vfx/luminaire_pc_50_vs.vcs CRC:005761c2b8 size:5422\n+shaders/vfx/luminaire_pc_50_features.vcs CRC:00659c1803 size:2370\n+shaders/vfx/luminaire_pc_50_ps.vcs CRC:009b665347 size:6420\n+shaders/vfx/luminaire_pc_50_psrs.vcs CRC:00200a1e43 size:2018\n+shaders/vfx/luminaire_pc_50_vs.vcs CRC:00b020b50b size:5422\n shaders/vfx/mboit_mixed_combine.ini CRC:0000000000 size:0\n-shaders/vfx/mboit_mixed_combine_pc_50_features.vcs CRC:00687315fc size:1954\n-shaders/vfx/mboit_mixed_combine_pc_50_ps.vcs CRC:008ce3b2ce size:4764\n+shaders/vfx/mboit_mixed_combine_pc_50_features.vcs CRC:006e6a68e8 size:1954\n+shaders/vfx/mboit_mixed_combine_pc_50_ps.vcs CRC:00456cd2a6 size:4764\n shaders/vfx/mboit_mixed_combine_pc_50_vs.vcs CRC:00627195be size:2506\n shaders/vfx/mboit_mixed_upsample.ini CRC:0000000000 size:0\n-shaders/vfx/mboit_mixed_upsample_pc_50_cs.vcs CRC:00b9d86274 size:7650\n-shaders/vfx/mboit_mixed_upsample_pc_50_features.vcs CRC:00d01e8f59 size:2018\n+shaders/vfx/mboit_mixed_upsample_pc_50_cs.vcs CRC:00c1d69fc1 size:7650\n+shaders/vfx/mboit_mixed_upsample_pc_50_features.vcs CRC:00cd5dd0e3 size:2018\n shaders/vfx/mboitfinal.ini CRC:0000000000 size:0\n-shaders/vfx/mboitfinal_pc_50_features.vcs CRC:003b53f60e size:1954\n-shaders/vfx/mboitfinal_pc_50_ps.vcs CRC:00da5098d9 size:5142\n+shaders/vfx/mboitfinal_pc_50_features.vcs CRC:00f06fac64 size:1970\n+shaders/vfx/mboitfinal_pc_50_ps.vcs CRC:00e30898c9 size:5158\n shaders/vfx/mboitfinal_pc_50_vs.vcs CRC:00559a2a7c size:2996\n shaders/vfx/outlines.ini CRC:0000000000 size:0\n shaders/vfx/outlines_pc_50_features.vcs CRC:00e6864a88 size:1778\n shaders/vfx/outlines_pc_50_ps.vcs CRC:00af708a6e size:2745\n shaders/vfx/outlines_pc_50_vs.vcs CRC:0058323fb8 size:1360\n shaders/vfx/overlay_smoke.ini CRC:0000000000 size:0\n-shaders/vfx/overlay_smoke_pc_50_features.vcs CRC:00e84b3e90 size:1746\n-shaders/vfx/overlay_smoke_pc_50_ps.vcs CRC:0078c01ce7 size:2646\n+shaders/vfx/overlay_smoke_pc_50_features.vcs CRC:00c8282e48 size:1762\n+shaders/vfx/overlay_smoke_pc_50_ps.vcs CRC:00733181dd size:2646\n shaders/vfx/overlay_smoke_pc_50_vs.vcs CRC:00dc9157c8 size:1438\n shaders/vfx/panorama_alpha.ini CRC:0000000000 size:0\n shaders/vfx/panorama_alpha_pc_50_features.vcs CRC:00900fc740 size:1682\n@@ -362,69 +362,69 @@ shaders/vfx/player_visibility_stencil_proxy_pc_50_features.vcs CRC:00fb953c16 si\n shaders/vfx/player_visibility_stencil_proxy_pc_50_ps.vcs CRC:00de86fb1f size:1576\n shaders/vfx/player_visibility_stencil_proxy_pc_50_vs.vcs CRC:00b1aacfdd size:2452\n shaders/vfx/post_process.ini CRC:0000000000 size:0\n-shaders/vfx/post_process_pc_50_features.vcs CRC:000d231024 size:2578\n-shaders/vfx/post_process_pc_50_ps.vcs CRC:00b7b5cd9b size:70997\n-shaders/vfx/post_process_pc_50_vs.vcs CRC:00055984f8 size:1419\n+shaders/vfx/post_process_pc_50_features.vcs CRC:00bee159b8 size:2578\n+shaders/vfx/post_process_pc_50_ps.vcs CRC:00c104c042 size:71013\n+shaders/vfx/post_process_pc_50_vs.vcs CRC:000f93f89e size:1419\n shaders/vfx/reconstruct_normals.ini CRC:0000000000 size:0\n shaders/vfx/reconstruct_normals_pc_50_features.vcs CRC:0037fa53d2 size:1506\n shaders/vfx/reconstruct_normals_pc_50_ps.vcs CRC:00a5e6318e size:2862\n shaders/vfx/reconstruct_normals_pc_50_vs.vcs CRC:00364cbcfb size:1413\n shaders/vfx/screenparticlescombine.ini CRC:0000000000 size:0\n-shaders/vfx/screenparticlescombine_pc_50_features.vcs CRC:002c516485 size:1666\n-shaders/vfx/screenparticlescombine_pc_50_ps.vcs CRC:00348524a1 size:1939\n+shaders/vfx/screenparticlescombine_pc_50_features.vcs CRC:009adb1abc size:1666\n+shaders/vfx/screenparticlescombine_pc_50_ps.vcs CRC:00a9842c30 size:1939\n shaders/vfx/screenparticlescombine_pc_50_vs.vcs CRC:00baed8259 size:1431\n shaders/vfx/simple.ini CRC:0000000000 size:0\n-shaders/vfx/simple_pc_50_features.vcs CRC:00da37a5cf size:4498\n-shaders/vfx/simple_pc_50_ps.vcs CRC:001c8778f1 size:50980\n-shaders/vfx/simple_pc_50_psrs.vcs CRC:0002da3ae8 size:1794\n-shaders/vfx/simple_pc_50_vs.vcs CRC:00d7453a50 size:15263\n+shaders/vfx/simple_pc_50_features.vcs CRC:00ab692aa6 size:4498\n+shaders/vfx/simple_pc_50_ps.vcs CRC:005ffc5588 size:51149\n+shaders/vfx/simple_pc_50_psrs.vcs CRC:00f71bc38a size:1794\n+shaders/vfx/simple_pc_50_vs.vcs CRC:0088c44746 size:15267\n shaders/vfx/sky.ini CRC:0000000000 size:0\n shaders/vfx/sky_occluder.ini CRC:0000000000 size:0\n shaders/vfx/sky_occluder_pc_50_features.vcs CRC:0045563b9b size:1858\n shaders/vfx/sky_occluder_pc_50_ps.vcs CRC:0007c6fc0e size:2287\n shaders/vfx/sky_occluder_pc_50_vs.vcs CRC:005291a3af size:2734\n-shaders/vfx/sky_pc_50_features.vcs CRC:00ff614270 size:2498\n-shaders/vfx/sky_pc_50_ps.vcs CRC:00b811f548 size:6044\n-shaders/vfx/sky_pc_50_vs.vcs CRC:00d1e97a99 size:2791\n+shaders/vfx/sky_pc_50_features.vcs CRC:00b0889679 size:2498\n+shaders/vfx/sky_pc_50_ps.vcs CRC:00478cb7b8 size:6044\n+shaders/vfx/sky_pc_50_vs.vcs CRC:0026963613 size:2791\n shaders/vfx/skybox_blur.ini CRC:0000000000 size:0\n shaders/vfx/skybox_blur_pc_50_features.vcs CRC:00a3bfa04a size:1634\n shaders/vfx/skybox_blur_pc_50_ps.vcs CRC:006a2ac5d5 size:2333\n shaders/vfx/skybox_blur_pc_50_vs.vcs CRC:009a7ddc87 size:1359\n shaders/vfx/smoke_volume.ini CRC:0000000000 size:0\n shaders/vfx/smoke_volume_cs.ini CRC:0000000000 size:0\n-shaders/vfx/smoke_volume_cs_pc_50_cs.vcs CRC:00c480fd0d size:129865\n-shaders/vfx/smoke_volume_cs_pc_50_features.vcs CRC:003f5eb89f size:2754\n+shaders/vfx/smoke_volume_cs_pc_50_cs.vcs CRC:00b59cda56 size:129865\n+shaders/vfx/smoke_volume_cs_pc_50_features.vcs CRC:005881135e size:2754\n shaders/vfx/smoke_volume_depth.ini CRC:0000000000 size:0\n-shaders/vfx/smoke_volume_depth_pc_50_features.vcs CRC:0060802cd6 size:1922\n-shaders/vfx/smoke_volume_depth_pc_50_ps.vcs CRC:00576e49bb size:6256\n-shaders/vfx/smoke_volume_depth_pc_50_vs.vcs CRC:006dc8aea2 size:1477\n+shaders/vfx/smoke_volume_depth_pc_50_features.vcs CRC:00cbfe814c size:1922\n+shaders/vfx/smoke_volume_depth_pc_50_ps.vcs CRC:006ebba90d size:6256\n+shaders/vfx/smoke_volume_depth_pc_50_vs.vcs CRC:00c8d2e31d size:1477\n shaders/vfx/smoke_volume_lpv.ini CRC:0000000000 size:0\n-shaders/vfx/smoke_volume_lpv_pc_50_cs.vcs CRC:00ad83226c size:8236\n-shaders/vfx/smoke_volume_lpv_pc_50_features.vcs CRC:006c33fd9e size:1810\n+shaders/vfx/smoke_volume_lpv_pc_50_cs.vcs CRC:00647a7535 size:8236\n+shaders/vfx/smoke_volume_lpv_pc_50_features.vcs CRC:00c25e9dd6 size:1810\n shaders/vfx/smoke_volume_mask.ini CRC:0000000000 size:0\n-shaders/vfx/smoke_volume_mask_pc_50_features.vcs CRC:00a0da20ff size:1874\n-shaders/vfx/smoke_volume_mask_pc_50_ps.vcs CRC:0092024552 size:10866\n+shaders/vfx/smoke_volume_mask_pc_50_features.vcs CRC:0095b56c66 size:1874\n+shaders/vfx/smoke_volume_mask_pc_50_ps.vcs CRC:00fff9d1ad size:10866\n shaders/vfx/smoke_volume_mask_pc_50_vs.vcs CRC:007d56cdff size:2724\n-shaders/vfx/smoke_volume_pc_50_features.vcs CRC:0030d99bd1 size:2786\n-shaders/vfx/smoke_volume_pc_50_ps.vcs CRC:003522e4b4 size:151934\n-shaders/vfx/smoke_volume_pc_50_vs.vcs CRC:00158ed5d4 size:2244\n+shaders/vfx/smoke_volume_pc_50_features.vcs CRC:00933b6135 size:2786\n+shaders/vfx/smoke_volume_pc_50_ps.vcs CRC:0062b11dc6 size:151934\n+shaders/vfx/smoke_volume_pc_50_vs.vcs CRC:002bfdd311 size:2260\n shaders/vfx/solidcolor.ini CRC:0000000000 size:0\n shaders/vfx/solidcolor_pc_50_features.vcs CRC:001b30fdb8 size:2290\n shaders/vfx/solidcolor_pc_50_ps.vcs CRC:006868f938 size:3120\n shaders/vfx/solidcolor_pc_50_vs.vcs CRC:00018bd3f6 size:8001\n shaders/vfx/spritecard.ini CRC:0000000000 size:0\n-shaders/vfx/spritecard_pc_50_features.vcs CRC:004ddbc204 size:3458\n-shaders/vfx/spritecard_pc_50_ps.vcs CRC:0000fb5eba size:2274965\n-shaders/vfx/spritecard_pc_50_vs.vcs CRC:001a104e3a size:1130172\n+shaders/vfx/spritecard_pc_50_features.vcs CRC:00b91f52ab size:3458\n+shaders/vfx/spritecard_pc_50_ps.vcs CRC:0008438141 size:2269250\n+shaders/vfx/spritecard_pc_50_vs.vcs CRC:00cbf55fe0 size:1131766\n shaders/vfx/tools_solid.ini CRC:0000000000 size:0\n-shaders/vfx/tools_solid_pc_50_features.vcs CRC:000aea73e0 size:1826\n-shaders/vfx/tools_solid_pc_50_ps.vcs CRC:00db19f4eb size:2958\n-shaders/vfx/tools_solid_pc_50_vs.vcs CRC:0041e0b95e size:3868\n+shaders/vfx/tools_solid_pc_50_features.vcs CRC:00e381840a size:1826\n+shaders/vfx/tools_solid_pc_50_ps.vcs CRC:007babeb8e size:2958\n+shaders/vfx/tools_solid_pc_50_vs.vcs CRC:00179080a0 size:3868\n shaders/vfx/tools_wireframe.ini CRC:0000000000 size:0\n-shaders/vfx/tools_wireframe_pc_50_features.vcs CRC:00ca3bdfb2 size:2194\n-shaders/vfx/tools_wireframe_pc_50_gs.vcs CRC:002dc0269f size:3253\n-shaders/vfx/tools_wireframe_pc_50_ps.vcs CRC:0032e21a12 size:4244\n-shaders/vfx/tools_wireframe_pc_50_vs.vcs CRC:0003ecbe88 size:13189\n+shaders/vfx/tools_wireframe_pc_50_features.vcs CRC:00ceed6095 size:2194\n+shaders/vfx/tools_wireframe_pc_50_gs.vcs CRC:0018cb8385 size:3253\n+shaders/vfx/tools_wireframe_pc_50_ps.vcs CRC:008887a885 size:4244\n+shaders/vfx/tools_wireframe_pc_50_vs.vcs CRC:00d3c4362b size:13189\n shaders/vfx/upsample.ini CRC:0000000000 size:0\n shaders/vfx/upsample_pc_50_features.vcs CRC:007910fb4a size:1554\n shaders/vfx/upsample_pc_50_ps.vcs CRC:000dafda7a size:1834"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir.txt",
          "status": "modified",
          "additions": 233,
          "deletions": 233,
          "changes": 466,
          "patch": "@@ -1,10 +1,10 @@\n shaders/vfx/bilateral_upsample.ini CRC:0000000000 size:0\n-shaders/vfx/bilateral_upsample_vulkan_50_features.vcs CRC:0034e7463f size:1746\n-shaders/vfx/bilateral_upsample_vulkan_50_ps.vcs CRC:007268d31b size:3399\n+shaders/vfx/bilateral_upsample_vulkan_50_features.vcs CRC:006c4f6911 size:1762\n+shaders/vfx/bilateral_upsample_vulkan_50_ps.vcs CRC:004520b06b size:3399\n shaders/vfx/bilateral_upsample_vulkan_50_vs.vcs CRC:008ce38aea size:2180\n shaders/vfx/bloom_cs.ini CRC:0000000000 size:0\n-shaders/vfx/bloom_cs_vulkan_50_cs.vcs CRC:002fc6f99e size:9179\n-shaders/vfx/bloom_cs_vulkan_50_features.vcs CRC:008fd509b8 size:2018\n+shaders/vfx/bloom_cs_vulkan_50_cs.vcs CRC:00a2b0bcb2 size:9165\n+shaders/vfx/bloom_cs_vulkan_50_features.vcs CRC:0074832d4b size:2018\n shaders/vfx/blur.ini CRC:0000000000 size:0\n shaders/vfx/blur_vulkan_50_features.vcs CRC:001ea646d8 size:2098\n shaders/vfx/blur_vulkan_50_ps.vcs CRC:00ee532d85 size:14512\n@@ -18,10 +18,10 @@ shaders/vfx/bomb_blast_vulkan_50_features.vcs CRC:00626f06ee size:1730\n shaders/vfx/bomb_blast_vulkan_50_ps.vcs CRC:00b3a844da size:3535\n shaders/vfx/bomb_blast_vulkan_50_vs.vcs CRC:006dfb6be5 size:1999\n shaders/vfx/cables.ini CRC:0000000000 size:0\n-shaders/vfx/cables_vulkan_50_features.vcs CRC:004d766b28 size:4770\n-shaders/vfx/cables_vulkan_50_ps.vcs CRC:003d82aa0f size:468151\n-shaders/vfx/cables_vulkan_50_psrs.vcs CRC:00ebbb81fb size:3266\n-shaders/vfx/cables_vulkan_50_vs.vcs CRC:000be2f528 size:24522\n+shaders/vfx/cables_vulkan_50_features.vcs CRC:00ab9038a5 size:4770\n+shaders/vfx/cables_vulkan_50_ps.vcs CRC:00be5fca2d size:469626\n+shaders/vfx/cables_vulkan_50_psrs.vcs CRC:00b935a061 size:3282\n+shaders/vfx/cables_vulkan_50_vs.vcs CRC:001c096931 size:24522\n shaders/vfx/cs_color_picker.ini CRC:0000000000 size:0\n shaders/vfx/cs_color_picker_vulkan_50_features.vcs CRC:00b8399ca8 size:1394\n shaders/vfx/cs_color_picker_vulkan_50_ps.vcs CRC:00d06198b4 size:2156\n@@ -31,30 +31,30 @@ shaders/vfx/csgo_alpha_immunity_vulkan_50_features.vcs CRC:0028b20085 size:1698\n shaders/vfx/csgo_alpha_immunity_vulkan_50_ps.vcs CRC:00bba81630 size:2112\n shaders/vfx/csgo_alpha_immunity_vulkan_50_vs.vcs CRC:009570e692 size:2025\n shaders/vfx/csgo_beachfoam.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_beachfoam_vulkan_50_features.vcs CRC:0042459477 size:3362\n-shaders/vfx/csgo_beachfoam_vulkan_50_ps.vcs CRC:0059bcc5ae size:5679\n-shaders/vfx/csgo_beachfoam_vulkan_50_psrs.vcs CRC:00a641f69c size:1826\n-shaders/vfx/csgo_beachfoam_vulkan_50_vs.vcs CRC:007124f218 size:9567\n+shaders/vfx/csgo_beachfoam_vulkan_50_features.vcs CRC:00eddccc46 size:3362\n+shaders/vfx/csgo_beachfoam_vulkan_50_ps.vcs CRC:00dad110f1 size:5696\n+shaders/vfx/csgo_beachfoam_vulkan_50_psrs.vcs CRC:0024b3b21e size:1826\n+shaders/vfx/csgo_beachfoam_vulkan_50_vs.vcs CRC:00e9cdc158 size:9567\n shaders/vfx/csgo_black_unlit.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_black_unlit_vulkan_50_features.vcs CRC:00d81e1a69 size:2722\n-shaders/vfx/csgo_black_unlit_vulkan_50_ps.vcs CRC:0066be1a67 size:7780\n-shaders/vfx/csgo_black_unlit_vulkan_50_psrs.vcs CRC:000a9a08e4 size:1794\n-shaders/vfx/csgo_black_unlit_vulkan_50_vs.vcs CRC:0036bfea6d size:4252\n+shaders/vfx/csgo_black_unlit_vulkan_50_features.vcs CRC:0060b58227 size:2738\n+shaders/vfx/csgo_black_unlit_vulkan_50_ps.vcs CRC:0005bcdbdc size:7778\n+shaders/vfx/csgo_black_unlit_vulkan_50_psrs.vcs CRC:005a2ae455 size:1794\n+shaders/vfx/csgo_black_unlit_vulkan_50_vs.vcs CRC:004dc685f2 size:4268\n shaders/vfx/csgo_character.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_character_vulkan_50_features.vcs CRC:0077791be4 size:8834\n-shaders/vfx/csgo_character_vulkan_50_ps.vcs CRC:009d642f4c size:303670574\n-shaders/vfx/csgo_character_vulkan_50_psrs.vcs CRC:00a3d5d6ad size:3442\n-shaders/vfx/csgo_character_vulkan_50_vs.vcs CRC:00cb74521e size:1093042\n+shaders/vfx/csgo_character_vulkan_50_features.vcs CRC:00ae484612 size:8850\n+shaders/vfx/csgo_character_vulkan_50_ps.vcs CRC:002718ee14 size:330897636\n+shaders/vfx/csgo_character_vulkan_50_psrs.vcs CRC:008ca7d3f2 size:3442\n+shaders/vfx/csgo_character_vulkan_50_vs.vcs CRC:006906d9d6 size:1119517\n shaders/vfx/csgo_complex.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_complex_vulkan_50_features.vcs CRC:00630bac82 size:7266\n-shaders/vfx/csgo_complex_vulkan_50_ps.vcs CRC:00aeb3e3ec size:38046739\n+shaders/vfx/csgo_complex_vulkan_50_features.vcs CRC:00890420a7 size:7266\n+shaders/vfx/csgo_complex_vulkan_50_ps.vcs CRC:00553e8768 size:38256682\n shaders/vfx/csgo_complex_vulkan_50_psrs.vcs CRC:00492a4b95 size:3218\n-shaders/vfx/csgo_complex_vulkan_50_vs.vcs CRC:00b1df1fd8 size:226190\n-shaders/vfx/csgo_complex_vulkan_60_features.vcs CRC:009e37806b size:7314\n-shaders/vfx/csgo_complex_vulkan_60_ps.vcs CRC:00aeb3e3ec size:38046739\n+shaders/vfx/csgo_complex_vulkan_50_vs.vcs CRC:00de035e9e size:226230\n+shaders/vfx/csgo_complex_vulkan_60_features.vcs CRC:004222c157 size:7346\n+shaders/vfx/csgo_complex_vulkan_60_ps.vcs CRC:00553e8768 size:38256682\n shaders/vfx/csgo_complex_vulkan_60_psrs.vcs CRC:00492a4b95 size:3218\n-shaders/vfx/csgo_complex_vulkan_60_rtx.vcs CRC:00c671f06f size:33684546\n-shaders/vfx/csgo_complex_vulkan_60_vs.vcs CRC:00b1df1fd8 size:226190\n+shaders/vfx/csgo_complex_vulkan_60_rtx.vcs CRC:00aa19b314 size:33683976\n+shaders/vfx/csgo_complex_vulkan_60_vs.vcs CRC:00de035e9e size:226230\n shaders/vfx/csgo_composite_generic.ini CRC:0000000000 size:0\n shaders/vfx/csgo_composite_generic_vulkan_50_features.vcs CRC:0056569b3f size:1778\n shaders/vfx/csgo_composite_generic_vulkan_50_ps.vcs CRC:008b5c42bc size:2225\n@@ -77,125 +77,125 @@ shaders/vfx/csgo_crosshair_vulkan_50_ps.vcs CRC:00ca2b509e size:5056\n shaders/vfx/csgo_crosshair_vulkan_50_vs.vcs CRC:0088663ff7 size:1836\n shaders/vfx/csgo_customglove.ini CRC:0000000000 size:0\n shaders/vfx/csgo_customglove_preview.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_customglove_preview_vulkan_50_features.vcs CRC:00af9139ca size:9810\n-shaders/vfx/csgo_customglove_preview_vulkan_50_ps.vcs CRC:00e94cf300 size:146188\n-shaders/vfx/csgo_customglove_preview_vulkan_50_psrs.vcs CRC:009b036760 size:1874\n-shaders/vfx/csgo_customglove_preview_vulkan_50_vs.vcs CRC:0006f49962 size:11346\n-shaders/vfx/csgo_customglove_vulkan_50_features.vcs CRC:00c3279f1f size:11618\n-shaders/vfx/csgo_customglove_vulkan_50_ps.vcs CRC:0097d23de7 size:73153\n+shaders/vfx/csgo_customglove_preview_vulkan_50_features.vcs CRC:0097345d89 size:9810\n+shaders/vfx/csgo_customglove_preview_vulkan_50_ps.vcs CRC:006f04de3f size:146028\n+shaders/vfx/csgo_customglove_preview_vulkan_50_psrs.vcs CRC:0076bdde45 size:1874\n+shaders/vfx/csgo_customglove_preview_vulkan_50_vs.vcs CRC:009adc1288 size:11346\n+shaders/vfx/csgo_customglove_vulkan_50_features.vcs CRC:00d8c41934 size:11618\n+shaders/vfx/csgo_customglove_vulkan_50_ps.vcs CRC:0017d1223e size:73172\n shaders/vfx/csgo_customglove_vulkan_50_vs.vcs CRC:007eb65bcc size:4297\n shaders/vfx/csgo_customweapon.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_customweapon_vulkan_50_features.vcs CRC:00d51eb813 size:6722\n-shaders/vfx/csgo_customweapon_vulkan_50_ps.vcs CRC:00c2affc82 size:5830324\n+shaders/vfx/csgo_customweapon_vulkan_50_features.vcs CRC:00a1837ffb size:6722\n+shaders/vfx/csgo_customweapon_vulkan_50_ps.vcs CRC:001f3bf62e size:5830414\n shaders/vfx/csgo_customweapon_vulkan_50_vs.vcs CRC:00f53b5243 size:4126\n shaders/vfx/csgo_decal_renderer.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_decal_renderer_vulkan_50_features.vcs CRC:00fc08a890 size:2050\n-shaders/vfx/csgo_decal_renderer_vulkan_50_ps.vcs CRC:001f7f2202 size:2655\n-shaders/vfx/csgo_decal_renderer_vulkan_50_vs.vcs CRC:00bfe26b8b size:4346\n-shaders/vfx/csgo_decal_renderer_vulkan_60_features.vcs CRC:00fc08a890 size:2050\n-shaders/vfx/csgo_decal_renderer_vulkan_60_ps.vcs CRC:001f7f2202 size:2655\n-shaders/vfx/csgo_decal_renderer_vulkan_60_vs.vcs CRC:00bfe26b8b size:4346\n+shaders/vfx/csgo_decal_renderer_vulkan_50_features.vcs CRC:002135ce4f size:2050\n+shaders/vfx/csgo_decal_renderer_vulkan_50_ps.vcs CRC:00ad311429 size:2659\n+shaders/vfx/csgo_decal_renderer_vulkan_50_vs.vcs CRC:003923c6e6 size:4346\n+shaders/vfx/csgo_decal_renderer_vulkan_60_features.vcs CRC:002135ce4f size:2050\n+shaders/vfx/csgo_decal_renderer_vulkan_60_ps.vcs CRC:00ad311429 size:2659\n+shaders/vfx/csgo_decal_renderer_vulkan_60_vs.vcs CRC:003923c6e6 size:4346\n shaders/vfx/csgo_decalmodulate.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_decalmodulate_vulkan_50_features.vcs CRC:00faaad0e8 size:3490\n-shaders/vfx/csgo_decalmodulate_vulkan_50_ps.vcs CRC:00aa7c7b98 size:5100\n-shaders/vfx/csgo_decalmodulate_vulkan_50_psrs.vcs CRC:00c3bbd8e9 size:1890\n-shaders/vfx/csgo_decalmodulate_vulkan_50_vs.vcs CRC:001717093e size:10809\n+shaders/vfx/csgo_decalmodulate_vulkan_50_features.vcs CRC:00c666124f size:3490\n+shaders/vfx/csgo_decalmodulate_vulkan_50_ps.vcs CRC:004b9e3fad size:5115\n+shaders/vfx/csgo_decalmodulate_vulkan_50_psrs.vcs CRC:007c80e187 size:1906\n+shaders/vfx/csgo_decalmodulate_vulkan_50_vs.vcs CRC:003451da03 size:10809\n shaders/vfx/csgo_depth_only.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_depth_only_vulkan_50_features.vcs CRC:0002f5c58c size:3330\n-shaders/vfx/csgo_depth_only_vulkan_50_ps.vcs CRC:00f96d8bcb size:5996\n-shaders/vfx/csgo_depth_only_vulkan_50_vs.vcs CRC:007d069b1d size:8045\n+shaders/vfx/csgo_depth_only_vulkan_50_features.vcs CRC:00d2e8d035 size:3330\n+shaders/vfx/csgo_depth_only_vulkan_50_ps.vcs CRC:00432726d2 size:5993\n+shaders/vfx/csgo_depth_only_vulkan_50_vs.vcs CRC:00521597e3 size:8042\n shaders/vfx/csgo_dronecam.ini CRC:0000000000 size:0\n shaders/vfx/csgo_dronecam_vulkan_50_features.vcs CRC:00c669bb55 size:1778\n shaders/vfx/csgo_dronecam_vulkan_50_ps.vcs CRC:00dc35e479 size:2912\n shaders/vfx/csgo_dronecam_vulkan_50_vs.vcs CRC:0058e8989f size:1446\n shaders/vfx/csgo_effects.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_effects_vulkan_50_features.vcs CRC:006fdb163e size:4290\n-shaders/vfx/csgo_effects_vulkan_50_ps.vcs CRC:008c800f8d size:144310\n-shaders/vfx/csgo_effects_vulkan_50_psrs.vcs CRC:00e60f45eb size:2242\n-shaders/vfx/csgo_effects_vulkan_50_vs.vcs CRC:009cff39ef size:10181\n+shaders/vfx/csgo_effects_vulkan_50_features.vcs CRC:0011102306 size:4290\n+shaders/vfx/csgo_effects_vulkan_50_ps.vcs CRC:00ab01f065 size:144444\n+shaders/vfx/csgo_effects_vulkan_50_psrs.vcs CRC:00153d4526 size:2242\n+shaders/vfx/csgo_effects_vulkan_50_vs.vcs CRC:00d17fbaf7 size:10181\n shaders/vfx/csgo_environment.ini CRC:0000000000 size:0\n shaders/vfx/csgo_environment_blend.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_environment_blend_vulkan_50_features.vcs CRC:0043310d45 size:10706\n-shaders/vfx/csgo_environment_blend_vulkan_50_ps.vcs CRC:00b6d813c9 size:27563582\n-shaders/vfx/csgo_environment_blend_vulkan_50_psrs.vcs CRC:00ad09f764 size:2530\n-shaders/vfx/csgo_environment_blend_vulkan_50_vs.vcs CRC:007bfca819 size:188644\n-shaders/vfx/csgo_environment_blend_vulkan_60_features.vcs CRC:00b201becc size:10770\n-shaders/vfx/csgo_environment_blend_vulkan_60_ps.vcs CRC:00b6d813c9 size:27563582\n-shaders/vfx/csgo_environment_blend_vulkan_60_psrs.vcs CRC:00ad09f764 size:2530\n-shaders/vfx/csgo_environment_blend_vulkan_60_rtx.vcs CRC:00dd9a5a9a size:5354941\n-shaders/vfx/csgo_environment_blend_vulkan_60_vs.vcs CRC:007bfca819 size:188644\n-shaders/vfx/csgo_environment_vulkan_50_features.vcs CRC:00341957b3 size:6338\n-shaders/vfx/csgo_environment_vulkan_50_ps.vcs CRC:00374df898 size:836237\n-shaders/vfx/csgo_environment_vulkan_50_psrs.vcs CRC:00858646dd size:2466\n-shaders/vfx/csgo_environment_vulkan_50_vs.vcs CRC:00bf6a438d size:44071\n-shaders/vfx/csgo_environment_vulkan_60_features.vcs CRC:0079ec8e43 size:6402\n-shaders/vfx/csgo_environment_vulkan_60_ps.vcs CRC:00374df898 size:836237\n-shaders/vfx/csgo_environment_vulkan_60_psrs.vcs CRC:00858646dd size:2466\n-shaders/vfx/csgo_environment_vulkan_60_rtx.vcs CRC:00c8cdb234 size:283892\n-shaders/vfx/csgo_environment_vulkan_60_vs.vcs CRC:00bf6a438d size:44071\n+shaders/vfx/csgo_environment_blend_vulkan_50_features.vcs CRC:003f5aa638 size:11170\n+shaders/vfx/csgo_environment_blend_vulkan_50_ps.vcs CRC:005bdad6e6 size:115972608\n+shaders/vfx/csgo_environment_blend_vulkan_50_psrs.vcs CRC:00abb56a27 size:2786\n+shaders/vfx/csgo_environment_blend_vulkan_50_vs.vcs CRC:003065f4ae size:328208\n+shaders/vfx/csgo_environment_blend_vulkan_60_features.vcs CRC:003cfdb60a size:11250\n+shaders/vfx/csgo_environment_blend_vulkan_60_ps.vcs CRC:005bdad6e6 size:115972608\n+shaders/vfx/csgo_environment_blend_vulkan_60_psrs.vcs CRC:00abb56a27 size:2786\n+shaders/vfx/csgo_environment_blend_vulkan_60_rtx.vcs CRC:00a39a5822 size:7607916\n+shaders/vfx/csgo_environment_blend_vulkan_60_vs.vcs CRC:003065f4ae size:328208\n+shaders/vfx/csgo_environment_vulkan_50_features.vcs CRC:0060e5d2fc size:6722\n+shaders/vfx/csgo_environment_vulkan_50_ps.vcs CRC:0039e0e408 size:3254315\n+shaders/vfx/csgo_environment_vulkan_50_psrs.vcs CRC:0018a9c272 size:2610\n+shaders/vfx/csgo_environment_vulkan_50_vs.vcs CRC:009377eede size:74760\n+shaders/vfx/csgo_environment_vulkan_60_features.vcs CRC:006fd1c78f size:6834\n+shaders/vfx/csgo_environment_vulkan_60_ps.vcs CRC:0039e0e408 size:3254315\n+shaders/vfx/csgo_environment_vulkan_60_psrs.vcs CRC:0018a9c272 size:2610\n+shaders/vfx/csgo_environment_vulkan_60_rtx.vcs CRC:00bcc7849d size:387892\n+shaders/vfx/csgo_environment_vulkan_60_vs.vcs CRC:009377eede size:74760\n shaders/vfx/csgo_eyeball.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_eyeball_vulkan_50_features.vcs CRC:0064906348 size:4018\n-shaders/vfx/csgo_eyeball_vulkan_50_ps.vcs CRC:00d0f7c0dd size:82717\n-shaders/vfx/csgo_eyeball_vulkan_50_psrs.vcs CRC:00b0972c53 size:1650\n-shaders/vfx/csgo_eyeball_vulkan_50_vs.vcs CRC:0051aae988 size:17919\n+shaders/vfx/csgo_eyeball_vulkan_50_features.vcs CRC:005ec2c0ef size:4018\n+shaders/vfx/csgo_eyeball_vulkan_50_ps.vcs CRC:006432aaa9 size:82567\n+shaders/vfx/csgo_eyeball_vulkan_50_psrs.vcs CRC:00072dbbdc size:1650\n+shaders/vfx/csgo_eyeball_vulkan_50_vs.vcs CRC:00416b81a3 size:17919\n shaders/vfx/csgo_flashbang_overlay.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_flashbang_overlay_vulkan_50_features.vcs CRC:003f6af5d8 size:3570\n-shaders/vfx/csgo_flashbang_overlay_vulkan_50_ps.vcs CRC:0065eef858 size:3872\n-shaders/vfx/csgo_flashbang_overlay_vulkan_50_psrs.vcs CRC:00c63abcc9 size:1810\n-shaders/vfx/csgo_flashbang_overlay_vulkan_50_vs.vcs CRC:0013a96568 size:11088\n+shaders/vfx/csgo_flashbang_overlay_vulkan_50_features.vcs CRC:00970522e2 size:3586\n+shaders/vfx/csgo_flashbang_overlay_vulkan_50_ps.vcs CRC:00fd5fca89 size:3892\n+shaders/vfx/csgo_flashbang_overlay_vulkan_50_psrs.vcs CRC:00cf9557be size:1810\n+shaders/vfx/csgo_flashbang_overlay_vulkan_50_vs.vcs CRC:0049a12716 size:11088\n shaders/vfx/csgo_foliage.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_foliage_vulkan_50_features.vcs CRC:001b04a572 size:6514\n-shaders/vfx/csgo_foliage_vulkan_50_ps.vcs CRC:00ef5d5256 size:2184977\n+shaders/vfx/csgo_foliage_vulkan_50_features.vcs CRC:008ba3926a size:6514\n+shaders/vfx/csgo_foliage_vulkan_50_ps.vcs CRC:00fecfed27 size:2184374\n shaders/vfx/csgo_foliage_vulkan_50_psrs.vcs CRC:00be28e494 size:2386\n-shaders/vfx/csgo_foliage_vulkan_50_vs.vcs CRC:007ff23472 size:174138\n-shaders/vfx/csgo_foliage_vulkan_60_features.vcs CRC:00d0d3c917 size:6578\n-shaders/vfx/csgo_foliage_vulkan_60_ps.vcs CRC:00ef5d5256 size:2184977\n+shaders/vfx/csgo_foliage_vulkan_50_vs.vcs CRC:001e5428b8 size:174151\n+shaders/vfx/csgo_foliage_vulkan_60_features.vcs CRC:00fa09b6f2 size:6610\n+shaders/vfx/csgo_foliage_vulkan_60_ps.vcs CRC:00fecfed27 size:2184374\n shaders/vfx/csgo_foliage_vulkan_60_psrs.vcs CRC:00be28e494 size:2386\n-shaders/vfx/csgo_foliage_vulkan_60_rtx.vcs CRC:004e8182ae size:175658\n-shaders/vfx/csgo_foliage_vulkan_60_vs.vcs CRC:007ff23472 size:174138\n+shaders/vfx/csgo_foliage_vulkan_60_rtx.vcs CRC:0067697b04 size:175693\n+shaders/vfx/csgo_foliage_vulkan_60_vs.vcs CRC:001e5428b8 size:174151\n shaders/vfx/csgo_glass.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_glass_vulkan_50_features.vcs CRC:0095195879 size:4306\n-shaders/vfx/csgo_glass_vulkan_50_ps.vcs CRC:0080be49e6 size:494986\n+shaders/vfx/csgo_glass_vulkan_50_features.vcs CRC:000df7f838 size:4306\n+shaders/vfx/csgo_glass_vulkan_50_ps.vcs CRC:00e2a4264c size:495012\n shaders/vfx/csgo_glass_vulkan_50_psrs.vcs CRC:006950f0be size:2866\n-shaders/vfx/csgo_glass_vulkan_50_vs.vcs CRC:006772c139 size:91019\n+shaders/vfx/csgo_glass_vulkan_50_vs.vcs CRC:00040c7782 size:91019\n shaders/vfx/csgo_grenade_camera.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_grenade_camera_vulkan_50_features.vcs CRC:000c7874cb size:1890\n-shaders/vfx/csgo_grenade_camera_vulkan_50_ps.vcs CRC:0040f1b4ad size:3525\n+shaders/vfx/csgo_grenade_camera_vulkan_50_features.vcs CRC:006a5f3554 size:1890\n+shaders/vfx/csgo_grenade_camera_vulkan_50_ps.vcs CRC:00456a1056 size:3524\n shaders/vfx/csgo_grenade_camera_vulkan_50_vs.vcs CRC:00559fe5e5 size:1460\n shaders/vfx/csgo_legs_prepass.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_legs_prepass_vulkan_50_features.vcs CRC:00122f60a9 size:3138\n-shaders/vfx/csgo_legs_prepass_vulkan_50_ps.vcs CRC:002aa98770 size:2343\n-shaders/vfx/csgo_legs_prepass_vulkan_50_vs.vcs CRC:0065787d44 size:12409\n+shaders/vfx/csgo_legs_prepass_vulkan_50_features.vcs CRC:001c12d94c size:3138\n+shaders/vfx/csgo_legs_prepass_vulkan_50_ps.vcs CRC:0072c655ee size:2343\n+shaders/vfx/csgo_legs_prepass_vulkan_50_vs.vcs CRC:00b938db09 size:12409\n shaders/vfx/csgo_lightmapped_4wayblend.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_features.vcs CRC:00c2af0c78 size:4674\n-shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_ps.vcs CRC:00511aaecc size:450955\n-shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_psrs.vcs CRC:003c1c6177 size:2050\n-shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_vs.vcs CRC:00ae1bfebe size:39241\n+shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_features.vcs CRC:0015411f6f size:4690\n+shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_ps.vcs CRC:0055dd51d6 size:453810\n+shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_psrs.vcs CRC:00fe2f5b08 size:2050\n+shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_vs.vcs CRC:0010a1f81e size:39257\n shaders/vfx/csgo_lightmappedgeneric.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_lightmappedgeneric_vulkan_50_features.vcs CRC:00ba156f4f size:6882\n-shaders/vfx/csgo_lightmappedgeneric_vulkan_50_ps.vcs CRC:00749f620d size:16761023\n-shaders/vfx/csgo_lightmappedgeneric_vulkan_50_psrs.vcs CRC:00f92984a4 size:4050\n-shaders/vfx/csgo_lightmappedgeneric_vulkan_50_vs.vcs CRC:00bceb2d3f size:391702\n-shaders/vfx/csgo_lightmappedgeneric_vulkan_60_features.vcs CRC:00dd6e7ab1 size:6946\n-shaders/vfx/csgo_lightmappedgeneric_vulkan_60_ps.vcs CRC:00749f620d size:16761023\n-shaders/vfx/csgo_lightmappedgeneric_vulkan_60_psrs.vcs CRC:00f92984a4 size:4050\n-shaders/vfx/csgo_lightmappedgeneric_vulkan_60_rtx.vcs CRC:008c3098ce size:1503471\n-shaders/vfx/csgo_lightmappedgeneric_vulkan_60_vs.vcs CRC:00bceb2d3f size:391702\n+shaders/vfx/csgo_lightmappedgeneric_vulkan_50_features.vcs CRC:00bea036be size:6914\n+shaders/vfx/csgo_lightmappedgeneric_vulkan_50_ps.vcs CRC:00fd25f014 size:16875416\n+shaders/vfx/csgo_lightmappedgeneric_vulkan_50_psrs.vcs CRC:00491764d5 size:4050\n+shaders/vfx/csgo_lightmappedgeneric_vulkan_50_vs.vcs CRC:005b4144a5 size:552509\n+shaders/vfx/csgo_lightmappedgeneric_vulkan_60_features.vcs CRC:004cccb30a size:6994\n+shaders/vfx/csgo_lightmappedgeneric_vulkan_60_ps.vcs CRC:00fd25f014 size:16875416\n+shaders/vfx/csgo_lightmappedgeneric_vulkan_60_psrs.vcs CRC:00491764d5 size:4050\n+shaders/vfx/csgo_lightmappedgeneric_vulkan_60_rtx.vcs CRC:003c0c4fd4 size:1503539\n+shaders/vfx/csgo_lightmappedgeneric_vulkan_60_vs.vcs CRC:005b4144a5 size:552509\n shaders/vfx/csgo_moondome.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_moondome_vulkan_50_features.vcs CRC:00a89e5da9 size:3730\n-shaders/vfx/csgo_moondome_vulkan_50_ps.vcs CRC:00a0f8a1ef size:9076\n-shaders/vfx/csgo_moondome_vulkan_50_psrs.vcs CRC:009f55912f size:1762\n-shaders/vfx/csgo_moondome_vulkan_50_vs.vcs CRC:007124f218 size:9567\n+shaders/vfx/csgo_moondome_vulkan_50_features.vcs CRC:008c5895b0 size:3730\n+shaders/vfx/csgo_moondome_vulkan_50_ps.vcs CRC:0018cdd32d size:9094\n+shaders/vfx/csgo_moondome_vulkan_50_psrs.vcs CRC:00e49eec17 size:1762\n+shaders/vfx/csgo_moondome_vulkan_50_vs.vcs CRC:00e9cdc158 size:9567\n shaders/vfx/csgo_panolayer_rt.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_panolayer_rt_vulkan_50_features.vcs CRC:005bac7ecc size:1922\n-shaders/vfx/csgo_panolayer_rt_vulkan_50_ps.vcs CRC:00c470dd4b size:2655\n-shaders/vfx/csgo_panolayer_rt_vulkan_50_psrs.vcs CRC:00bcb37f20 size:1586\n-shaders/vfx/csgo_panolayer_rt_vulkan_50_vs.vcs CRC:0093e19af8 size:1780\n+shaders/vfx/csgo_panolayer_rt_vulkan_50_features.vcs CRC:00f9456bca size:1922\n+shaders/vfx/csgo_panolayer_rt_vulkan_50_ps.vcs CRC:0064d32410 size:2655\n+shaders/vfx/csgo_panolayer_rt_vulkan_50_psrs.vcs CRC:0029a0cc5e size:1586\n+shaders/vfx/csgo_panolayer_rt_vulkan_50_vs.vcs CRC:00360851bc size:1780\n shaders/vfx/csgo_projected_decals.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_projected_decals_vulkan_50_features.vcs CRC:0063b1a152 size:5442\n-shaders/vfx/csgo_projected_decals_vulkan_50_ps.vcs CRC:00b3fd9ae1 size:50148908\n-shaders/vfx/csgo_projected_decals_vulkan_50_psrs.vcs CRC:002ab260b2 size:2786\n-shaders/vfx/csgo_projected_decals_vulkan_50_vs.vcs CRC:005efb3ea1 size:8706\n+shaders/vfx/csgo_projected_decals_vulkan_50_features.vcs CRC:0071b927ee size:5442\n+shaders/vfx/csgo_projected_decals_vulkan_50_ps.vcs CRC:00c156ca58 size:50519683\n+shaders/vfx/csgo_projected_decals_vulkan_50_psrs.vcs CRC:00ad2bd92b size:2786\n+shaders/vfx/csgo_projected_decals_vulkan_50_vs.vcs CRC:005d7d90f8 size:8706\n shaders/vfx/csgo_refract.ini CRC:0000000000 size:0\n shaders/vfx/csgo_refract_vulkan_50_features.vcs CRC:00b4d537c6 size:2594\n shaders/vfx/csgo_refract_vulkan_50_ps.vcs CRC:00929c3f67 size:21805\n@@ -206,39 +206,39 @@ shaders/vfx/csgo_screenspace_zone_vulkan_50_ps.vcs CRC:00e209cae1 size:4696\n shaders/vfx/csgo_screenspace_zone_vulkan_50_vs.vcs CRC:0058e8989f size:1446\n shaders/vfx/csgo_simple.ini CRC:0000000000 size:0\n shaders/vfx/csgo_simple_2way_blend.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_simple_2way_blend_vulkan_50_features.vcs CRC:003af486ec size:4722\n-shaders/vfx/csgo_simple_2way_blend_vulkan_50_ps.vcs CRC:007591ecb8 size:305198\n+shaders/vfx/csgo_simple_2way_blend_vulkan_50_features.vcs CRC:0061a58d0c size:4738\n+shaders/vfx/csgo_simple_2way_blend_vulkan_50_ps.vcs CRC:009575da12 size:306675\n shaders/vfx/csgo_simple_2way_blend_vulkan_50_psrs.vcs CRC:0013b79f0e size:1874\n-shaders/vfx/csgo_simple_2way_blend_vulkan_50_vs.vcs CRC:006f726b68 size:24693\n-shaders/vfx/csgo_simple_2way_blend_vulkan_60_features.vcs CRC:002f614caa size:4802\n-shaders/vfx/csgo_simple_2way_blend_vulkan_60_ps.vcs CRC:007591ecb8 size:305198\n+shaders/vfx/csgo_simple_2way_blend_vulkan_50_vs.vcs CRC:0062360dd3 size:24693\n+shaders/vfx/csgo_simple_2way_blend_vulkan_60_features.vcs CRC:00c56b620c size:4818\n+shaders/vfx/csgo_simple_2way_blend_vulkan_60_ps.vcs CRC:009575da12 size:306675\n shaders/vfx/csgo_simple_2way_blend_vulkan_60_psrs.vcs CRC:0013b79f0e size:1874\n-shaders/vfx/csgo_simple_2way_blend_vulkan_60_rtx.vcs CRC:0041e04343 size:69804\n-shaders/vfx/csgo_simple_2way_blend_vulkan_60_vs.vcs CRC:006f726b68 size:24693\n+shaders/vfx/csgo_simple_2way_blend_vulkan_60_rtx.vcs CRC:0002d65eb6 size:69822\n+shaders/vfx/csgo_simple_2way_blend_vulkan_60_vs.vcs CRC:0062360dd3 size:24693\n shaders/vfx/csgo_simple_3layer_parallax.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_features.vcs CRC:00126a679b size:4866\n-shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_ps.vcs CRC:001da3c613 size:3191670\n+shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_features.vcs CRC:006b3cd645 size:4866\n+shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_ps.vcs CRC:0096efe05f size:3190570\n shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_psrs.vcs CRC:00ec6ef90d size:1938\n-shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_vs.vcs CRC:00d1b9d962 size:21931\n+shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_vs.vcs CRC:0068bf135b size:21948\n shaders/vfx/csgo_simple_liquid.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_simple_liquid_vulkan_50_features.vcs CRC:00d51ad92c size:5890\n-shaders/vfx/csgo_simple_liquid_vulkan_50_ps.vcs CRC:00e86b59df size:1418572\n-shaders/vfx/csgo_simple_liquid_vulkan_50_psrs.vcs CRC:009897a715 size:1826\n-shaders/vfx/csgo_simple_liquid_vulkan_50_vs.vcs CRC:004ccc6e87 size:32154\n-shaders/vfx/csgo_simple_vulkan_50_features.vcs CRC:00a1a7b65f size:4658\n-shaders/vfx/csgo_simple_vulkan_50_ps.vcs CRC:00c9e1f0ac size:275662\n+shaders/vfx/csgo_simple_liquid_vulkan_50_features.vcs CRC:0027957c27 size:5954\n+shaders/vfx/csgo_simple_liquid_vulkan_50_ps.vcs CRC:009825e0fe size:1574032\n+shaders/vfx/csgo_simple_liquid_vulkan_50_psrs.vcs CRC:007031f32d size:1842\n+shaders/vfx/csgo_simple_liquid_vulkan_50_vs.vcs CRC:008fc54866 size:34264\n+shaders/vfx/csgo_simple_vulkan_50_features.vcs CRC:00186205c6 size:4658\n+shaders/vfx/csgo_simple_vulkan_50_ps.vcs CRC:009d3a6e10 size:279137\n shaders/vfx/csgo_simple_vulkan_50_psrs.vcs CRC:00ca11e680 size:2130\n-shaders/vfx/csgo_simple_vulkan_50_vs.vcs CRC:004c6c5454 size:24231\n+shaders/vfx/csgo_simple_vulkan_50_vs.vcs CRC:00ff5cdbe3 size:24231\n shaders/vfx/csgo_static_overlay.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_static_overlay_vulkan_50_features.vcs CRC:007155fe1d size:7554\n-shaders/vfx/csgo_static_overlay_vulkan_50_ps.vcs CRC:0095e7c840 size:841185\n-shaders/vfx/csgo_static_overlay_vulkan_50_psrs.vcs CRC:00a626d5f8 size:2610\n-shaders/vfx/csgo_static_overlay_vulkan_50_vs.vcs CRC:004abdc0fd size:128425\n+shaders/vfx/csgo_static_overlay_vulkan_50_features.vcs CRC:00af09c8a6 size:7602\n+shaders/vfx/csgo_static_overlay_vulkan_50_ps.vcs CRC:00afe553cd size:854052\n+shaders/vfx/csgo_static_overlay_vulkan_50_psrs.vcs CRC:003f43c7fb size:2610\n+shaders/vfx/csgo_static_overlay_vulkan_50_vs.vcs CRC:009893a3c6 size:134940\n shaders/vfx/csgo_textile_layer.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_textile_layer_vulkan_50_features.vcs CRC:00e3765279 size:7250\n-shaders/vfx/csgo_textile_layer_vulkan_50_ps.vcs CRC:0093df54b3 size:125181\n-shaders/vfx/csgo_textile_layer_vulkan_50_psrs.vcs CRC:00ace63e8c size:1858\n-shaders/vfx/csgo_textile_layer_vulkan_50_vs.vcs CRC:007ab564b2 size:9519\n+shaders/vfx/csgo_textile_layer_vulkan_50_features.vcs CRC:00755aa189 size:7250\n+shaders/vfx/csgo_textile_layer_vulkan_50_ps.vcs CRC:00b3a793c0 size:125192\n+shaders/vfx/csgo_textile_layer_vulkan_50_psrs.vcs CRC:00ff9799e7 size:1858\n+shaders/vfx/csgo_textile_layer_vulkan_50_vs.vcs CRC:00804173a2 size:9519\n shaders/vfx/csgo_tools_shading_complexity.ini CRC:0000000000 size:0\n shaders/vfx/csgo_tools_shading_complexity_vulkan_50_features.vcs CRC:000efc205f size:2178\n shaders/vfx/csgo_tools_shading_complexity_vulkan_50_ps.vcs CRC:00f71e4a5f size:2958\n@@ -252,44 +252,44 @@ shaders/vfx/csgo_ui_texture_attribute_vulkan_50_features.vcs CRC:003dc34fc4 size\n shaders/vfx/csgo_ui_texture_attribute_vulkan_50_ps.vcs CRC:00763abeb6 size:1951\n shaders/vfx/csgo_ui_texture_attribute_vulkan_50_vs.vcs CRC:00895145c7 size:1913\n shaders/vfx/csgo_unlitgeneric.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_unlitgeneric_vulkan_50_features.vcs CRC:00b6a22217 size:4834\n-shaders/vfx/csgo_unlitgeneric_vulkan_50_ps.vcs CRC:00195aa765 size:165657\n-shaders/vfx/csgo_unlitgeneric_vulkan_50_psrs.vcs CRC:0073277f05 size:3314\n-shaders/vfx/csgo_unlitgeneric_vulkan_50_vs.vcs CRC:008ffd87ab size:82692\n+shaders/vfx/csgo_unlitgeneric_vulkan_50_features.vcs CRC:009e0021fb size:4834\n+shaders/vfx/csgo_unlitgeneric_vulkan_50_ps.vcs CRC:0001fb23f8 size:165660\n+shaders/vfx/csgo_unlitgeneric_vulkan_50_psrs.vcs CRC:00b75836fd size:3314\n+shaders/vfx/csgo_unlitgeneric_vulkan_50_vs.vcs CRC:007e8fb39b size:82692\n shaders/vfx/csgo_vertexlitgeneric.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_vertexlitgeneric_vulkan_50_features.vcs CRC:001f291976 size:6450\n-shaders/vfx/csgo_vertexlitgeneric_vulkan_50_ps.vcs CRC:00f6dd496e size:17416926\n+shaders/vfx/csgo_vertexlitgeneric_vulkan_50_features.vcs CRC:004d5c9722 size:6466\n+shaders/vfx/csgo_vertexlitgeneric_vulkan_50_ps.vcs CRC:007280ca98 size:17528271\n shaders/vfx/csgo_vertexlitgeneric_vulkan_50_psrs.vcs CRC:00fd658c92 size:3170\n-shaders/vfx/csgo_vertexlitgeneric_vulkan_50_vs.vcs CRC:0055600e60 size:111435\n-shaders/vfx/csgo_vertexlitgeneric_vulkan_60_features.vcs CRC:005df5ce66 size:6562\n-shaders/vfx/csgo_vertexlitgeneric_vulkan_60_ps.vcs CRC:00f6dd496e size:17416926\n+shaders/vfx/csgo_vertexlitgeneric_vulkan_50_vs.vcs CRC:00b54e216a size:111447\n+shaders/vfx/csgo_vertexlitgeneric_vulkan_60_features.vcs CRC:008793b1be size:6578\n+shaders/vfx/csgo_vertexlitgeneric_vulkan_60_ps.vcs CRC:007280ca98 size:17528271\n shaders/vfx/csgo_vertexlitgeneric_vulkan_60_psrs.vcs CRC:00fd658c92 size:3170\n-shaders/vfx/csgo_vertexlitgeneric_vulkan_60_rtx.vcs CRC:00b4fbabc0 size:1640900\n-shaders/vfx/csgo_vertexlitgeneric_vulkan_60_vs.vcs CRC:0055600e60 size:111435\n+shaders/vfx/csgo_vertexlitgeneric_vulkan_60_rtx.vcs CRC:00afa4f05b size:1640912\n+shaders/vfx/csgo_vertexlitgeneric_vulkan_60_vs.vcs CRC:00b54e216a size:111447\n shaders/vfx/csgo_volume_viewer.ini CRC:0000000000 size:0\n shaders/vfx/csgo_volume_viewer_vulkan_50_features.vcs CRC:00bdb2e588 size:1794\n shaders/vfx/csgo_volume_viewer_vulkan_50_ps.vcs CRC:004f16297b size:2623\n shaders/vfx/csgo_volume_viewer_vulkan_50_vs.vcs CRC:003ad5dbf7 size:2212\n shaders/vfx/csgo_water.ini CRC:0000000000 size:0\n shaders/vfx/csgo_water_fancy.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_water_fancy_vulkan_50_features.vcs CRC:00648c3eb7 size:6322\n-shaders/vfx/csgo_water_fancy_vulkan_50_ps.vcs CRC:005390fc96 size:4973780\n-shaders/vfx/csgo_water_fancy_vulkan_50_psrs.vcs CRC:00e4b067b7 size:2018\n-shaders/vfx/csgo_water_fancy_vulkan_50_vs.vcs CRC:009a0b3788 size:16890\n-shaders/vfx/csgo_water_vulkan_50_features.vcs CRC:0026f8c27f size:5234\n-shaders/vfx/csgo_water_vulkan_50_ps.vcs CRC:00dc7d753b size:3613802\n-shaders/vfx/csgo_water_vulkan_50_psrs.vcs CRC:0087a55d56 size:1954\n-shaders/vfx/csgo_water_vulkan_50_vs.vcs CRC:009b3981a9 size:18177\n+shaders/vfx/csgo_water_fancy_vulkan_50_features.vcs CRC:00817ab090 size:6322\n+shaders/vfx/csgo_water_fancy_vulkan_50_ps.vcs CRC:00bdaab92d size:5071389\n+shaders/vfx/csgo_water_fancy_vulkan_50_psrs.vcs CRC:0004f79ddd size:2034\n+shaders/vfx/csgo_water_fancy_vulkan_50_vs.vcs CRC:00526dcdb7 size:16890\n+shaders/vfx/csgo_water_vulkan_50_features.vcs CRC:0055be0083 size:5234\n+shaders/vfx/csgo_water_vulkan_50_ps.vcs CRC:00dca082c4 size:3626960\n+shaders/vfx/csgo_water_vulkan_50_psrs.vcs CRC:00c6817183 size:1954\n+shaders/vfx/csgo_water_vulkan_50_vs.vcs CRC:009a223088 size:18177\n shaders/vfx/csgo_weapon.ini CRC:0000000000 size:0\n shaders/vfx/csgo_weapon_sticker.ini CRC:0000000000 size:0\n-shaders/vfx/csgo_weapon_sticker_vulkan_50_features.vcs CRC:0013c0cbd5 size:4978\n-shaders/vfx/csgo_weapon_sticker_vulkan_50_ps.vcs CRC:00397cdafc size:112221\n-shaders/vfx/csgo_weapon_sticker_vulkan_50_psrs.vcs CRC:00080c9adc size:1586\n-shaders/vfx/csgo_weapon_sticker_vulkan_50_vs.vcs CRC:00d62fc43b size:11231\n-shaders/vfx/csgo_weapon_vulkan_50_features.vcs CRC:00b2403e78 size:10370\n-shaders/vfx/csgo_weapon_vulkan_50_ps.vcs CRC:00d6d02736 size:26972306\n-shaders/vfx/csgo_weapon_vulkan_50_psrs.vcs CRC:0013979893 size:2402\n-shaders/vfx/csgo_weapon_vulkan_50_vs.vcs CRC:00278060e0 size:40405\n+shaders/vfx/csgo_weapon_sticker_vulkan_50_features.vcs CRC:00cd71f0e6 size:4978\n+shaders/vfx/csgo_weapon_sticker_vulkan_50_ps.vcs CRC:003586b006 size:112369\n+shaders/vfx/csgo_weapon_sticker_vulkan_50_psrs.vcs CRC:00a6a7b43d size:1586\n+shaders/vfx/csgo_weapon_sticker_vulkan_50_vs.vcs CRC:0092514444 size:11231\n+shaders/vfx/csgo_weapon_vulkan_50_features.vcs CRC:0002d95f9c size:10418\n+shaders/vfx/csgo_weapon_vulkan_50_ps.vcs CRC:00d907281e size:28726062\n+shaders/vfx/csgo_weapon_vulkan_50_psrs.vcs CRC:005296c6b7 size:2402\n+shaders/vfx/csgo_weapon_vulkan_50_vs.vcs CRC:00c1b53691 size:42656\n shaders/vfx/deferred_particle_shadows.ini CRC:0000000000 size:0\n shaders/vfx/deferred_particle_shadows_vulkan_50_features.vcs CRC:00d44879f1 size:1682\n shaders/vfx/deferred_particle_shadows_vulkan_50_ps.vcs CRC:00fe14e2e6 size:4683\n@@ -329,62 +329,62 @@ shaders/vfx/generate_decal_normals_vulkan_60_features.vcs CRC:008ef1de8c size:16\n shaders/vfx/generate_decal_normals_vulkan_60_ps.vcs CRC:00f73eb457 size:2266\n shaders/vfx/generate_decal_normals_vulkan_60_vs.vcs CRC:00cfe35899 size:1782\n shaders/vfx/generic.ini CRC:0000000000 size:0\n-shaders/vfx/generic_vulkan_50_features.vcs CRC:00af504ec0 size:5074\n-shaders/vfx/generic_vulkan_50_ps.vcs CRC:00382b4727 size:1942579\n-shaders/vfx/generic_vulkan_50_psrs.vcs CRC:005f693504 size:3442\n-shaders/vfx/generic_vulkan_50_vs.vcs CRC:006b80d3bb size:25929\n+shaders/vfx/generic_vulkan_50_features.vcs CRC:00011ca969 size:5074\n+shaders/vfx/generic_vulkan_50_ps.vcs CRC:000fd1f725 size:1958547\n+shaders/vfx/generic_vulkan_50_psrs.vcs CRC:00896ac5fa size:3442\n+shaders/vfx/generic_vulkan_50_vs.vcs CRC:00ac19044a size:25929\n shaders/vfx/grasstile.ini CRC:0000000000 size:0\n shaders/vfx/grasstile_preview.ini CRC:0000000000 size:0\n shaders/vfx/grasstile_preview_vulkan_50_features.vcs CRC:00f9a2db40 size:2162\n shaders/vfx/grasstile_preview_vulkan_50_ps.vcs CRC:004836e56f size:3129\n shaders/vfx/grasstile_preview_vulkan_50_vs.vcs CRC:0032b6d08f size:3078\n-shaders/vfx/grasstile_vulkan_50_features.vcs CRC:00d221cc8a size:3570\n-shaders/vfx/grasstile_vulkan_50_ps.vcs CRC:00e40995d0 size:75770\n-shaders/vfx/grasstile_vulkan_50_psrs.vcs CRC:00f2d803fd size:2002\n-shaders/vfx/grasstile_vulkan_50_vs.vcs CRC:00d924400b size:5973\n+shaders/vfx/grasstile_vulkan_50_features.vcs CRC:0000d5f45d size:3570\n+shaders/vfx/grasstile_vulkan_50_ps.vcs CRC:00f16bf391 size:75914\n+shaders/vfx/grasstile_vulkan_50_psrs.vcs CRC:0076620160 size:2002\n+shaders/vfx/grasstile_vulkan_50_vs.vcs CRC:00ae681e47 size:5973\n shaders/vfx/healthboost.ini CRC:0000000000 size:0\n shaders/vfx/healthboost_vulkan_50_features.vcs CRC:00f1c7615b size:1794\n shaders/vfx/healthboost_vulkan_50_ps.vcs CRC:005e08f5b6 size:2714\n shaders/vfx/healthboost_vulkan_50_vs.vcs CRC:00c1fbcedf size:1361\n shaders/vfx/histogram_cs.ini CRC:0000000000 size:0\n-shaders/vfx/histogram_cs_vulkan_50_cs.vcs CRC:002e1a9d88 size:8124\n-shaders/vfx/histogram_cs_vulkan_50_features.vcs CRC:004748ea81 size:1730\n+shaders/vfx/histogram_cs_vulkan_50_cs.vcs CRC:00207b81ce size:8121\n+shaders/vfx/histogram_cs_vulkan_50_features.vcs CRC:0054363111 size:1730\n shaders/vfx/inferno.ini CRC:0000000000 size:0\n-shaders/vfx/inferno_vulkan_50_features.vcs CRC:009b120da5 size:1906\n-shaders/vfx/inferno_vulkan_50_ps.vcs CRC:00966f858f size:3842\n-shaders/vfx/inferno_vulkan_50_vs.vcs CRC:00db5abfc4 size:2052\n+shaders/vfx/inferno_vulkan_50_features.vcs CRC:0001da3dbd size:1906\n+shaders/vfx/inferno_vulkan_50_ps.vcs CRC:00f4959e41 size:3843\n+shaders/vfx/inferno_vulkan_50_vs.vcs CRC:00bf809968 size:2052\n shaders/vfx/legacy_sniper_scope.ini CRC:0000000000 size:0\n shaders/vfx/legacy_sniper_scope_vulkan_50_features.vcs CRC:000ec34ac7 size:1714\n shaders/vfx/legacy_sniper_scope_vulkan_50_ps.vcs CRC:00876bcd38 size:3614\n shaders/vfx/legacy_sniper_scope_vulkan_50_vs.vcs CRC:00c1fbcedf size:1361\n shaders/vfx/lpv_debug_grid.ini CRC:0000000000 size:0\n-shaders/vfx/lpv_debug_grid_vulkan_50_features.vcs CRC:00c23c50ad size:2866\n-shaders/vfx/lpv_debug_grid_vulkan_50_gs.vcs CRC:00fec36cb7 size:5120\n-shaders/vfx/lpv_debug_grid_vulkan_50_ps.vcs CRC:0088b58588 size:56580\n-shaders/vfx/lpv_debug_grid_vulkan_50_vs.vcs CRC:004fae1338 size:2420\n+shaders/vfx/lpv_debug_grid_vulkan_50_features.vcs CRC:006c35ddc0 size:2866\n+shaders/vfx/lpv_debug_grid_vulkan_50_gs.vcs CRC:0084578ad4 size:5120\n+shaders/vfx/lpv_debug_grid_vulkan_50_ps.vcs CRC:00dd31bc74 size:56834\n+shaders/vfx/lpv_debug_grid_vulkan_50_vs.vcs CRC:00996c1a1f size:2436\n shaders/vfx/luminaire.ini CRC:0000000000 size:0\n-shaders/vfx/luminaire_vulkan_50_features.vcs CRC:0095d621bc size:2418\n-shaders/vfx/luminaire_vulkan_50_ps.vcs CRC:00a62b4315 size:10950\n-shaders/vfx/luminaire_vulkan_50_psrs.vcs CRC:00c073b324 size:2018\n-shaders/vfx/luminaire_vulkan_50_vs.vcs CRC:00f73b149c size:4236\n+shaders/vfx/luminaire_vulkan_50_features.vcs CRC:00cced6d93 size:2418\n+shaders/vfx/luminaire_vulkan_50_ps.vcs CRC:006b637d50 size:10948\n+shaders/vfx/luminaire_vulkan_50_psrs.vcs CRC:00200a1e43 size:2018\n+shaders/vfx/luminaire_vulkan_50_vs.vcs CRC:009a68c550 size:4236\n shaders/vfx/mboit_mixed_combine.ini CRC:0000000000 size:0\n-shaders/vfx/mboit_mixed_combine_vulkan_50_features.vcs CRC:00687315fc size:1954\n-shaders/vfx/mboit_mixed_combine_vulkan_50_ps.vcs CRC:0089c389e4 size:6981\n+shaders/vfx/mboit_mixed_combine_vulkan_50_features.vcs CRC:006e6a68e8 size:1954\n+shaders/vfx/mboit_mixed_combine_vulkan_50_ps.vcs CRC:00121c3fe9 size:6983\n shaders/vfx/mboit_mixed_combine_vulkan_50_vs.vcs CRC:000e7b0f60 size:2155\n shaders/vfx/mboit_mixed_upsample.ini CRC:0000000000 size:0\n-shaders/vfx/mboit_mixed_upsample_vulkan_50_cs.vcs CRC:000a1844df size:9755\n-shaders/vfx/mboit_mixed_upsample_vulkan_50_features.vcs CRC:00d01e8f59 size:2018\n+shaders/vfx/mboit_mixed_upsample_vulkan_50_cs.vcs CRC:00ecfe3acd size:9757\n+shaders/vfx/mboit_mixed_upsample_vulkan_50_features.vcs CRC:00cd5dd0e3 size:2018\n shaders/vfx/mboitfinal.ini CRC:0000000000 size:0\n-shaders/vfx/mboitfinal_vulkan_50_features.vcs CRC:003b53f60e size:1954\n-shaders/vfx/mboitfinal_vulkan_50_ps.vcs CRC:00017d32e3 size:9368\n+shaders/vfx/mboitfinal_vulkan_50_features.vcs CRC:00f06fac64 size:1970\n+shaders/vfx/mboitfinal_vulkan_50_ps.vcs CRC:00065dd963 size:9392\n shaders/vfx/mboitfinal_vulkan_50_vs.vcs CRC:00a4e324be size:2418\n shaders/vfx/outlines.ini CRC:0000000000 size:0\n shaders/vfx/outlines_vulkan_50_features.vcs CRC:00e6864a88 size:1778\n shaders/vfx/outlines_vulkan_50_ps.vcs CRC:00ed69fa1e size:3151\n shaders/vfx/outlines_vulkan_50_vs.vcs CRC:0070b74c32 size:1363\n shaders/vfx/overlay_smoke.ini CRC:0000000000 size:0\n-shaders/vfx/overlay_smoke_vulkan_50_features.vcs CRC:00e84b3e90 size:1746\n-shaders/vfx/overlay_smoke_vulkan_50_ps.vcs CRC:00448b7c4b size:3367\n+shaders/vfx/overlay_smoke_vulkan_50_features.vcs CRC:00c8282e48 size:1762\n+shaders/vfx/overlay_smoke_vulkan_50_ps.vcs CRC:001cd1c1a6 size:3383\n shaders/vfx/overlay_smoke_vulkan_50_vs.vcs CRC:0086da6292 size:1487\n shaders/vfx/panorama_alpha.ini CRC:0000000000 size:0\n shaders/vfx/panorama_alpha_vulkan_50_features.vcs CRC:00900fc740 size:1682\n@@ -403,69 +403,69 @@ shaders/vfx/player_visibility_vulkan_50_features.vcs CRC:00abc5486a size:1666\n shaders/vfx/player_visibility_vulkan_50_ps.vcs CRC:001e023bb5 size:4336\n shaders/vfx/player_visibility_vulkan_50_vs.vcs CRC:00c1fbcedf size:1361\n shaders/vfx/post_process.ini CRC:0000000000 size:0\n-shaders/vfx/post_process_vulkan_50_features.vcs CRC:009d0e5047 size:2626\n-shaders/vfx/post_process_vulkan_50_ps.vcs CRC:00421ab223 size:83220\n-shaders/vfx/post_process_vulkan_50_vs.vcs CRC:009e956b0b size:1782\n+shaders/vfx/post_process_vulkan_50_features.vcs CRC:0021bc2813 size:2626\n+shaders/vfx/post_process_vulkan_50_ps.vcs CRC:0098f6e429 size:83313\n+shaders/vfx/post_process_vulkan_50_vs.vcs CRC:007737dc89 size:1782\n shaders/vfx/reconstruct_normals.ini CRC:0000000000 size:0\n shaders/vfx/reconstruct_normals_vulkan_50_features.vcs CRC:000efbe6a8 size:1570\n shaders/vfx/reconstruct_normals_vulkan_50_ps.vcs CRC:00c2808e1e size:4012\n shaders/vfx/reconstruct_normals_vulkan_50_vs.vcs CRC:001992f1a7 size:1786\n shaders/vfx/screenparticlescombine.ini CRC:0000000000 size:0\n-shaders/vfx/screenparticlescombine_vulkan_50_features.vcs CRC:002c516485 size:1666\n-shaders/vfx/screenparticlescombine_vulkan_50_ps.vcs CRC:001daac2a0 size:2012\n+shaders/vfx/screenparticlescombine_vulkan_50_features.vcs CRC:009adb1abc size:1666\n+shaders/vfx/screenparticlescombine_vulkan_50_ps.vcs CRC:00b8080669 size:2029\n shaders/vfx/screenparticlescombine_vulkan_50_vs.vcs CRC:0074449250 size:1458\n shaders/vfx/simple.ini CRC:0000000000 size:0\n-shaders/vfx/simple_vulkan_50_features.vcs CRC:00ac84f53e size:4578\n-shaders/vfx/simple_vulkan_50_ps.vcs CRC:009e05dde6 size:63444\n-shaders/vfx/simple_vulkan_50_psrs.vcs CRC:0002da3ae8 size:1794\n-shaders/vfx/simple_vulkan_50_vs.vcs CRC:00a27efe8f size:13504\n+shaders/vfx/simple_vulkan_50_features.vcs CRC:00fa6e0c09 size:4594\n+shaders/vfx/simple_vulkan_50_ps.vcs CRC:00bbfc3df4 size:63730\n+shaders/vfx/simple_vulkan_50_psrs.vcs CRC:00f71bc38a size:1794\n+shaders/vfx/simple_vulkan_50_vs.vcs CRC:0094cd530d size:13504\n shaders/vfx/sky.ini CRC:0000000000 size:0\n shaders/vfx/sky_occluder.ini CRC:0000000000 size:0\n shaders/vfx/sky_occluder_vulkan_50_features.vcs CRC:00b9463b7b size:1906\n shaders/vfx/sky_occluder_vulkan_50_ps.vcs CRC:003d8eaf4b size:2472\n shaders/vfx/sky_occluder_vulkan_50_vs.vcs CRC:00d7967a62 size:2477\n-shaders/vfx/sky_vulkan_50_features.vcs CRC:002ad8e7b9 size:2546\n-shaders/vfx/sky_vulkan_50_ps.vcs CRC:008d4f3ff1 size:8518\n-shaders/vfx/sky_vulkan_50_vs.vcs CRC:00f5d3112e size:2582\n+shaders/vfx/sky_vulkan_50_features.vcs CRC:00f19f1684 size:2546\n+shaders/vfx/sky_vulkan_50_ps.vcs CRC:00a1b3b08e size:8523\n+shaders/vfx/sky_vulkan_50_vs.vcs CRC:0071f346e6 size:2582\n shaders/vfx/skybox_blur.ini CRC:0000000000 size:0\n shaders/vfx/skybox_blur_vulkan_50_features.vcs CRC:00f4ea76f3 size:1682\n shaders/vfx/skybox_blur_vulkan_50_ps.vcs CRC:0021222f9a size:3035\n shaders/vfx/skybox_blur_vulkan_50_vs.vcs CRC:006ba482df size:1714\n shaders/vfx/smoke_volume.ini CRC:0000000000 size:0\n shaders/vfx/smoke_volume_cs.ini CRC:0000000000 size:0\n-shaders/vfx/smoke_volume_cs_vulkan_50_cs.vcs CRC:006d2b124c size:83641\n-shaders/vfx/smoke_volume_cs_vulkan_50_features.vcs CRC:001879429c size:2818\n+shaders/vfx/smoke_volume_cs_vulkan_50_cs.vcs CRC:001bfdf0dd size:83652\n+shaders/vfx/smoke_volume_cs_vulkan_50_features.vcs CRC:008956127a size:2818\n shaders/vfx/smoke_volume_depth.ini CRC:0000000000 size:0\n-shaders/vfx/smoke_volume_depth_vulkan_50_features.vcs CRC:001a185323 size:1986\n-shaders/vfx/smoke_volume_depth_vulkan_50_ps.vcs CRC:00a3a2405a size:8935\n-shaders/vfx/smoke_volume_depth_vulkan_50_vs.vcs CRC:0094621042 size:1847\n+shaders/vfx/smoke_volume_depth_vulkan_50_features.vcs CRC:001973bbb7 size:1986\n+shaders/vfx/smoke_volume_depth_vulkan_50_ps.vcs CRC:009809773b size:8935\n+shaders/vfx/smoke_volume_depth_vulkan_50_vs.vcs CRC:00c1856984 size:1847\n shaders/vfx/smoke_volume_lpv.ini CRC:0000000000 size:0\n-shaders/vfx/smoke_volume_lpv_vulkan_50_cs.vcs CRC:008545a720 size:6928\n-shaders/vfx/smoke_volume_lpv_vulkan_50_features.vcs CRC:0013496ad0 size:1874\n+shaders/vfx/smoke_volume_lpv_vulkan_50_cs.vcs CRC:0080cf3ac5 size:6915\n+shaders/vfx/smoke_volume_lpv_vulkan_50_features.vcs CRC:0008726eae size:1874\n shaders/vfx/smoke_volume_mask.ini CRC:0000000000 size:0\n-shaders/vfx/smoke_volume_mask_vulkan_50_features.vcs CRC:007988eb16 size:1938\n-shaders/vfx/smoke_volume_mask_vulkan_50_ps.vcs CRC:008c10c0ec size:14823\n+shaders/vfx/smoke_volume_mask_vulkan_50_features.vcs CRC:0061e23565 size:1938\n+shaders/vfx/smoke_volume_mask_vulkan_50_ps.vcs CRC:008102629a size:14823\n shaders/vfx/smoke_volume_mask_vulkan_50_vs.vcs CRC:002c907541 size:2513\n-shaders/vfx/smoke_volume_vulkan_50_features.vcs CRC:0008faf5a6 size:2834\n-shaders/vfx/smoke_volume_vulkan_50_ps.vcs CRC:0052768f85 size:108497\n-shaders/vfx/smoke_volume_vulkan_50_vs.vcs CRC:0020d3f43d size:1996\n+shaders/vfx/smoke_volume_vulkan_50_features.vcs CRC:00ec76af46 size:2834\n+shaders/vfx/smoke_volume_vulkan_50_ps.vcs CRC:00c9593361 size:108493\n+shaders/vfx/smoke_volume_vulkan_50_vs.vcs CRC:00db7af8e5 size:1996\n shaders/vfx/solidcolor.ini CRC:0000000000 size:0\n shaders/vfx/solidcolor_vulkan_50_features.vcs CRC:000d8add19 size:2354\n shaders/vfx/solidcolor_vulkan_50_ps.vcs CRC:005897b7c9 size:3678\n shaders/vfx/solidcolor_vulkan_50_vs.vcs CRC:00bdeb7d83 size:6716\n shaders/vfx/spritecard.ini CRC:0000000000 size:0\n-shaders/vfx/spritecard_vulkan_50_features.vcs CRC:00204379dd size:3506\n-shaders/vfx/spritecard_vulkan_50_ps.vcs CRC:0057bdbe59 size:5797501\n-shaders/vfx/spritecard_vulkan_50_vs.vcs CRC:00201c5139 size:2676898\n+shaders/vfx/spritecard_vulkan_50_features.vcs CRC:0077f06edf size:3506\n+shaders/vfx/spritecard_vulkan_50_ps.vcs CRC:0098c5fa31 size:5794368\n+shaders/vfx/spritecard_vulkan_50_vs.vcs CRC:0038f47bcf size:2675839\n shaders/vfx/tools_solid.ini CRC:0000000000 size:0\n-shaders/vfx/tools_solid_vulkan_50_features.vcs CRC:00fd9702fa size:1874\n-shaders/vfx/tools_solid_vulkan_50_ps.vcs CRC:0009d8c9b6 size:3843\n-shaders/vfx/tools_solid_vulkan_50_vs.vcs CRC:0057e9726b size:3736\n+shaders/vfx/tools_solid_vulkan_50_features.vcs CRC:00aa1bc0ce size:1874\n+shaders/vfx/tools_solid_vulkan_50_ps.vcs CRC:008c90504f size:3843\n+shaders/vfx/tools_solid_vulkan_50_vs.vcs CRC:00c5b7b866 size:3736\n shaders/vfx/tools_wireframe.ini CRC:0000000000 size:0\n-shaders/vfx/tools_wireframe_vulkan_50_features.vcs CRC:00d0ea8792 size:2258\n-shaders/vfx/tools_wireframe_vulkan_50_gs.vcs CRC:00677475ee size:4552\n-shaders/vfx/tools_wireframe_vulkan_50_ps.vcs CRC:00849a87b2 size:6008\n-shaders/vfx/tools_wireframe_vulkan_50_vs.vcs CRC:00db7e33ec size:13428\n+shaders/vfx/tools_wireframe_vulkan_50_features.vcs CRC:004a52f9ab size:2258\n+shaders/vfx/tools_wireframe_vulkan_50_gs.vcs CRC:008797a26d size:4552\n+shaders/vfx/tools_wireframe_vulkan_50_ps.vcs CRC:00c955fdcd size:6008\n+shaders/vfx/tools_wireframe_vulkan_50_vs.vcs CRC:003a8733a8 size:13428\n shaders/vfx/upsample.ini CRC:0000000000 size:0\n shaders/vfx/upsample_vulkan_50_features.vcs CRC:007910fb4a size:1554\n shaders/vfx/upsample_vulkan_50_ps.vcs CRC:0010a0e68d size:1887"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/bilateral_upsample.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -143,7 +143,7 @@ PS\n \t    float PerViewConstantBuffer_t_1_m1 : packoffset(c23.y);\n \t};\n \t\n-\tSamplerState g_sPointClamp : register(s18, space1);\n+\tSamplerState g_sPointClamp : register(s19, space1);\n \tTexture2D<float4> g_tInputDepthHiRes : register(t32, space1);\n \tTexture2D<float4> g_tInputTexture : register(t30, space1);\n \t"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/bloom_cs.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -89,7 +89,7 @@ CS\n \tlayout(set = 0) uniform _1146 _Globals_;\n \t\n \tlayout(set = 0, binding = 30) uniform texture2D g_tInputDownSample;\n-\tlayout(set = 0, binding = 15) uniform sampler g_sBilinearClamp;\n+\tlayout(set = 0, binding = 16) uniform sampler g_sBilinearClamp;\n \tlayout(set = 0, binding = 158) uniform writeonly image2D g_tOutput;\n \t\n \tvoid main()"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/cables.slang",
          "status": "modified",
          "additions": 162,
          "deletions": 151,
          "changes": 313,
          "patch": "@@ -453,7 +453,7 @@ PS\n \tTexture2D g_tShadowDepthBufferDepth < Attribute(\"ShadowDepthBuffer\"); SrgbRead(false); >;\n \tTexture2D g_tSsao < Attribute(\"SSAOOcclusionFactor\"); SrgbRead(false); >;\n \tTexture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat3 g_vSelfIllumTintScaled < UiType(VectorText); Expression(pow(2,g_flSelfIllumBrightness).x*g_flSelfIllumScale.x*SrgbGammaToLinear(g_vSelfIllumTint.xyz)); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \tfloat4 g_vShadingComplexity < Source(ShadingComplexity); UiType(VectorText); >;\n@@ -530,12 +530,12 @@ PS\n \t#endif\n \t#extension GL_KHR_shader_subgroup_arithmetic : require\n \t\n-\tstruct _1948\n+\tstruct _2200\n \t{\n \t    vec4 _m0[3];\n \t};\n \t\n-\tstruct _2158\n+\tstruct _2410\n \t{\n \t    vec4 _m0[4];\n \t};\n@@ -551,12 +551,12 @@ PS\n \t    vec4 _m6;\n \t};\n \t\n-\tstruct _2685\n+\tstruct _587\n \t{\n \t    _1677 _m0[128];\n \t};\n \t\n-\tstruct _1058\n+\tstruct _2174\n \t{\n \t    mat4 _m0[4];\n \t};\n@@ -623,15 +623,15 @@ PS\n \t\n \tlayout(set = 1) uniform _2806 PerViewConstantBufferCsgo_t;\n \t\n-\tstruct _1398\n+\tstruct _678\n \t{\n \t    vec4 _m0;\n \t    vec4 _m1;\n \t    vec4 _m2;\n \t    vec4 _m3;\n \t    vec4 _m4;\n-\t    _1948 _m5;\n-\t    _2158 _m6;\n+\t    _2200 _m5;\n+\t    _2410 _m6;\n \t    vec4 _m7;\n \t    vec4 _m8;\n \t    vec4 _m9;\n@@ -640,7 +640,7 @@ PS\n \t    uvec4 _m12;\n \t    vec4 _m13;\n \t    vec4 _m14;\n-\t    _2685 _m15;\n+\t    _587 _m15;\n \t    vec4 _m16;\n \t    vec4 _m17;\n \t    int _m18;\n@@ -650,11 +650,11 @@ PS\n \t    float _m22;\n \t    float _m23;\n \t    float _m24;\n-\t    _1058 _m25;\n-\t    _2158 _m26;\n+\t    _2174 _m25;\n+\t    _2410 _m26;\n \t};\n \t\n-\tlayout(set = 3) uniform _1398 PerViewLightingConstantBufferGpu_t;\n+\tlayout(set = 3) uniform _678 PerViewLightingConstantBufferGpu_t;\n \t\n \tstruct _1194\n \t{\n@@ -677,23 +677,23 @@ PS\n \t} g_BarnLights_1;\n \t\n \tlayout(set = 1, binding = 43) uniform texture2D g_tColor;\n-\tlayout(set = 1, binding = 20) uniform sampler g_sUserConfigAllowGlobalMipBias;\n+\tlayout(set = 1, binding = 21) uniform sampler g_sUserConfigAllowGlobalMipBias;\n \tlayout(set = 1, binding = 54) uniform texture2D g_tAmbientOcclusion;\n-\tlayout(set = 1, binding = 19) uniform sampler g_sUserConfig;\n+\tlayout(set = 1, binding = 20) uniform sampler g_sUserConfig;\n \tlayout(set = 1, binding = 52) uniform texture2D g_tNormal;\n \tlayout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;\n-\tlayout(set = 1, binding = 22) uniform sampler g_sCookieSampler;\n+\tlayout(set = 1, binding = 23) uniform sampler g_sCookieSampler;\n \tlayout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;\n-\tlayout(set = 1, binding = 18) uniform sampler g_sPointClamp;\n+\tlayout(set = 1, binding = 19) uniform sampler g_sPointClamp;\n \tlayout(set = 1, binding = 39) uniform texture2D g_tSsao;\n-\tlayout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n+\tlayout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n \tlayout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;\n \tlayout(set = 1, binding = 50) uniform texture2D g_tParticleShadowBuffer;\n-\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;\n-\tlayout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;\n+\tlayout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;\n+\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;\n \tlayout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;\n \tlayout(set = 1, binding = 40) uniform textureCubeArray g_tEnvironmentMap;\n-\tlayout(set = 1, binding = 15) uniform sampler g_sBilinearClamp;\n+\tlayout(set = 1, binding = 16) uniform sampler g_sBilinearClamp;\n \tlayout(set = 1, binding = 35) uniform texture2DArray g_tBRDFLookup;\n \tlayout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;\n \t\n@@ -804,162 +804,173 @@ PS\n \t    {\n \t        _21711 = _21710;\n \t    }\n-\t    float _21712;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735);\n+\t    float _12320;\n \t    SPIRV_CROSS_BRANCH\n-\t    if (PerViewLightingConstantBufferGpu_t._m18 != 0)\n+\t    if (_8634 > 0.0)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13136;\n-\t        vec3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n-\t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))\n-\t            {\n-\t                _13136 = 1.0;\n-\t                _14975 = vec3(0.0);\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])\n-\t            {\n-\t                vec3 _19470 = vec3(_12779, _18322.yz);\n-\t                vec2 _24804 = _19470.xy;\n-\t                vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));\n-\t                vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;\n-\t                vec3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13136 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20488;\n-\t                _10191 = _13039;\n-\t                break;\n-\t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n+\t        float _12504;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m18 != 0)\n \t        {\n-\t            vec2 _7045;\n-\t            vec2 _7046;\n-\t            vec2 _7735;\n-\t            float _8969;\n-\t            float _8970;\n-\t            float _15996;\n-\t            float _17299;\n-\t            vec2 _18870;\n-\t            vec4 _20581;\n-\t            vec4 _22023;\n-\t            float _23727;\n-\t            do\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13136;\n+\t            vec3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                _20581 = PerViewLightingConstantBufferGpu_t._m0;\n-\t                _22023 = PerViewLightingConstantBufferGpu_t._m1;\n-\t                _17299 = PerViewLightingConstantBufferGpu_t._m2.z;\n-\t                _15996 = PerViewLightingConstantBufferGpu_t._m3.z;\n-\t                _18870 = vec2(_17299, _15996);\n-\t                _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n-\t                _7045 = vec2(_8969, _15996);\n-\t                _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n-\t                _7046 = vec2(_17299, _8970);\n-\t                _7735 = vec2(_8969, _8970);\n-\t                float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));\n-\t                bool _12885;\n-\t                if (_15310 == 0.0)\n-\t                {\n-\t                    _12885 = true;\n-\t                }\n-\t                else\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))\n \t                {\n-\t                    _12885 = _15310 == 1.0;\n+\t                    _13136 = 1.0;\n+\t                    _14975 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n \t                }\n-\t                if (_12885)\n+\t                vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])\n \t                {\n-\t                    _23727 = _15310;\n+\t                    vec3 _19470 = vec3(_12779, _18322.yz);\n+\t                    vec2 _24804 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));\n+\t                    vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;\n+\t                    vec3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13136 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20488;\n+\t                    _10191 = _13039;\n \t                    break;\n \t                }\n-\t                _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22023.y);\n-\t                break;\n-\t            } while(false);\n-\t            float _12502;\n-\t            SPIRV_CROSS_BRANCH\n-\t            if (_13136 < 1.0)\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n+\t            }\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))\n+\t                vec2 _7045;\n+\t                vec2 _7046;\n+\t                vec2 _7735;\n+\t                float _8969;\n+\t                float _8970;\n+\t                float _15996;\n+\t                float _17299;\n+\t                vec2 _18870;\n+\t                vec4 _20581;\n+\t                vec4 _22023;\n+\t                float _23727;\n+\t                do\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];\n-\t                    vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;\n-\t                    vec3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    float _12501;\n-\t                    do\n+\t                    float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);\n+\t                    _20581 = PerViewLightingConstantBufferGpu_t._m0;\n+\t                    _22023 = PerViewLightingConstantBufferGpu_t._m1;\n+\t                    _17299 = PerViewLightingConstantBufferGpu_t._m2.z;\n+\t                    _15996 = PerViewLightingConstantBufferGpu_t._m3.z;\n+\t                    _18870 = vec2(_17299, _15996);\n+\t                    _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n+\t                    _7045 = vec2(_8969, _15996);\n+\t                    _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n+\t                    _7046 = vec2(_17299, _8970);\n+\t                    _7735 = vec2(_8969, _8970);\n+\t                    float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));\n+\t                    bool _12885;\n+\t                    if (_15310 == 0.0)\n \t                    {\n-\t                        float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                        float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));\n-\t                        bool _12886;\n-\t                        if (_15311 == 0.0)\n-\t                        {\n-\t                            _12886 = true;\n-\t                        }\n-\t                        else\n-\t                        {\n-\t                            _12886 = _15311 == 1.0;\n-\t                        }\n-\t                        if (_12886)\n+\t                        _12885 = true;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _12885 = _15310 == 1.0;\n+\t                    }\n+\t                    if (_12885)\n+\t                    {\n+\t                        _23727 = _15310;\n+\t                        break;\n+\t                    }\n+\t                    _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22023.y);\n+\t                    break;\n+\t                } while(false);\n+\t                float _12502;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13136 < 1.0)\n+\t                {\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];\n+\t                        vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;\n+\t                        vec3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        float _12501;\n+\t                        do\n \t                        {\n-\t                            _12501 = _15311;\n+\t                            float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);\n+\t                            float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));\n+\t                            bool _12886;\n+\t                            if (_15311 == 0.0)\n+\t                            {\n+\t                                _12886 = true;\n+\t                            }\n+\t                            else\n+\t                            {\n+\t                                _12886 = _15311 == 1.0;\n+\t                            }\n+\t                            if (_12886)\n+\t                            {\n+\t                                _12501 = _15311;\n+\t                                break;\n+\t                            }\n+\t                            _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22023.y);\n \t                            break;\n-\t                        }\n-\t                        _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22023.y);\n-\t                        break;\n-\t                    } while(false);\n-\t                    _7934 = _12501;\n+\t                        } while(false);\n+\t                        _7934 = _12501;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0;\n+\t                    }\n+\t                    _12502 = mix(_7934, _23727, _13136);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0;\n+\t                    _12502 = _23727;\n \t                }\n-\t                _12502 = mix(_7934, _23727, _13136);\n+\t                _19363 = _12502;\n \t            }\n \t            else\n \t            {\n-\t                _12502 = _23727;\n+\t                _19363 = 1.0;\n \t            }\n-\t            _19363 = _12502;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0;\n-\t        }\n-\t        float _13279 = mix(_19363, 1.0, saturate((distance(_7639.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));\n-\t        float _12503;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            float _13279 = mix(_19363, 1.0, saturate((distance(_7639.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));\n+\t            float _12503;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12503 = _13279;\n+\t            }\n+\t            _12504 = _12503;\n \t        }\n \t        else\n \t        {\n-\t            _12503 = _13279;\n+\t            _12504 = 1.0;\n \t        }\n-\t        _21712 = _12503;\n+\t        _12320 = _12504;\n \t    }\n \t    else\n \t    {\n-\t        _21712 = 1.0;\n+\t        _12320 = 1.0;\n \t    }\n \t    vec3 _9716;\n \t    vec3 _24878;\n \t    SPIRV_CROSS_BRANCH\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735) * _21712) > 0.0)\n+\t    if ((_8634 * _12320) > 0.0)\n \t    {\n \t        float _11797 = max(0.0, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));\n \t        vec2 _9840 = max(_11004, vec2(PerViewLightingConstantBufferGpu_t._m16.w));\n@@ -974,7 +985,7 @@ PS\n \t        float _16150 = _9850 + 1.0;\n \t        float _6835 = (_16150 * _16150) * 0.125;\n \t        float _19569 = 1.0 - _6835;\n-\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _21712).xyz;\n+\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _12320).xyz;\n \t        _9716 = PerViewLightingConstantBufferGpu_t._m9.xyz + (vec3(_11797).xyz * _16808);\n \t        _24878 = (((_22995 + ((vec3(1.0) - _22995) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * ((_24198 * _24198) / ((4.0 * ((_11797 * _19569) + _6835)) * ((max(0.0, dot(_19012, _21889)) * _19569) + _6835)))).xyz * _11797).xyz * _16808;\n \t    }\n@@ -1175,7 +1186,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    vec3 _12504;\n+\t                    vec3 _12505;\n \t                    if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)\n \t                    {\n \t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);\n@@ -1191,7 +1202,7 @@ PS\n \t                        vec3 _20491 = _14081;\n \t                        _20491.x = _20564.x;\n \t                        _20491.y = _20564.y;\n-\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;\n+\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -1200,9 +1211,9 @@ PS\n \t                        vec3 _20490 = _13791;\n \t                        _20490.x = _20563.x;\n \t                        _20490.y = _20563.y;\n-\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;\n+\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12504;\n+\t                    _21548 = _12505;\n \t                }\n \t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n@@ -1230,8 +1241,8 @@ PS\n \t                    do\n \t                    {\n \t                        float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                        vec2 _14615 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;\n-\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));\n+\t                        vec2 _14616 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;\n+\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));\n \t                        bool _12888;\n \t                        if (_15312 == 0.0)\n \t                        {\n@@ -1246,7 +1257,7 @@ PS\n \t                            _24972 = _15312;\n \t                            break;\n \t                        }\n-\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14615, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n+\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14616, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n \t                        break;\n \t                    } while(false);\n \t                    vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12608]._m12);"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_beachfoam.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -229,7 +229,7 @@ PS\n \t};\n \t\n \tTexture2D<float4> g_tColor : register(t51, space1);\n-\tSamplerState g_sUserConfigAllowGlobalMipBias : register(s20, space1);\n+\tSamplerState g_sUserConfigAllowGlobalMipBias : register(s21, space1);\n \t\n \tstatic float4 input_2;\n \tstatic float4 output_0;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_black_unlit.slang",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -228,7 +228,7 @@ PS\n \t[[layer_constant]] ExternalDescriptorSet g_lightBinnerGpuSet < Source(ExternalDescSet); Attribute(\"g_lightBinnerGpuSet\"); >;\n \tint g_nToolsVisMode < Attribute(\"g_nToolsVisMode\"); UiType(Slider); >;\n \tTextureCube g_tFogCubeTexture < Attribute(\"CubemapFogTexture\"); SrgbRead(true); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n \t// Fog\n@@ -262,7 +262,7 @@ PS\n \t};\n \t\n \tTextureCube<float4> g_tFogCubeTexture : register(t42, space1);\n-\tSamplerState g_sTrilinearClamp : register(s17, space1);\n+\tSamplerState g_sTrilinearClamp : register(s18, space1);\n \t\n \tstatic float3 input_0;\n \tstatic float4 output_0;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_character.slang",
          "status": "modified",
          "additions": 652,
          "deletions": 458,
          "changes": 1110,
          "patch": null
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_complex.slang",
          "status": "modified",
          "additions": 110,
          "deletions": 99,
          "changes": 209,
          "patch": "@@ -426,7 +426,7 @@ PS\n \tTexture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;\n \tTexture2D g_tTransmissiveColor < Channel(RGB, Box(TextureTransmissiveColor), Srgb); OutputFormat(BC7); SrgbRead(true); >;\n \tfloat4 g_vDetailNormalStrengthOffsetScale < UiType(VectorText); Expression(float4(0,0,1-g_flDetailNormalStrength,g_flDetailNormalStrength)); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat3 g_vSelfIllumTintScaled < UiType(VectorText); Expression(pow(2,g_flSelfIllumBrightness).x*g_flSelfIllumScale.x*SrgbGammaToLinear(g_vSelfIllumTint.xyz)); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n@@ -513,17 +513,17 @@ PS\n \t// Source 2 Viewer - https://valveresourceformat.github.io\n \t// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup\n \t\n-\tstruct _2872\n+\tstruct _113\n \t{\n \t    float4 _m0[3];\n \t};\n \t\n-\tstruct _71\n+\tstruct _323\n \t{\n \t    float4 _m0[4];\n \t};\n \t\n-\tstruct _2139\n+\tstruct _244\n \t{\n \t    column_major float4x4 _m0[4];\n \t};\n@@ -562,20 +562,20 @@ PS\n \tcbuffer _Globals_ : register(b0, space1)\n \t{\n \t    uint _Globals_1_g_tColor : packoffset(c0);\n-\t    uint _Globals_1_g_sTrilinearWrap : packoffset(c3.w);\n-\t    uint _Globals_1_g_sTrilinearClamp : packoffset(c4);\n-\t    uint _Globals_1_g_sPointClamp : packoffset(c4.y);\n-\t    uint _Globals_1_g_sUserConfig : packoffset(c5);\n-\t    uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c5.y);\n-\t    uint _Globals_1_g_sCookieSampler : packoffset(c5.w);\n-\t    uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c6);\n-\t    int _Globals_1_g_bFogEnabled : packoffset(c6.z);\n-\t    int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c6.w);\n-\t    int _Globals_1_g_bRenderBackfaceNormals : packoffset(c7);\n-\t    float _Globals_1_g_flReflectance : packoffset(c7.y);\n-\t    uint _Globals_1_g_tNormal : packoffset(c11);\n-\t    uint _Globals_1_g_tAmbientOcclusion : packoffset(c11.w);\n-\t    float _Globals_1_g_flMetalness : packoffset(c12);\n+\t    uint _Globals_1_g_sTrilinearWrap : packoffset(c4);\n+\t    uint _Globals_1_g_sTrilinearClamp : packoffset(c4.y);\n+\t    uint _Globals_1_g_sPointClamp : packoffset(c4.z);\n+\t    uint _Globals_1_g_sUserConfig : packoffset(c5.y);\n+\t    uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c5.z);\n+\t    uint _Globals_1_g_sCookieSampler : packoffset(c6);\n+\t    uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c6.y);\n+\t    int _Globals_1_g_bFogEnabled : packoffset(c6.w);\n+\t    int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c7);\n+\t    int _Globals_1_g_bRenderBackfaceNormals : packoffset(c7.y);\n+\t    float _Globals_1_g_flReflectance : packoffset(c7.z);\n+\t    uint _Globals_1_g_tNormal : packoffset(c11.y);\n+\t    uint _Globals_1_g_tAmbientOcclusion : packoffset(c12);\n+\t    float _Globals_1_g_flMetalness : packoffset(c12.y);\n \t};\n \t\n \tcbuffer PerViewConstantBufferCsgo_t : register(b3, space1)\n@@ -605,8 +605,8 @@ PS\n \t\n \tcbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)\n \t{\n-\t    _2872 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);\n-\t    _71 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);\n+\t    _113 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);\n+\t    _323 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c16);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c17);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c18);\n@@ -623,8 +623,8 @@ PS\n \t    float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.y);\n \t    float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.z);\n \t    float PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1955.w);\n-\t    _2139 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);\n-\t    _71 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);\n+\t    _244 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);\n+\t    _323 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);\n \t    uint PerViewLightingConstantBufferGpu_t_1_m20 : packoffset(c1996);\n \t    uint PerViewLightingConstantBufferGpu_t_1_m21 : packoffset(c1996.y);\n \t};\n@@ -810,99 +810,110 @@ PS\n \t    {\n \t        _21710 = 1.0f;\n \t    }\n-\t    float _21711;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735);\n+\t    float _12320;\n \t    [branch]\n-\t    if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)\n+\t    if (_8634 > 0.0f)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13136;\n-\t        float3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n+\t        float _12503;\n+\t        [branch]\n+\t        if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)\n \t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))\n-\t            {\n-\t                _13136 = 1.0f;\n-\t                _14975 = 0.0f.xxx;\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_0.xyz, 1.0f));\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13136;\n+\t            float3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                float3 _19470 = float3(_12779, _18322.yz);\n-\t                float2 _24804 = _19470.xy;\n-\t                float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);\n-\t                float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;\n-\t                float3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13136 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20488;\n-\t                _10191 = _13039;\n-\t                break;\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))\n+\t                {\n+\t                    _13136 = 1.0f;\n+\t                    _14975 = 0.0f.xxx;\n+\t                    _10191 = -1;\n+\t                    break;\n+\t                }\n+\t                float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_0.xyz, 1.0f));\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])\n+\t                {\n+\t                    float3 _19470 = float3(_12779, _18322.yz);\n+\t                    float2 _24804 = _19470.xy;\n+\t                    float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);\n+\t                    float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;\n+\t                    float3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13136 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20488;\n+\t                    _10191 = _13039;\n+\t                    break;\n+\t                }\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n \t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n-\t        {\n-\t            float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12));\n-\t            float _12501;\n-\t            [branch]\n-\t            if (_13136 < 1.0f)\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))\n+\t                float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12));\n+\t                float _12501;\n+\t                [branch]\n+\t                if (_13136 < 1.0f)\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_0.xyz, 1.0f));\n-\t                    float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;\n-\t                    float3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12));\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_0.xyz, 1.0f));\n+\t                        float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;\n+\t                        float3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12));\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0f;\n+\t                    }\n+\t                    _12501 = lerp(_7934, _18270, _13136);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0f;\n+\t                    _12501 = _18270;\n \t                }\n-\t                _12501 = lerp(_7934, _18270, _13136);\n+\t                _19363 = _12501;\n \t            }\n \t            else\n \t            {\n-\t                _12501 = _18270;\n+\t                _19363 = 1.0f;\n \t            }\n-\t            _19363 = _12501;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0f;\n-\t        }\n-\t        float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));\n-\t        float _12502;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);\n+\t            float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));\n+\t            float _12502;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12502 = _13279;\n+\t            }\n+\t            _12503 = _12502;\n \t        }\n \t        else\n \t        {\n-\t            _12502 = _13279;\n+\t            _12503 = 1.0f;\n \t        }\n-\t        _21711 = _12502;\n+\t        _12320 = _12503;\n \t    }\n \t    else\n \t    {\n-\t        _21711 = 1.0f;\n+\t        _12320 = 1.0f;\n \t    }\n \t    float3 _9716;\n \t    float3 _24878;\n \t    [branch]\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735) * _21711) > 0.0f)\n+\t    if ((_8634 * _12320) > 0.0f)\n \t    {\n \t        bool3 _19899 = all(bool3(_17892.x == 1.0f.xxx.x, _17892.y == 1.0f.xxx.y, _17892.z == 1.0f.xxx.z)).xxx;\n \t        float _11797 = max(0.0f, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t_1_m9.xyz));\n@@ -914,7 +925,7 @@ PS\n \t        float _25211 = _9850 * _9850;\n \t        float _19095 = _25211 * _25211;\n \t        float _15346 = ((_12386 * _12386) * (_19095 - 1.0f)) + 1.0f;\n-\t        float3 _16808 = (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _21711).xyz;\n+\t        float3 _16808 = (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _12320).xyz;\n \t        _9716 = ((_12351.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0f) + 2.0f)))).xyz * _11797).xyz * _16808;\n \t        _24878 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (_11797.xxx.xyz * _16808);\n \t    }\n@@ -1117,7 +1128,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    float3 _12503;\n+\t                    float3 _12504;\n \t                    if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)\n \t                    {\n \t                        float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);\n@@ -1133,7 +1144,7 @@ PS\n \t                        float3 _20492 = _14081;\n \t                        _20492.x = _20564.x;\n \t                        _20492.y = _20564.y;\n-\t                        _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20492.xyz, 0.0f).xyz;\n+\t                        _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20492.xyz, 0.0f).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -1142,9 +1153,9 @@ PS\n \t                        float3 _20491 = _13791;\n \t                        _20491.x = _20563.x;\n \t                        _20491.y = _20563.y;\n-\t                        _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20491.xyz, 0.0f).xyz;\n+\t                        _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20491.xyz, 0.0f).xyz;\n \t                    }\n-\t                    _21548 = _12503;\n+\t                    _21548 = _12504;\n \t                }\n \t                if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))\n \t                {\n@@ -1190,9 +1201,9 @@ PS\n \t                float _19211 = max(0.0f, dot(_11179.xyz, _12282));\n \t                float _9851 = _9841.x;\n \t                float _25212 = _9851 * _9851;\n-\t                float _19097 = _25212 * _25212;\n-\t                float _15348 = ((_12387 * _12387) * (_19097 - 1.0f)) + 1.0f;\n-\t                _13212 = _13138.xyz + (((_12351.xyz * (_19097 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0f) + 2.0f)))).xyz * _11798).xyz * _22671.xyz);\n+\t                float _19096 = _25212 * _25212;\n+\t                float _15348 = ((_12387 * _12387) * (_19096 - 1.0f)) + 1.0f;\n+\t                _13212 = _13138.xyz + (((_12351.xyz * (_19096 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0f) + 2.0f)))).xyz * _11798).xyz * _22671.xyz);\n \t                _15670 = _16325.xyz + (_11798.xxx.xyz * _22671.xyz);\n \t                break;\n \t            } while(false);\n@@ -1827,8 +1838,8 @@ RTX\n \tvoid main()\n \t{\n \t    uint _452 = g_instanceBuffer._member0[uint(gl_InstanceID)].nMaterialData;\n-\t    uint _497 = g_MaterialData_1._member0[(_452 + 28u) / 4u];\n-\t    uint _496 = g_MaterialData_1._member0[(_452 + 32u) / 4u];\n+\t    uint _497 = g_MaterialData_1._member0[(_452 + 32u) / 4u];\n+\t    uint _496 = g_MaterialData_1._member0[(_452 + 36u) / 4u];\n \t    vec4 _495 = vec4(g_MaterialData_3._member0[(_452 + 144u) / 4u], g_MaterialData_3._member0[(_452 + 148u) / 4u], g_MaterialData_3._member0[(_452 + 152u) / 4u], g_MaterialData_3._member0[(_452 + 156u) / 4u]);\n \t    vec4 _494 = vec4(g_MaterialData_3._member0[(_452 + 160u) / 4u], g_MaterialData_3._member0[(_452 + 164u) / 4u], g_MaterialData_3._member0[(_452 + 168u) / 4u], g_MaterialData_3._member0[(_452 + 172u) / 4u]);\n \t    vec2 _493 = vec2(g_MaterialData_3._member0[(_452 + 176u) / 4u], g_MaterialData_3._member0[(_452 + 180u) / 4u]);"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_customglove.slang",
          "status": "modified",
          "additions": 25,
          "deletions": 25,
          "changes": 50,
          "patch": "@@ -349,7 +349,7 @@ PS\n \tCreateInputTexture2D(TextureGrime1, Srgb, 8, \"\", \"_color\", \"Material1/Grime,6/1\", Default4(0.5, 0.5, 0.5, 0));\n \tCreateInputTexture2D(TextureSubstrateAlbedo1, Srgb, 8, \"\", \"_color\", \"Material1/Substrate Layer,2/1\", Default4(1, 1, 1, 0));\n \tCreateInputTexture2D(TextureSurfaceAlbedo1, Srgb, 8, \"\", \"_color\", \"Material1/Surface Layer,1/1\", Default4(1, 1, 1, 0));\n-\tfloat2 g_vDamageLevels1 < Default(0); UiType(VectorText); UiGroup(\"Material1,1/Detail Damage/1\"); >;\n+\tfloat2 g_vDamageLevels1 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material1,1/Detail Damage/1\"); >;\n \tCreateInputTexture2D(TextureSubstrateTintMask1, Linear, 8, \"\", \"_tintmask\", \"Material1/Substrate Layer/2\", Default4(1, 1, 1, 0));\n \tCreateInputTexture2D(TextureSurfaceTintMask1, Linear, 8, \"\", \"_tintmask\", \"Material1/Surface Layer/2\", Default4(1, 1, 1, 0));\n \tfloat g_fCurvaturePower1 < Default(1); Range(0.5, 6); UiType(Slider); UiGroup(\"Material1/Detail Damage/2\"); >;\n@@ -373,16 +373,16 @@ PS\n \tCreateInputTexture2D(TextureDetailNormal1, Linear, 8, \"\", \"_detailnormal\", \"Material1/Normal/10\", Default4(0.5, 0.5, 0.5, 0.5));\n \tCreateInputTexture2D(TextureGrunge1, Linear, 8, \"\", \"_grunge\", \"Material1/Grunge/10\", Default4(0.5, 0.5, 0.5, 0.5));\n \tfloat g_fDamageMetalness1 < UiType(Slider); UiGroup(\"Material1/Detail Damage/10\"); >;\n-\tfloat2 g_vSurfaceGrimeMinMax1 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material1/Grime/10\"); >;\n+\tfloat2 g_vSurfaceGrimeMinMax1 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material1/Grime/10\"); >;\n \tCreateInputTexture2D(TextureDamageNormal1, Linear, 8, \"\", \"_damagenormal\", \"Material1/Normal/11\", Default4(0.5, 0.5, 0.5, 0.5));\n \tfloat g_fDamageCloth1 < UiType(Slider); UiGroup(\"Material1/Detail Damage/11\"); UiVisibility(F_CLOTH_SHADING); >;\n \tfloat g_fDamageHeightBlendSoftness1 < Default(0.01); UiType(Slider); UiGroup(\"Material1/Damage Height/11\"); Expression(max(this,.001)); >;\n \tfloat g_fDetailGrunge1 < Range(0, 2); UiType(Slider); UiGroup(\"Material1/Grunge/11\"); >;\n \tfloat g_fDetailScale1 < Default(4); Range(-10, 10); UiType(Slider); UiGroup(\"Material1/Detail/11\"); >;\n-\tfloat2 g_vSubstrateGrimeMinMax1 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material1/Grime/11\"); >;\n+\tfloat2 g_vSubstrateGrimeMinMax1 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material1/Grime/11\"); >;\n \tfloat g_fDetailNormalContrast1 < Default(1); Range(0, 8); UiType(Slider); UiGroup(\"Material1/Normal/12\"); >;\n \tfloat g_fDetailRoughnessContrast1 < Range(-1, 1); UiType(Slider); UiGroup(\"Material1/Detail/12\"); >;\n-\tfloat2 g_vDamageMinMax1 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material1/Damage Height/12\"); >;\n+\tfloat2 g_vDamageMinMax1 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material1/Damage Height/12\"); >;\n \tfloat g_fDetailRoughnessBrightness1 < Default(1); Range(0, 10); UiType(Slider); UiGroup(\"Material1/Detail/13\"); >;\n \tfloat g_fWearBleaching1 < Default(0.25); Range(0, 3); UiType(Slider); UiGroup(\"Material1/Wear Edge/13\"); >;\n \tfloat g_fDetailAnisotropyScalar1 < Range(-1, 1); UiType(Slider); UiGroup(\"Material1/Detail/14\"); >;\n@@ -429,12 +429,12 @@ PS\n \tCreateInputTexture2D(TextureSubstrateMetalness1, Srgb, 8, \"\", \"_metal\", \"Material1/Substrate Layer/40\", Default4(0, 0, 0, 0));\n \tCreateInputTexture2D(TextureSurfaceMetalness1, Linear, 8, \"\", \"_metal\", \"Material1/Surface Layer/40\", Default4(0, 0, 0, 0));\n \tfloat g_fDamageBevelRoughnessBrightness1 < Default(1); Range(0, 2); UiType(Slider); UiGroup(\"Material1/Damage Bevel/40\"); >;\n-\tfloat2 g_vSurfaceBurnishingMinMax1 < Default(0); UiType(VectorText); UiGroup(\"Material1/Burnishing/40\"); >;\n+\tfloat2 g_vSurfaceBurnishingMinMax1 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material1/Burnishing/40\"); >;\n \tCreateInputTexture2D(TextureSubstrateClothMask1, Srgb, 8, \"\", \"_mask\", \"Material1/Substrate Layer/41\", \"materials/default/default_black_mask.tga\");\n \tCreateInputTexture2D(TextureSurfaceClothMask1, Linear, 8, \"\", \"_mask\", \"Material1/Surface Layer/41\", \"materials/default/default_black_mask.tga\");\n \tfloat g_fDamageBevelAnisotropy1 < UiType(Slider); UiGroup(\"Material1/Damage Bevel/41\"); >;\n \tfloat g_fDamageNormalEdgeWidth1 < Default(1); Range(0, 8); UiType(Slider); UiGroup(\"Material1,1/Wear Edge/41\"); >;\n-\tfloat2 g_vSubstrateBurnishingMinMax1 < Default(0); UiType(VectorText); UiGroup(\"Material1/Burnishing/41\"); >;\n+\tfloat2 g_vSubstrateBurnishingMinMax1 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material1/Burnishing/41\"); >;\n \tfloat g_fDamageEdgeRoughness1 < Default(0.8); UiType(Slider); UiGroup(\"Material1/Wear Edge/42\"); >;\n \tfloat g_fDamageEdgeMetalness1 < UiType(Slider); UiGroup(\"Material1/Wear Edge/43\"); >;\n \tfloat g_fDamageBevelMetalness1 < UiType(Slider); UiGroup(\"Material1/Damage Bevel/50\"); >;\n@@ -447,7 +447,7 @@ PS\n \tCreateInputTexture2D(TextureGrime2, Srgb, 8, \"\", \"_color\", \"Material2/Grime,6/1\", Default4(0.5, 0.5, 0.5, 0));\n \tCreateInputTexture2D(TextureSubstrateAlbedo2, Srgb, 8, \"\", \"_color\", \"Material2/Substrate Layer,2/1\", Default4(1, 1, 1, 0));\n \tCreateInputTexture2D(TextureSurfaceAlbedo2, Srgb, 8, \"\", \"_color\", \"Material2/Surface Layer,1/1\", Default4(1, 1, 1, 0));\n-\tfloat2 g_vDamageLevels2 < Default(0); UiType(VectorText); UiGroup(\"Material2/Detail Damage/1\"); >;\n+\tfloat2 g_vDamageLevels2 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material2/Detail Damage/1\"); >;\n \tCreateInputTexture2D(TextureSubstrateTintMask2, Linear, 8, \"\", \"_tintmask\", \"Material2/Substrate Layer/2\", Default4(1, 1, 1, 0));\n \tCreateInputTexture2D(TextureSurfaceTintMask2, Linear, 8, \"\", \"_tintmask\", \"Material2/Surface Layer/2\", Default4(1, 1, 1, 0));\n \tfloat g_fCurvaturePower2 < Default(1); Range(0.5, 6); UiType(Slider); UiGroup(\"Material2/Detail Damage/2\"); >;\n@@ -471,16 +471,16 @@ PS\n \tCreateInputTexture2D(TextureDetailNormal2, Linear, 8, \"\", \"_detailnormal\", \"Material2/Normal/10\", Default4(0.5, 0.5, 0.5, 0.5));\n \tCreateInputTexture2D(TextureGrunge2, Linear, 8, \"\", \"_grunge\", \"Material2/Grunge/10\", Default4(0.5, 0.5, 0.5, 0.5));\n \tfloat g_fDamageMetalness2 < UiType(Slider); UiGroup(\"Material2/Detail Damage/10\"); >;\n-\tfloat2 g_vSurfaceGrimeMinMax2 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material2/Grime/10\"); >;\n+\tfloat2 g_vSurfaceGrimeMinMax2 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material2/Grime/10\"); >;\n \tCreateInputTexture2D(TextureDamageNormal2, Linear, 8, \"\", \"_damagenormal\", \"Material2/Normal/11\", Default4(0.5, 0.5, 0.5, 0.5));\n \tfloat g_fDamageCloth2 < UiType(Slider); UiGroup(\"Material2/Detail Damage/11\"); UiVisibility(F_CLOTH_SHADING); >;\n \tfloat g_fDamageHeightBlendSoftness2 < Default(0.01); UiType(Slider); UiGroup(\"Material2/Damage Height/11\"); Expression(max(this,.001)); >;\n \tfloat g_fDetailGrunge2 < Range(0, 2); UiType(Slider); UiGroup(\"Material2/Grunge/11\"); >;\n \tfloat g_fDetailScale2 < Default(4); Range(-10, 10); UiType(Slider); UiGroup(\"Material2/Detail/11\"); >;\n-\tfloat2 g_vSubstrateGrimeMinMax2 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material2/Grime/11\"); >;\n+\tfloat2 g_vSubstrateGrimeMinMax2 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material2/Grime/11\"); >;\n \tfloat g_fDetailNormalContrast2 < Default(1); Range(0, 8); UiType(Slider); UiGroup(\"Material2/Normal/12\"); >;\n \tfloat g_fDetailRoughnessContrast2 < Range(-1, 1); UiType(Slider); UiGroup(\"Material2/Detail/12\"); >;\n-\tfloat2 g_vDamageMinMax2 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material2/Damage Height/12\"); >;\n+\tfloat2 g_vDamageMinMax2 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material2/Damage Height/12\"); >;\n \tfloat g_fDetailRoughnessBrightness2 < Default(1); Range(0, 10); UiType(Slider); UiGroup(\"Material2/Detail/13\"); >;\n \tfloat g_fWearBleaching2 < Default(0.25); Range(0, 3); UiType(Slider); UiGroup(\"Material2/Grunge/13\"); >;\n \tfloat g_fDetailAnisotropyScalar2 < Range(-1, 1); UiType(Slider); UiGroup(\"Material2/Detail/14\"); >;\n@@ -521,11 +521,11 @@ PS\n \tCreateInputTexture2D(TextureSubstrateMetalness2, Srgb, 8, \"\", \"_metal\", \"Material2/Substrate Layer/40\", Default4(0, 0, 0, 0));\n \tCreateInputTexture2D(TextureSurfaceMetalness2, Linear, 8, \"\", \"_metal\", \"Material2/Surface Layer/40\", Default4(0, 0, 0, 0));\n \tfloat g_fDamageBevelRoughnessBrightness2 < Default(1); Range(0, 2); UiType(Slider); UiGroup(\"Material2/Damage Bevel/40\"); >;\n-\tfloat2 g_vSurfaceBurnishingMinMax2 < Default(0); UiType(VectorText); UiGroup(\"Material2/Burnishing/40\"); >;\n+\tfloat2 g_vSurfaceBurnishingMinMax2 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material2/Burnishing/40\"); >;\n \tCreateInputTexture2D(TextureSubstrateClothMask2, Srgb, 8, \"\", \"_mask\", \"Material2/Substrate Layer/41\", \"materials/default/default_black_mask.tga\");\n \tCreateInputTexture2D(TextureSurfaceClothMask2, Linear, 8, \"\", \"_mask\", \"Material2/Surface Layer/41\", \"materials/default/default_black_mask.tga\");\n \tfloat g_fDamageBevelAnisotropy2 < UiType(Slider); UiGroup(\"Material2/Damage Bevel/41\"); >;\n-\tfloat2 g_vSubstrateBurnishingMinMax2 < Default(0); UiType(VectorText); UiGroup(\"Material2/Burnishing/41\"); >;\n+\tfloat2 g_vSubstrateBurnishingMinMax2 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material2/Burnishing/41\"); >;\n \tfloat g_fDamageBevelMetalness2 < UiType(Slider); UiGroup(\"Material2/Damage Bevel/50\"); >;\n \tfloat g_fDamageBevelCloth2 < UiType(Slider); UiGroup(\"Material2/Damage Bevel/60\"); >;\n \tbool g_bDamageBevelBlendToSubstrate2 < UiType(CheckBox); UiGroup(\"Material2/Damage Bevel/80\"); >;\n@@ -536,7 +536,7 @@ PS\n \tCreateInputTexture2D(TextureGrime3, Srgb, 8, \"\", \"_color\", \"Material3/Grime,6/1\", Default4(0.5, 0.5, 0.5, 0));\n \tCreateInputTexture2D(TextureSubstrateAlbedo3, Srgb, 8, \"\", \"_color\", \"Material3/Substrate Layer,2/1\", Default4(1, 1, 1, 0));\n \tCreateInputTexture2D(TextureSurfaceAlbedo3, Srgb, 8, \"\", \"_color\", \"Material3/Surface Layer,1/1\", Default4(1, 1, 1, 0));\n-\tfloat2 g_vDamageLevels3 < Default(0); UiType(VectorText); UiGroup(\"Material3/Detail Damage/1\"); >;\n+\tfloat2 g_vDamageLevels3 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material3/Detail Damage/1\"); >;\n \tCreateInputTexture2D(TextureSubstrateTintMask3, Linear, 8, \"\", \"_tintmask\", \"Material3/Substrate Layer/2\", Default4(1, 1, 1, 0));\n \tCreateInputTexture2D(TextureSurfaceTintMask3, Linear, 8, \"\", \"_tintmask\", \"Material3/Surface Layer/2\", Default4(1, 1, 1, 0));\n \tfloat g_fCurvaturePower3 < Default(1); Range(0.5, 6); UiType(Slider); UiGroup(\"Material3/Detail Damage/2\"); >;\n@@ -560,16 +560,16 @@ PS\n \tCreateInputTexture2D(TextureDetailNormal3, Linear, 8, \"\", \"_detailnormal\", \"Material3/Normal/10\", Default4(0.5, 0.5, 0.5, 0.5));\n \tCreateInputTexture2D(TextureGrunge3, Linear, 8, \"\", \"_grunge\", \"Material3/Grunge/10\", Default4(0.5, 0.5, 0.5, 0.5));\n \tfloat g_fDamageMetalness3 < UiType(Slider); UiGroup(\"Material3/Detail Damage/10\"); >;\n-\tfloat2 g_vSurfaceGrimeMinMax3 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material3/Grime/10\"); >;\n+\tfloat2 g_vSurfaceGrimeMinMax3 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material3/Grime/10\"); >;\n \tCreateInputTexture2D(TextureDamageNormal3, Linear, 8, \"\", \"_damagenormal\", \"Material3/Normal/11\", Default4(0.5, 0.5, 0.5, 0.5));\n \tfloat g_fDamageCloth3 < UiType(Slider); UiGroup(\"Material3/Detail Damage/11\"); UiVisibility(F_CLOTH_SHADING); >;\n \tfloat g_fDamageHeightBlendSoftness3 < Default(0.01); UiType(Slider); UiGroup(\"Material3/Damage Height/11\"); Expression(max(this,.001)); >;\n \tfloat g_fDetailGrunge3 < Range(0, 2); UiType(Slider); UiGroup(\"Material3/Grunge/11\"); >;\n \tfloat g_fDetailScale3 < Default(4); Range(-10, 10); UiType(Slider); UiGroup(\"Material3/Detail/11\"); >;\n-\tfloat2 g_vSubstrateGrimeMinMax3 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material3/Grime/11\"); >;\n+\tfloat2 g_vSubstrateGrimeMinMax3 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material3/Grime/11\"); >;\n \tfloat g_fDetailNormalContrast3 < Default(1); Range(0, 8); UiType(Slider); UiGroup(\"Material3/Normal/12\"); >;\n \tfloat g_fDetailRoughnessContrast3 < Range(-1, 1); UiType(Slider); UiGroup(\"Material3/Detail/12\"); >;\n-\tfloat2 g_vDamageMinMax3 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material3/Damage Height/12\"); >;\n+\tfloat2 g_vDamageMinMax3 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material3/Damage Height/12\"); >;\n \tfloat g_fDetailRoughnessBrightness3 < Default(1); Range(0, 10); UiType(Slider); UiGroup(\"Material3/Detail/13\"); >;\n \tfloat g_fWearBleaching3 < Default(0.25); Range(0, 3); UiType(Slider); UiGroup(\"Material3/Wear Edge/13\"); >;\n \tfloat g_fDetailAnisotropyScalar3 < Range(-1, 1); UiType(Slider); UiGroup(\"Material3/Detail/14\"); >;\n@@ -611,11 +611,11 @@ PS\n \tCreateInputTexture2D(TextureSubstrateMetalness3, Srgb, 8, \"\", \"_metal\", \"Material3/Substrate Layer/40\", Default4(0, 0, 0, 0));\n \tCreateInputTexture2D(TextureSurfaceMetalness3, Linear, 8, \"\", \"_metal\", \"Material3/Surface Layer/40\", Default4(0, 0, 0, 0));\n \tfloat g_fDamageBevelRoughnessBrightness3 < Default(1); Range(0, 2); UiType(Slider); UiGroup(\"Material3/Damage Bevel/40\"); >;\n-\tfloat2 g_vSurfaceBurnishingMinMax3 < Default(0); UiType(VectorText); UiGroup(\"Material3/Burnishing/40\"); >;\n+\tfloat2 g_vSurfaceBurnishingMinMax3 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material3/Burnishing/40\"); >;\n \tCreateInputTexture2D(TextureSubstrateClothMask3, Srgb, 8, \"\", \"_mask\", \"Material3/Substrate Layer/41\", \"materials/default/default_black_mask.tga\");\n \tCreateInputTexture2D(TextureSurfaceClothMask3, Linear, 8, \"\", \"_mask\", \"Material3/Surface Layer/41\", \"materials/default/default_black_mask.tga\");\n \tfloat g_fDamageBevelAnisotropy3 < UiType(Slider); UiGroup(\"Material3/Damage Bevel/41\"); >;\n-\tfloat2 g_vSubstrateBurnishingMinMax3 < Default(0); UiType(VectorText); UiGroup(\"Material3/Burnishing/41\"); >;\n+\tfloat2 g_vSubstrateBurnishingMinMax3 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material3/Burnishing/41\"); >;\n \tfloat g_fDamageBevelMetalness3 < UiType(Slider); UiGroup(\"Material3/Damage Bevel/50\"); >;\n \tfloat g_fDamageBevelCloth3 < UiType(Slider); UiGroup(\"Material3/Damage Bevel/60\"); >;\n \tbool g_bDamageBevelBlendToSubstrate3 < UiType(CheckBox); UiGroup(\"Material3/Damage Bevel/80\"); >;\n@@ -626,7 +626,7 @@ PS\n \tCreateInputTexture2D(TextureGrime4, Srgb, 8, \"\", \"_color\", \"Material4/Grime,6/1\", Default4(0.5, 0.5, 0.5, 0));\n \tCreateInputTexture2D(TextureSubstrateAlbedo4, Srgb, 8, \"\", \"_color\", \"Material4/Substrate Layer,2/1\", Default4(1, 1, 1, 0));\n \tCreateInputTexture2D(TextureSurfaceAlbedo4, Srgb, 8, \"\", \"_color\", \"Material4/Surface Layer/1\", Default4(1, 1, 1, 0));\n-\tfloat2 g_vDamageLevels4 < Default(0); UiType(VectorText); UiGroup(\"Material4/Detail Damage/1\"); >;\n+\tfloat2 g_vDamageLevels4 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material4/Detail Damage/1\"); >;\n \tCreateInputTexture2D(TextureSubstrateTintMask4, Linear, 8, \"\", \"_tintmask\", \"Material4/Substrate Layer/2\", Default4(1, 1, 1, 0));\n \tCreateInputTexture2D(TextureSurfaceTintMask4, Linear, 8, \"\", \"_tintmask\", \"Material4/Surface Layer/2\", Default4(1, 1, 1, 0));\n \tfloat g_fCurvaturePower4 < Default(1); Range(0.5, 6); UiType(Slider); UiGroup(\"Material4/Detail Damage/2\"); >;\n@@ -650,16 +650,16 @@ PS\n \tCreateInputTexture2D(TextureDetailNormal4, Linear, 8, \"\", \"_detailnormal\", \"Material4/Normal/10\", Default4(0.5, 0.5, 0.5, 0.5));\n \tCreateInputTexture2D(TextureGrunge4, Linear, 8, \"\", \"_grunge\", \"Material4/Grunge/10\", Default4(0.5, 0.5, 0.5, 0.5));\n \tfloat g_fDamageMetalness4 < UiType(Slider); UiGroup(\"Material4/Detail Damage/10\"); >;\n-\tfloat2 g_vSurfaceGrimeMinMax4 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material4/Grime/10\"); >;\n+\tfloat2 g_vSurfaceGrimeMinMax4 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material4/Grime/10\"); >;\n \tCreateInputTexture2D(TextureDamageNormal4, Linear, 8, \"\", \"_damagenormal\", \"Material4/Normal/11\", Default4(0.5, 0.5, 0.5, 0.5));\n \tfloat g_fDamageCloth4 < UiType(Slider); UiGroup(\"Material4/Detail Damage/11\"); UiVisibility(F_CLOTH_SHADING); >;\n \tfloat g_fDamageHeightBlendSoftness4 < Default(0.01); UiType(Slider); UiGroup(\"Material4/Damage Height/11\"); Expression(max(this,.001)); >;\n \tfloat g_fDetailGrunge4 < Range(0, 2); UiType(Slider); UiGroup(\"Material4/Grunge/11\"); >;\n \tfloat g_fDetailScale4 < Default(4); Range(-10, 10); UiType(Slider); UiGroup(\"Material4/Detail/11\"); >;\n-\tfloat2 g_vSubstrateGrimeMinMax4 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material4/Grime/11\"); >;\n+\tfloat2 g_vSubstrateGrimeMinMax4 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material4/Grime/11\"); >;\n \tfloat g_fDetailNormalContrast4 < Default(1); Range(0, 8); UiType(Slider); UiGroup(\"Material4/Normal/12\"); >;\n \tfloat g_fDetailRoughnessContrast4 < Range(-1, 1); UiType(Slider); UiGroup(\"Material4/Detail/12\"); >;\n-\tfloat2 g_vDamageMinMax4 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material4/Damage Height/12\"); >;\n+\tfloat2 g_vDamageMinMax4 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material4/Damage Height/12\"); >;\n \tfloat g_fDetailRoughnessBrightness4 < Default(1); Range(0, 10); UiType(Slider); UiGroup(\"Material4/Detail/13\"); >;\n \tfloat g_fWearBleaching4 < Default(0.25); Range(0, 3); UiType(Slider); UiGroup(\"Material4/Wear Edge/13\"); >;\n \tfloat g_fDetailAnisotropyScalar4 < Range(-1, 1); UiType(Slider); UiGroup(\"Material4/Detail/14\"); >;\n@@ -702,11 +702,11 @@ PS\n \tCreateInputTexture2D(TextureSubstrateMetalness4, Srgb, 8, \"\", \"_metal\", \"Material4/Substrate Layer/40\", Default4(0, 0, 0, 0));\n \tCreateInputTexture2D(TextureSurfaceMetalness4, Linear, 8, \"\", \"_metal\", \"Material4/Surface Layer/40\", Default4(0, 0, 0, 0));\n \tfloat g_fDamageBevelRoughnessBrightness4 < Default(1); Range(0, 2); UiType(Slider); UiGroup(\"Material4/Damage Bevel/40\"); >;\n-\tfloat2 g_vSurfaceBurnishingMinMax4 < Default(0); UiType(VectorText); UiGroup(\"Material4/Burnishing/40\"); >;\n+\tfloat2 g_vSurfaceBurnishingMinMax4 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material4/Burnishing/40\"); >;\n \tCreateInputTexture2D(TextureSubstrateClothMask4, Srgb, 8, \"\", \"_mask\", \"Material4/Substrate Layer/41\", \"materials/default/default_black_mask.tga\");\n \tCreateInputTexture2D(TextureSurfaceClothMask4, Linear, 8, \"\", \"_mask\", \"Material4/Surface Layer/41\", \"materials/default/default_black_mask.tga\");\n \tfloat g_fDamageBevelAnisotropy4 < UiType(Slider); UiGroup(\"Material4/Damage Bevel/41\"); >;\n-\tfloat2 g_vSubstrateBurnishingMinMax4 < Default(0); UiType(VectorText); UiGroup(\"Material4/Burnishing/41\"); >;\n+\tfloat2 g_vSubstrateBurnishingMinMax4 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material4/Burnishing/41\"); >;\n \tfloat g_fDamageBevelMetalness4 < UiType(Slider); UiGroup(\"Material4/Damage Bevel/50\"); >;\n \tfloat g_fDamageBevelCloth4 < UiType(Slider); UiGroup(\"Material4/Damage Bevel/60\"); >;\n \tbool g_bDamageBevelBlendToSubstrate4 < UiType(CheckBox); UiGroup(\"Material4/Damage Bevel/80\"); >;\n@@ -969,7 +969,7 @@ PS\n \tlayout(set = 1) uniform _2422 _Globals_;\n \t\n \tlayout(set = 1, binding = 37) uniform texture2D g_tLayerMask;\n-\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;\n+\tlayout(set = 1, binding = 18) uniform sampler g_sTrilinearWrap;\n \tlayout(set = 1, binding = 30) uniform texture2D g_tSurface;\n \tlayout(set = 1, binding = 33) uniform texture2D g_tDetail1;\n \tlayout(set = 1, binding = 39) uniform texture2D g_tDetail2;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_customglove_preview.slang",
          "status": "modified",
          "additions": 191,
          "deletions": 180,
          "changes": 371,
          "patch": "@@ -417,7 +417,7 @@ PS\n \tTexture2D g_tSurfaceProperties3 < Channel(R, Box3(TextureSurfaceAmbientOcclusion3), Linear); Channel(G, Box(TextureSurfaceMetalness3), Linear); Channel(B, Box(TextureSurfaceClothMask3), Linear); Channel(A, Box(TextureSurfaceHeight3), Linear); OutputFormat(BC7); SrgbRead(false); >;\n \tTexture2D g_tSurfaceProperties4 < Channel(R, Box3(TextureSurfaceAmbientOcclusion4), Linear); Channel(G, Box(TextureSurfaceMetalness4), Linear); Channel(B, Box(TextureSurfaceClothMask4), Linear); Channel(A, Box(TextureSurfaceHeight4), Linear); OutputFormat(BC7); SrgbRead(false); >;\n \tTexture2D g_tTintId < Channel(RGB, None(TextureObjectTintId), Linear); OutputFormat(R8_UNORM); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n \t// Material1\n@@ -439,10 +439,10 @@ PS\n \tfloat g_fSurfaceColorSaturation1 < Default(1); Range(0, 4); UiType(Slider); UiGroup(\"Material1/Surface Layer/7\"); >;\n \tfloat g_fSubstrateColorBrightness1 < Default(1); Range(-8, 8); UiType(Slider); UiGroup(\"Material1/Substrate Layer/8\"); >;\n \tfloat g_fSurfaceColorBrightness1 < Default(1); Range(-8, 8); UiType(Slider); UiGroup(\"Material1/Surface Layer/8\"); >;\n-\tfloat2 g_vSurfaceGrimeMinMax1 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material1/Grime/10\"); >;\n+\tfloat2 g_vSurfaceGrimeMinMax1 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material1/Grime/10\"); >;\n \tfloat g_fDamageHeightBlendSoftness1 < Default(0.01); UiType(Slider); UiGroup(\"Material1/Damage Height/11\"); Expression(max(this,.001)); >;\n-\tfloat2 g_vSubstrateGrimeMinMax1 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material1/Grime/11\"); >;\n-\tfloat2 g_vDamageMinMax1 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material1/Damage Height/12\"); >;\n+\tfloat2 g_vSubstrateGrimeMinMax1 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material1/Grime/11\"); >;\n+\tfloat2 g_vDamageMinMax1 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material1/Damage Height/12\"); >;\n \tfloat g_fBurnishingGrime1 < Default(0.5); UiType(Slider); UiGroup(\"Material1/Grime/20\"); >;\n \tfloat3 g_vBurnishingColorTint1 < Default3(1, 1, 1); UiType(Color); UiGroup(\"Material1/Burnishing,5/20\"); >;\n \tfloat3 g_vDamageBevelColorTint1 < Default3(1, 1, 1); UiType(Color); UiGroup(\"Material1/Damage Bevel,4/20\"); >;\n@@ -478,11 +478,11 @@ PS\n \tCreateInputTexture2D(TextureSubstrateMetalness1, Srgb, 8, \"\", \"_metal\", \"Material1/Substrate Layer/40\", Default4(0, 0, 0, 0));\n \tCreateInputTexture2D(TextureSurfaceMetalness1, Linear, 8, \"\", \"_metal\", \"Material1/Surface Layer/40\", Default4(0, 0, 0, 0));\n \tfloat g_fDamageBevelRoughnessBrightness1 < Default(1); Range(0, 2); UiType(Slider); UiGroup(\"Material1/Damage Bevel/40\"); >;\n-\tfloat2 g_vSurfaceBurnishingMinMax1 < Default(0); UiType(VectorText); UiGroup(\"Material1/Burnishing/40\"); >;\n+\tfloat2 g_vSurfaceBurnishingMinMax1 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material1/Burnishing/40\"); >;\n \tCreateInputTexture2D(TextureSubstrateClothMask1, Srgb, 8, \"\", \"_mask\", \"Material1/Substrate Layer/41\", \"materials/default/default_black_mask.tga\");\n \tCreateInputTexture2D(TextureSurfaceClothMask1, Linear, 8, \"\", \"_mask\", \"Material1/Surface Layer/41\", \"materials/default/default_black_mask.tga\");\n \tfloat g_fDamageBevelAnisotropy1 < UiType(Slider); UiGroup(\"Material1/Damage Bevel/41\"); >;\n-\tfloat2 g_vSubstrateBurnishingMinMax1 < Default(0); UiType(VectorText); UiGroup(\"Material1/Burnishing/41\"); >;\n+\tfloat2 g_vSubstrateBurnishingMinMax1 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material1/Burnishing/41\"); >;\n \tfloat g_fDamageBevelMetalness1 < UiType(Slider); UiGroup(\"Material1/Damage Bevel/50\"); >;\n \tfloat g_fDamageBevelCloth1 < UiType(Slider); UiGroup(\"Material1/Damage Bevel/60\"); >;\n \tbool g_bDamageBevelBlendToSubstrate1 < UiType(CheckBox); UiGroup(\"Material1/Damage Bevel/80\"); >;\n@@ -506,10 +506,10 @@ PS\n \tfloat g_fSurfaceColorSaturation2 < Default(1); Range(0, 4); UiType(Slider); UiGroup(\"Material2/Surface Layer/7\"); >;\n \tfloat g_fSubstrateColorBrightness2 < Default(1); Range(-8, 8); UiType(Slider); UiGroup(\"Material2/Substrate Layer/8\"); >;\n \tfloat g_fSurfaceColorBrightness2 < Default(1); Range(-8, 8); UiType(Slider); UiGroup(\"Material2/Surface Layer/8\"); >;\n-\tfloat2 g_vSurfaceGrimeMinMax2 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material2/Grime/10\"); >;\n+\tfloat2 g_vSurfaceGrimeMinMax2 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material2/Grime/10\"); >;\n \tfloat g_fDamageHeightBlendSoftness2 < Default(0.01); UiType(Slider); UiGroup(\"Material2/Damage Height/11\"); Expression(max(this,.001)); >;\n-\tfloat2 g_vSubstrateGrimeMinMax2 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material2/Grime/11\"); >;\n-\tfloat2 g_vDamageMinMax2 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material2/Damage Height/12\"); >;\n+\tfloat2 g_vSubstrateGrimeMinMax2 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material2/Grime/11\"); >;\n+\tfloat2 g_vDamageMinMax2 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material2/Damage Height/12\"); >;\n \tfloat g_fBurnishingGrime2 < Default(0.5); UiType(Slider); UiGroup(\"Material2/Grime/20\"); >;\n \tfloat3 g_vBurnishingColorTint2 < Default3(1, 1, 1); UiType(Color); UiGroup(\"Material2/Burnishing,5/20\"); >;\n \tfloat3 g_vDamageBevelColorTint2 < Default3(1, 1, 1); UiType(Color); UiGroup(\"Material2/Damage Bevel,4/20\"); >;\n@@ -537,11 +537,11 @@ PS\n \tCreateInputTexture2D(TextureSubstrateMetalness2, Srgb, 8, \"\", \"_metal\", \"Material2/Substrate Layer/40\", Default4(0, 0, 0, 0));\n \tCreateInputTexture2D(TextureSurfaceMetalness2, Linear, 8, \"\", \"_metal\", \"Material2/Surface Layer/40\", Default4(0, 0, 0, 0));\n \tfloat g_fDamageBevelRoughnessBrightness2 < Default(1); Range(0, 2); UiType(Slider); UiGroup(\"Material2/Damage Bevel/40\"); >;\n-\tfloat2 g_vSurfaceBurnishingMinMax2 < Default(0); UiType(VectorText); UiGroup(\"Material2/Burnishing/40\"); >;\n+\tfloat2 g_vSurfaceBurnishingMinMax2 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material2/Burnishing/40\"); >;\n \tCreateInputTexture2D(TextureSubstrateClothMask2, Srgb, 8, \"\", \"_mask\", \"Material2/Substrate Layer/41\", \"materials/default/default_black_mask.tga\");\n \tCreateInputTexture2D(TextureSurfaceClothMask2, Linear, 8, \"\", \"_mask\", \"Material2/Surface Layer/41\", \"materials/default/default_black_mask.tga\");\n \tfloat g_fDamageBevelAnisotropy2 < UiType(Slider); UiGroup(\"Material2/Damage Bevel/41\"); >;\n-\tfloat2 g_vSubstrateBurnishingMinMax2 < Default(0); UiType(VectorText); UiGroup(\"Material2/Burnishing/41\"); >;\n+\tfloat2 g_vSubstrateBurnishingMinMax2 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material2/Burnishing/41\"); >;\n \tfloat g_fDamageBevelMetalness2 < UiType(Slider); UiGroup(\"Material2/Damage Bevel/50\"); >;\n \tfloat g_fDamageBevelCloth2 < UiType(Slider); UiGroup(\"Material2/Damage Bevel/60\"); >;\n \tbool g_bDamageBevelBlendToSubstrate2 < UiType(CheckBox); UiGroup(\"Material2/Damage Bevel/80\"); >;\n@@ -565,10 +565,10 @@ PS\n \tfloat g_fSurfaceColorSaturation3 < Default(1); Range(0, 4); UiType(Slider); UiGroup(\"Material3/Surface Layer/7\"); >;\n \tfloat g_fSubstrateColorBrightness3 < Default(1); Range(-8, 8); UiType(Slider); UiGroup(\"Material3/Substrate Layer/8\"); >;\n \tfloat g_fSurfaceColorBrightness3 < Default(1); Range(-8, 8); UiType(Slider); UiGroup(\"Material3/Surface Layer/8\"); >;\n-\tfloat2 g_vSurfaceGrimeMinMax3 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material3/Grime/10\"); >;\n+\tfloat2 g_vSurfaceGrimeMinMax3 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material3/Grime/10\"); >;\n \tfloat g_fDamageHeightBlendSoftness3 < Default(0.01); UiType(Slider); UiGroup(\"Material3/Damage Height/11\"); Expression(max(this,.001)); >;\n-\tfloat2 g_vSubstrateGrimeMinMax3 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material3/Grime/11\"); >;\n-\tfloat2 g_vDamageMinMax3 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material3/Damage Height/12\"); >;\n+\tfloat2 g_vSubstrateGrimeMinMax3 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material3/Grime/11\"); >;\n+\tfloat2 g_vDamageMinMax3 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material3/Damage Height/12\"); >;\n \tfloat g_fBurnishingGrime3 < Default(0.5); UiType(Slider); UiGroup(\"Material3/Grime/20\"); >;\n \tfloat3 g_vBurnishingColorTint3 < Default3(1, 1, 1); UiType(Color); UiGroup(\"Material3/Burnishing,5/20\"); >;\n \tfloat3 g_vDamageBevelColorTint3 < Default3(1, 1, 1); UiType(Color); UiGroup(\"Material3/Damage Bevel,4/20\"); >;\n@@ -596,11 +596,11 @@ PS\n \tCreateInputTexture2D(TextureSubstrateMetalness3, Srgb, 8, \"\", \"_metal\", \"Material3/Substrate Layer/40\", Default4(0, 0, 0, 0));\n \tCreateInputTexture2D(TextureSurfaceMetalness3, Linear, 8, \"\", \"_metal\", \"Material3/Surface Layer/40\", Default4(0, 0, 0, 0));\n \tfloat g_fDamageBevelRoughnessBrightness3 < Default(1); Range(0, 2); UiType(Slider); UiGroup(\"Material3/Damage Bevel/40\"); >;\n-\tfloat2 g_vSurfaceBurnishingMinMax3 < Default(0); UiType(VectorText); UiGroup(\"Material3/Burnishing/40\"); >;\n+\tfloat2 g_vSurfaceBurnishingMinMax3 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material3/Burnishing/40\"); >;\n \tCreateInputTexture2D(TextureSubstrateClothMask3, Srgb, 8, \"\", \"_mask\", \"Material3/Substrate Layer/41\", \"materials/default/default_black_mask.tga\");\n \tCreateInputTexture2D(TextureSurfaceClothMask3, Linear, 8, \"\", \"_mask\", \"Material3/Surface Layer/41\", \"materials/default/default_black_mask.tga\");\n \tfloat g_fDamageBevelAnisotropy3 < UiType(Slider); UiGroup(\"Material3/Damage Bevel/41\"); >;\n-\tfloat2 g_vSubstrateBurnishingMinMax3 < Default(0); UiType(VectorText); UiGroup(\"Material3/Burnishing/41\"); >;\n+\tfloat2 g_vSubstrateBurnishingMinMax3 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material3/Burnishing/41\"); >;\n \tfloat g_fDamageBevelMetalness3 < UiType(Slider); UiGroup(\"Material3/Damage Bevel/50\"); >;\n \tfloat g_fDamageBevelCloth3 < UiType(Slider); UiGroup(\"Material3/Damage Bevel/60\"); >;\n \tbool g_bDamageBevelBlendToSubstrate3 < UiType(CheckBox); UiGroup(\"Material3/Damage Bevel/80\"); >;\n@@ -624,10 +624,10 @@ PS\n \tfloat g_fSurfaceColorSaturation4 < Default(1); Range(0, 4); UiType(Slider); UiGroup(\"Material4/Surface Layer/7\"); >;\n \tfloat g_fSubstrateColorBrightness4 < Default(1); Range(-8, 8); UiType(Slider); UiGroup(\"Material4/Substrate Layer/8\"); >;\n \tfloat g_fSurfaceColorBrightness4 < Default(1); Range(-8, 8); UiType(Slider); UiGroup(\"Material4/Surface Layer/8\"); >;\n-\tfloat2 g_vSurfaceGrimeMinMax4 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material4/Grime/10\"); >;\n+\tfloat2 g_vSurfaceGrimeMinMax4 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material4/Grime/10\"); >;\n \tfloat g_fDamageHeightBlendSoftness4 < Default(0.01); UiType(Slider); UiGroup(\"Material4/Damage Height/11\"); Expression(max(this,.001)); >;\n-\tfloat2 g_vSubstrateGrimeMinMax4 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material4/Grime/11\"); >;\n-\tfloat2 g_vDamageMinMax4 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material4/Damage Height/12\"); >;\n+\tfloat2 g_vSubstrateGrimeMinMax4 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material4/Grime/11\"); >;\n+\tfloat2 g_vDamageMinMax4 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material4/Damage Height/12\"); >;\n \tfloat g_fBurnishingGrime4 < Default(0.5); UiType(Slider); UiGroup(\"Material4/Grime/20\"); >;\n \tfloat3 g_vBurnishingColorTint4 < Default3(1, 1, 1); UiType(Color); UiGroup(\"Material4/Burnishing,5/20\"); >;\n \tfloat3 g_vDamageBevelColorTint4 < Default3(1, 1, 1); UiType(Color); UiGroup(\"Material4/Damage Bevel,4/20\"); >;\n@@ -655,11 +655,11 @@ PS\n \tCreateInputTexture2D(TextureSubstrateMetalness4, Srgb, 8, \"\", \"_metal\", \"Material4/Substrate Layer/40\", Default4(0, 0, 0, 0));\n \tCreateInputTexture2D(TextureSurfaceMetalness4, Linear, 8, \"\", \"_metal\", \"Material4/Surface Layer/40\", Default4(0, 0, 0, 0));\n \tfloat g_fDamageBevelRoughnessBrightness4 < Default(1); Range(0, 2); UiType(Slider); UiGroup(\"Material4/Damage Bevel/40\"); >;\n-\tfloat2 g_vSurfaceBurnishingMinMax4 < Default(0); UiType(VectorText); UiGroup(\"Material4/Burnishing/40\"); >;\n+\tfloat2 g_vSurfaceBurnishingMinMax4 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material4/Burnishing/40\"); >;\n \tCreateInputTexture2D(TextureSubstrateClothMask4, Srgb, 8, \"\", \"_mask\", \"Material4/Substrate Layer/41\", \"materials/default/default_black_mask.tga\");\n \tCreateInputTexture2D(TextureSurfaceClothMask4, Linear, 8, \"\", \"_mask\", \"Material4/Surface Layer/41\", \"materials/default/default_black_mask.tga\");\n \tfloat g_fDamageBevelAnisotropy4 < UiType(Slider); UiGroup(\"Material4/Damage Bevel/41\"); >;\n-\tfloat2 g_vSubstrateBurnishingMinMax4 < Default(0); UiType(VectorText); UiGroup(\"Material4/Burnishing/41\"); >;\n+\tfloat2 g_vSubstrateBurnishingMinMax4 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material4/Burnishing/41\"); >;\n \tfloat g_fDamageBevelMetalness4 < UiType(Slider); UiGroup(\"Material4/Damage Bevel/50\"); >;\n \tfloat g_fDamageBevelCloth4 < UiType(Slider); UiGroup(\"Material4/Damage Bevel/60\"); >;\n \tbool g_bDamageBevelBlendToSubstrate4 < UiType(CheckBox); UiGroup(\"Material4/Damage Bevel/80\"); >;\n@@ -734,12 +734,12 @@ PS\n \t#endif\n \t#extension GL_KHR_shader_subgroup_arithmetic : require\n \t\n-\tstruct _2872\n+\tstruct _113\n \t{\n \t    vec4 _m0[3];\n \t};\n \t\n-\tstruct _71\n+\tstruct _323\n \t{\n \t    vec4 _m0[4];\n \t};\n@@ -755,12 +755,12 @@ PS\n \t    vec4 _m6;\n \t};\n \t\n-\tstruct _193\n+\tstruct _1106\n \t{\n \t    _1677 _m0[128];\n \t};\n \t\n-\tstruct _2139\n+\tstruct _244\n \t{\n \t    mat4 _m0[4];\n \t};\n@@ -962,15 +962,15 @@ PS\n \t\n \tlayout(set = 1) uniform _2806 PerViewConstantBufferCsgo_t;\n \t\n-\tstruct _854\n+\tstruct _134\n \t{\n \t    vec4 _m0;\n \t    vec4 _m1;\n \t    vec4 _m2;\n \t    vec4 _m3;\n \t    vec4 _m4;\n-\t    _2872 _m5;\n-\t    _71 _m6;\n+\t    _113 _m5;\n+\t    _323 _m6;\n \t    vec4 _m7;\n \t    vec4 _m8;\n \t    vec4 _m9;\n@@ -979,7 +979,7 @@ PS\n \t    uvec4 _m12;\n \t    vec4 _m13;\n \t    vec4 _m14;\n-\t    _193 _m15;\n+\t    _1106 _m15;\n \t    vec4 _m16;\n \t    vec4 _m17;\n \t    int _m18;\n@@ -989,11 +989,11 @@ PS\n \t    float _m22;\n \t    float _m23;\n \t    float _m24;\n-\t    _2139 _m25;\n-\t    _71 _m26;\n+\t    _244 _m25;\n+\t    _323 _m26;\n \t};\n \t\n-\tlayout(set = 3) uniform _854 PerViewLightingConstantBufferGpu_t;\n+\tlayout(set = 3) uniform _134 PerViewLightingConstantBufferGpu_t;\n \t\n \tstruct _1194\n \t{\n@@ -1016,7 +1016,7 @@ PS\n \t} g_BarnLights_1;\n \t\n \tlayout(set = 1, binding = 85) uniform texture2D g_tLayerId;\n-\tlayout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;\n+\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;\n \tlayout(set = 1, binding = 52) uniform texture2D g_tSurfaceNormal1;\n \tlayout(set = 1, binding = 55) uniform texture2D g_tSubstrateNormal1;\n \tlayout(set = 1, binding = 60) uniform texture2D g_tSurfaceNormal2;\n@@ -1055,18 +1055,18 @@ PS\n \tlayout(set = 1, binding = 14) uniform sampler g_sAniso;\n \tlayout(set = 1, binding = 83) uniform texture2D g_tNormal;\n \tlayout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;\n-\tlayout(set = 1, binding = 22) uniform sampler g_sCookieSampler;\n+\tlayout(set = 1, binding = 23) uniform sampler g_sCookieSampler;\n \tlayout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;\n-\tlayout(set = 1, binding = 18) uniform sampler g_sPointClamp;\n+\tlayout(set = 1, binding = 19) uniform sampler g_sPointClamp;\n \tlayout(set = 1, binding = 39) uniform texture2D g_tSsao;\n-\tlayout(set = 1, binding = 19) uniform sampler g_sUserConfig;\n-\tlayout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n+\tlayout(set = 1, binding = 20) uniform sampler g_sUserConfig;\n+\tlayout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n \tlayout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;\n \tlayout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;\n-\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;\n+\tlayout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;\n \tlayout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;\n \tlayout(set = 1, binding = 40) uniform textureCubeArray g_tEnvironmentMap;\n-\tlayout(set = 1, binding = 15) uniform sampler g_sBilinearClamp;\n+\tlayout(set = 1, binding = 16) uniform sampler g_sBilinearClamp;\n \tlayout(set = 1, binding = 35) uniform texture2DArray g_tBRDFLookup;\n \tlayout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;\n \t\n@@ -2668,162 +2668,173 @@ PS\n \t    {\n \t        _21721 = _21720;\n \t    }\n-\t    float _21722;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735);\n+\t    float _12320;\n \t    SPIRV_CROSS_BRANCH\n-\t    if (PerViewLightingConstantBufferGpu_t._m18 != 0)\n+\t    if (_8634 > 0.0)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13151;\n-\t        vec3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n-\t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))\n-\t            {\n-\t                _13151 = 1.0;\n-\t                _14975 = vec3(0.0);\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            vec4 _18348 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];\n-\t            float _12779 = _18348.x;\n-\t            if (max(abs(_12779), abs(_18348.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])\n-\t            {\n-\t                vec3 _19470 = vec3(_12779, _18348.yz);\n-\t                vec2 _24804 = _19470.xy;\n-\t                vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));\n-\t                vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;\n-\t                vec3 _20489 = _19470;\n-\t                _20489.x = _20561.x;\n-\t                _20489.y = _20561.y;\n-\t                _13151 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20489;\n-\t                _10191 = _13039;\n-\t                break;\n-\t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n+\t        float _12505;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m18 != 0)\n \t        {\n-\t            vec2 _7045;\n-\t            vec2 _7046;\n-\t            vec2 _7735;\n-\t            float _8969;\n-\t            float _8970;\n-\t            float _15997;\n-\t            float _17375;\n-\t            vec2 _18870;\n-\t            vec4 _20581;\n-\t            vec4 _22023;\n-\t            float _23727;\n-\t            do\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13151;\n+\t            vec3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                float _21472 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                _20581 = PerViewLightingConstantBufferGpu_t._m0;\n-\t                _22023 = PerViewLightingConstantBufferGpu_t._m1;\n-\t                _17375 = PerViewLightingConstantBufferGpu_t._m2.z;\n-\t                _15997 = PerViewLightingConstantBufferGpu_t._m3.z;\n-\t                _18870 = vec2(_17375, _15997);\n-\t                _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n-\t                _7045 = vec2(_8969, _15997);\n-\t                _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n-\t                _7046 = vec2(_17375, _8970);\n-\t                _7735 = vec2(_8969, _8970);\n-\t                float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21472), 0.0)).xyzw, vec4(0.25));\n-\t                bool _12915;\n-\t                if (_15310 == 0.0)\n-\t                {\n-\t                    _12915 = true;\n-\t                }\n-\t                else\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))\n \t                {\n-\t                    _12915 = _15310 == 1.0;\n+\t                    _13151 = 1.0;\n+\t                    _14975 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n \t                }\n-\t                if (_12915)\n+\t                vec4 _18348 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];\n+\t                float _12779 = _18348.x;\n+\t                if (max(abs(_12779), abs(_18348.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])\n \t                {\n-\t                    _23727 = _15310;\n+\t                    vec3 _19470 = vec3(_12779, _18348.yz);\n+\t                    vec2 _24804 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));\n+\t                    vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;\n+\t                    vec3 _20489 = _19470;\n+\t                    _20489.x = _20561.x;\n+\t                    _20489.y = _20561.y;\n+\t                    _13151 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20489;\n+\t                    _10191 = _13039;\n \t                    break;\n \t                }\n-\t                _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17375, 0.0)).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15997)).xy, _21472), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21472), 0.0) * _22023.y);\n-\t                break;\n-\t            } while(false);\n-\t            float _12502;\n-\t            SPIRV_CROSS_BRANCH\n-\t            if (_13151 < 1.0)\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n+\t            }\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7990;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))\n+\t                vec2 _7045;\n+\t                vec2 _7046;\n+\t                vec2 _7735;\n+\t                float _8969;\n+\t                float _8970;\n+\t                float _15997;\n+\t                float _17375;\n+\t                vec2 _18870;\n+\t                vec4 _20581;\n+\t                vec4 _22023;\n+\t                float _23727;\n+\t                do\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];\n-\t                    vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;\n-\t                    vec3 _20490;\n-\t                    _20490.x = _20562.x;\n-\t                    _20490.y = _20562.y;\n-\t                    float _12501;\n-\t                    do\n+\t                    float _21472 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);\n+\t                    _20581 = PerViewLightingConstantBufferGpu_t._m0;\n+\t                    _22023 = PerViewLightingConstantBufferGpu_t._m1;\n+\t                    _17375 = PerViewLightingConstantBufferGpu_t._m2.z;\n+\t                    _15997 = PerViewLightingConstantBufferGpu_t._m3.z;\n+\t                    _18870 = vec2(_17375, _15997);\n+\t                    _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n+\t                    _7045 = vec2(_8969, _15997);\n+\t                    _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n+\t                    _7046 = vec2(_17375, _8970);\n+\t                    _7735 = vec2(_8969, _8970);\n+\t                    float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21472), 0.0)).xyzw, vec4(0.25));\n+\t                    bool _12915;\n+\t                    if (_15310 == 0.0)\n \t                    {\n-\t                        float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                        float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));\n-\t                        bool _12916;\n-\t                        if (_15311 == 0.0)\n-\t                        {\n-\t                            _12916 = true;\n-\t                        }\n-\t                        else\n-\t                        {\n-\t                            _12916 = _15311 == 1.0;\n-\t                        }\n-\t                        if (_12916)\n+\t                        _12915 = true;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _12915 = _15310 == 1.0;\n+\t                    }\n+\t                    if (_12915)\n+\t                    {\n+\t                        _23727 = _15310;\n+\t                        break;\n+\t                    }\n+\t                    _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17375, 0.0)).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15997)).xy, _21472), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21472), 0.0) * _22023.y);\n+\t                    break;\n+\t                } while(false);\n+\t                float _12502;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13151 < 1.0)\n+\t                {\n+\t                    float _7991;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];\n+\t                        vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;\n+\t                        vec3 _20490;\n+\t                        _20490.x = _20562.x;\n+\t                        _20490.y = _20562.y;\n+\t                        float _12501;\n+\t                        do\n \t                        {\n-\t                            _12501 = _15311;\n+\t                            float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);\n+\t                            float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));\n+\t                            bool _12916;\n+\t                            if (_15311 == 0.0)\n+\t                            {\n+\t                                _12916 = true;\n+\t                            }\n+\t                            else\n+\t                            {\n+\t                                _12916 = _15311 == 1.0;\n+\t                            }\n+\t                            if (_12916)\n+\t                            {\n+\t                                _12501 = _15311;\n+\t                                break;\n+\t                            }\n+\t                            _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(_17375, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(0.0, _15997)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20490.xy, _20322), 0.0) * _22023.y);\n \t                            break;\n-\t                        }\n-\t                        _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(_17375, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(0.0, _15997)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20490.xy, _20322), 0.0) * _22023.y);\n-\t                        break;\n-\t                    } while(false);\n-\t                    _7990 = _12501;\n+\t                        } while(false);\n+\t                        _7991 = _12501;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7991 = 1.0;\n+\t                    }\n+\t                    _12502 = mix(_7991, _23727, _13151);\n \t                }\n \t                else\n \t                {\n-\t                    _7990 = 1.0;\n+\t                    _12502 = _23727;\n \t                }\n-\t                _12502 = mix(_7990, _23727, _13151);\n+\t                _19363 = _12502;\n \t            }\n \t            else\n \t            {\n-\t                _12502 = _23727;\n+\t                _19363 = 1.0;\n \t            }\n-\t            _19363 = _12502;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0;\n-\t        }\n-\t        float _13279 = mix(_19363, 1.0, saturate((distance(_12292.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));\n-\t        float _12503;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            float _13279 = mix(_19363, 1.0, saturate((distance(_12292.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));\n+\t            float _12503;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12503 = _13279;\n+\t            }\n+\t            _12505 = _12503;\n \t        }\n \t        else\n \t        {\n-\t            _12503 = _13279;\n+\t            _12505 = 1.0;\n \t        }\n-\t        _21722 = _12503;\n+\t        _12320 = _12505;\n \t    }\n \t    else\n \t    {\n-\t        _21722 = 1.0;\n+\t        _12320 = 1.0;\n \t    }\n \t    vec3 _9717;\n \t    vec3 _24892;\n \t    SPIRV_CROSS_BRANCH\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735) * _21722) > 0.0)\n+\t    if ((_8634 * _12320) > 0.0)\n \t    {\n \t        float _11797 = max(0.0, dot(_24283.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));\n \t        vec2 _9842 = max(_11004, vec2(PerViewLightingConstantBufferGpu_t._m16.w));\n@@ -2854,7 +2865,7 @@ PS\n \t        {\n \t            _11621 = _18393;\n \t        }\n-\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _21722).xyz;\n+\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _12320).xyz;\n \t        _9717 = PerViewLightingConstantBufferGpu_t._m9.xyz + (vec3(_11797).xyz * _16808);\n \t        _24892 = (((_22315 + ((vec3(1.0) - _22315) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * _11621).xyz * _11797).xyz * _16808;\n \t    }\n@@ -3055,7 +3066,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    vec3 _12505;\n+\t                    vec3 _12506;\n \t                    if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)\n \t                    {\n \t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);\n@@ -3066,12 +3077,12 @@ PS\n \t                        vec3 _20479 = vec4((_23629 * _19008.w) + cross(_23629, _24989), _15156).xyz;\n \t                        vec3 _23614 = _17795.xyz;\n \t                        vec3 _12176 = ((_20479 * g_BarnLights_1._m0[_12608]._m5.w) + (_23614 * _15156)) + cross(_23614, _20479);\n-\t                        vec3 _14156 = vec3(vec2(atan(_12176.y, -_12176.x) * 0.15915493667125701904296875, acos(_12176.z) * 0.3183098733425140380859375), -g_BarnLights_1._m0[_12608]._m4.w);\n-\t                        vec2 _20564 = (_14156.xy * g_BarnLights_1._m0[_12608]._m9.zw) + g_BarnLights_1._m0[_12608]._m9.xy;\n-\t                        vec3 _20492 = _14156;\n+\t                        vec3 _14157 = vec3(vec2(atan(_12176.y, -_12176.x) * 0.15915493667125701904296875, acos(_12176.z) * 0.3183098733425140380859375), -g_BarnLights_1._m0[_12608]._m4.w);\n+\t                        vec2 _20564 = (_14157.xy * g_BarnLights_1._m0[_12608]._m9.zw) + g_BarnLights_1._m0[_12608]._m9.xy;\n+\t                        vec3 _20492 = _14157;\n \t                        _20492.x = _20564.x;\n \t                        _20492.y = _20564.y;\n-\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;\n+\t                        _12506 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -3080,9 +3091,9 @@ PS\n \t                        vec3 _20491 = _13791;\n \t                        _20491.x = _20563.x;\n \t                        _20491.y = _20563.y;\n-\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;\n+\t                        _12506 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12505;\n+\t                    _21548 = _12506;\n \t                }\n \t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n@@ -3110,8 +3121,8 @@ PS\n \t                    do\n \t                    {\n \t                        float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                        vec2 _14616 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;\n-\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));\n+\t                        vec2 _14617 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;\n+\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));\n \t                        bool _12918;\n \t                        if (_15312 == 0.0)\n \t                        {\n@@ -3126,7 +3137,7 @@ PS\n \t                            _24972 = _15312;\n \t                            break;\n \t                        }\n-\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14616, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n+\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14617, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n \t                        break;\n \t                    } while(false);\n \t                    vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12608]._m12);\n@@ -3162,8 +3173,8 @@ PS\n \t                SPIRV_CROSS_BRANCH\n \t                if (_14878)\n \t                {\n-\t                    float _9254 = dot(_9843.xy, vec2(0.5));\n-\t                    float _20830 = max(_9254 * _9254, 9.9999997473787516355514526367188e-06);\n+\t                    float _9253 = dot(_9843.xy, vec2(0.5));\n+\t                    float _20830 = max(_9253 * _9253, 9.9999997473787516355514526367188e-06);\n \t                    float _21402 = saturate(_25074 + 0.001000000047497451305389404296875);\n \t                    _11622 = mix(_18395, ((((2.0 + (1.0 / _20830)) * pow(1.0 - (_7801 * _7801), 0.5 / _20830)) / ((_11798 + _21402) - (_11798 * _21402))) * 0.124999918043613433837890625) * _11798, _7397);\n \t                }\n@@ -3218,8 +3229,8 @@ PS\n \t    }\n \t    float _23616 = PerViewLightingConstantBufferGpu_t._m14.y * sqrt(_17751);\n \t    float _17389 = _17751 * _17751;\n-\t    float _20712 = saturate(1.0 - _17389);\n-\t    vec3 _25271 = normalize(mix(_19630, reflect(_10145.xyz, _19630.xyz).xyz, vec3(_20712 * (sqrt(_20712) + _17389))));\n+\t    float _20711 = saturate(1.0 - _17389);\n+\t    vec3 _25271 = normalize(mix(_19630, reflect(_10145.xyz, _19630.xyz).xyz, vec3(_20711 * (sqrt(_20711) + _17389))));\n \t    uvec2 _6814 = uvec2(_18180.xy - PerViewConstantBuffer_t._m0.xy) >> _7709;\n \t    uint _19949 = PerViewLightingConstantBufferGpu_t._m11.y + (((_6814.y * PerViewLightingConstantBufferGpu_t._m12.y) + _6814.x) * PerViewLightingConstantBufferGpu_t._m11.z);\n \t    uint _23394 = PerViewLightingConstantBufferGpu_t._m11.x + (uint(clamp(_6864 * PerViewLightingConstantBufferGpu_t._m13.x, 0.0, PerViewLightingConstantBufferGpu_t._m13.y)) * PerViewLightingConstantBufferGpu_t._m11.z);\n@@ -3325,7 +3336,7 @@ PS\n \t    }\n \t    float _20784 = max(0.0, dot(_16992, _13505));\n \t    vec4 _11487 = textureLod(sampler2DArray(g_tBRDFLookup, g_sBilinearClamp), vec3((vec2(_17751, sqrt(1.0 - _20784)) * 0.984375) + vec2(0.0078125), 1.0).xyz, 0.0);\n-\t    vec3 _19001 = mix(_11487.xxx, _11487.yyy, _12351);\n+\t    vec3 _19002 = mix(_11487.xxx, _11487.yyy, _12351);\n \t    float _10020;\n \t    vec3 _23472;\n \t    SPIRV_CROSS_BRANCH\n@@ -3335,12 +3346,12 @@ PS\n \t        float _22187 = max(_17389, 9.9999997473787516355514526367188e-06);\n \t        float _21363 = saturate(_20784 + 0.001000000047497451305389404296875);\n \t        _10020 = 1.0 - _7397;\n-\t        _23472 = mix(_19001, _12351 * ((((2.0 + (1.0 / _22187)) * pow(1.0 - (_7173 * _7173), 0.5 / _22187)) / ((1.0 + _21363) - _21363)) * 0.124999918043613433837890625), vec3(_7397));\n+\t        _23472 = mix(_19002, _12351 * ((((2.0 + (1.0 / _22187)) * pow(1.0 - (_7173 * _7173), 0.5 / _22187)) / ((1.0 + _21363) - _21363)) * 0.124999918043613433837890625), vec3(_7397));\n \t    }\n \t    else\n \t    {\n \t        _10020 = 1.0;\n-\t        _23472 = _19001;\n+\t        _23472 = _19002;\n \t    }\n \t    float _8850 = 1.0 - _11487.y;\n \t    vec3 _15517 = _12351 + ((vec3(1.0) - _12351) * vec3(0.0476190485060214996337890625));"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_customweapon.slang",
          "status": "modified",
          "additions": 5,
          "deletions": 5,
          "changes": 10,
          "patch": "@@ -891,10 +891,10 @@ PS\n \tfloat g_fOverlayMetalness < UiType(Slider); UiGroup(\"Paint Inputs/Lighting/22\"); >;\n \tfloat g_fOverlayStrength < Default(1); UiType(Slider); UiGroup(\"Paint Inputs/Overlay/22\"); >;\n \tfloat g_flCaseHardeningRampOffset < UiType(Slider); UiGroup(\"Paint Inputs/Pattern/22\"); >;\n-\tfloat3 g_vHalftonePatternLevels < Default2(0, 0.5); Range2(-10, 0, 10, 1); UiType(VectorText); UiGroup(\"Paint Inputs/Pattern/22\"); Expression(float3(-this.x,-1.4427*log(max(.0001,1-this.y)),2-this.z)); >;\n+\tfloat3 g_vHalftonePatternLevels < Default3(0, 0.5, 1); Range2(-10, 0, 10, 1); UiType(VectorText); UiGroup(\"Paint Inputs/Pattern/22\"); Expression(float3(-this.x,-1.4427*log(max(.0001,1-this.y)),2-this.z)); >;\n \tfloat g_fOverlayMaterialStrength < Default(1); UiType(Slider); UiGroup(\"Paint Inputs/Overlay/23\"); >;\n-\tfloat4 g_vCaseHardening < Default(0); UiType(VectorText); UiGroup(\"Paint Inputs/Pattern/23\"); >;\n-\tfloat2 g_vHalftoneThresholds < Default(0); UiType(VectorText); UiGroup(\"Paint Inputs/Pattern/23\"); >;\n+\tfloat4 g_vCaseHardening < Default2(0, 1); UiType(VectorText); UiGroup(\"Paint Inputs/Pattern/23\"); >;\n+\tfloat2 g_vHalftoneThresholds < Default2(0, 1); UiType(VectorText); UiGroup(\"Paint Inputs/Pattern/23\"); >;\n \tfloat g_fOverlayBrightness < Default(1); Range(0, 2); UiType(Slider); UiGroup(\"Paint Inputs/Overlay/24\"); >;\n \tfloat g_flHalftoneRotationOffsetA < Range(-360, 360); UiType(Slider); UiGroup(\"Paint Inputs/Pattern/24\"); >;\n \tfloat g_fOverlayDurability < UiType(Slider); UiGroup(\"Paint Inputs/Overlay/25\"); Expression(1-this); >;\n@@ -1377,10 +1377,10 @@ PS\n \tlayout(set = 1) uniform _2733 _Globals_;\n \t\n \tlayout(set = 1, binding = 30) uniform texture2D g_tAmbientOcclusion;\n-\tlayout(set = 1, binding = 23) uniform sampler g_sTrilinearClamp;\n+\tlayout(set = 1, binding = 24) uniform sampler g_sTrilinearClamp;\n \tlayout(set = 1, binding = 31) uniform texture2D g_tMasks;\n \tlayout(set = 1, binding = 38) uniform texture2D g_tWear;\n-\tlayout(set = 1, binding = 22) uniform sampler g_sTrilinearWrap;\n+\tlayout(set = 1, binding = 23) uniform sampler g_sTrilinearWrap;\n \tlayout(set = 1, binding = 39) uniform texture2D g_tGrunge;\n \tlayout(set = 1, binding = 35) uniform texture2D g_tMetalness;\n \tlayout(set = 1, binding = 34) uniform texture2D g_tColor;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_decal_renderer.slang",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -186,9 +186,9 @@ PS\n \t// Static combos: S_SUPPORTS_DECALS\n \t\n \tTexture2D<float4> g_tPreviousRT : register(t30, space1);\n-\tSamplerState AddressU_Clamp_AddressV_Clamp : register(s21, space1);\n+\tSamplerState AddressU_Clamp_AddressV_Clamp : register(s22, space1);\n \tTexture2D<float4> g_tDecals : register(t31, space1);\n-\tSamplerState g_sTrilinearClamp : register(s17, space1);\n+\tSamplerState g_sTrilinearClamp : register(s18, space1);\n \t\n \tstatic float4 input_1;\n \tstatic float3 input_2;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_decalmodulate.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -259,7 +259,7 @@ PS\n \t};\n \t\n \tTexture2D<float4> g_tColor : register(t43, space1);\n-\tSamplerState g_sUserConfigAllowGlobalMipBias : register(s20, space1);\n+\tSamplerState g_sUserConfigAllowGlobalMipBias : register(s21, space1);\n \t\n \tstatic float4 input_2;\n \tstatic float4 input_3;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_effects.slang",
          "status": "modified",
          "additions": 4,
          "deletions": 4,
          "changes": 8,
          "patch": "@@ -327,7 +327,7 @@ PS\n \tTexture2D g_tSceneDepth < Attribute(\"SceneDepth\"); SrgbRead(false); >;\n \tTexture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;\n \tTexture2D g_tZeroth_Moment < Attribute(\"zeroth_moment\"); SrgbRead(true); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n \t// Color\n@@ -427,13 +427,13 @@ PS\n \t};\n \t\n \tTexture2D<float4> g_tColor : register(t51, space1);\n-\tSamplerState g_sUserConfigAllowGlobalMipBias : register(s20, space1);\n+\tSamplerState g_sUserConfigAllowGlobalMipBias : register(s21, space1);\n \tTexture2D<float4> g_tMask1 : register(t52, space1);\n-\tSamplerState g_sUserConfig : register(s19, space1);\n+\tSamplerState g_sUserConfig : register(s20, space1);\n \tTexture2D<float4> g_tMask2 : register(t53, space1);\n \tTexture2D<float4> g_tMask3 : register(t54, space1);\n \tTextureCube<float4> g_tFogCubeTexture : register(t42, space1);\n-\tSamplerState g_sTrilinearClamp : register(s17, space1);\n+\tSamplerState g_sTrilinearClamp : register(s18, space1);\n \t\n \tstatic bool gl_FrontFacing;\n \tstatic float3 input_0;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_environment.slang",
          "status": "modified",
          "additions": 1688,
          "deletions": 1492,
          "changes": 3180,
          "patch": null
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_environment_blend.slang",
          "status": "modified",
          "additions": 2073,
          "deletions": 1854,
          "changes": 3927,
          "patch": null
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_eyeball.slang",
          "status": "modified",
          "additions": 163,
          "deletions": 152,
          "changes": 315,
          "patch": "@@ -432,7 +432,7 @@ PS\n \tTexture2D g_tParticleShadowBuffer < Attribute(\"ParticleShadowBuffer\"); SrgbRead(false); >;\n \tTexture2D g_tShadowDepthBufferDepth < Attribute(\"ShadowDepthBuffer\"); SrgbRead(false); >;\n \tTexture2D g_tSsao < Attribute(\"SSAOOcclusionFactor\"); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n \t// Color\n@@ -484,12 +484,12 @@ PS\n \t#endif\n \t#extension GL_KHR_shader_subgroup_arithmetic : require\n \t\n-\tstruct _2914\n+\tstruct _155\n \t{\n \t    vec4 _m0[3];\n \t};\n \t\n-\tstruct _113\n+\tstruct _365\n \t{\n \t    vec4 _m0[4];\n \t};\n@@ -505,12 +505,12 @@ PS\n \t    vec4 _m6;\n \t};\n \t\n-\tstruct _2264\n+\tstruct _166\n \t{\n \t    _1677 _m0[128];\n \t};\n \t\n-\tstruct _2326\n+\tstruct _430\n \t{\n \t    mat4 _m0[4];\n \t};\n@@ -592,15 +592,15 @@ PS\n \t\n \tlayout(set = 1) uniform _1194 PerViewConstantBuffer_t;\n \t\n-\tstruct _735\n+\tstruct _15\n \t{\n \t    vec4 _m0;\n \t    vec4 _m1;\n \t    vec4 _m2;\n \t    vec4 _m3;\n \t    vec4 _m4;\n-\t    _2914 _m5;\n-\t    _113 _m6;\n+\t    _155 _m5;\n+\t    _365 _m6;\n \t    vec4 _m7;\n \t    vec4 _m8;\n \t    vec4 _m9;\n@@ -609,7 +609,7 @@ PS\n \t    uvec4 _m12;\n \t    vec4 _m13;\n \t    vec4 _m14;\n-\t    _2264 _m15;\n+\t    _166 _m15;\n \t    vec4 _m16;\n \t    vec4 _m17;\n \t    int _m18;\n@@ -619,11 +619,11 @@ PS\n \t    float _m22;\n \t    float _m23;\n \t    float _m24;\n-\t    _2326 _m25;\n-\t    _113 _m26;\n+\t    _430 _m25;\n+\t    _365 _m26;\n \t};\n \t\n-\tlayout(set = 3) uniform _735 PerViewLightingConstantBufferGpu_t;\n+\tlayout(set = 3) uniform _15 PerViewLightingConstantBufferGpu_t;\n \t\n \tlayout(set = 3, binding = 30, std430) readonly buffer g_CullBits\n \t{\n@@ -636,25 +636,25 @@ PS\n \t} g_BarnLights_1;\n \t\n \tlayout(set = 1, binding = 51) uniform texture2D g_tColor;\n-\tlayout(set = 1, binding = 20) uniform sampler g_sUserConfigAllowGlobalMipBias;\n+\tlayout(set = 1, binding = 21) uniform sampler g_sUserConfigAllowGlobalMipBias;\n \tlayout(set = 1, binding = 53) uniform texture2D g_tEyeMask1;\n \tlayout(set = 1, binding = 14) uniform sampler g_sAniso;\n \tlayout(set = 1, binding = 52) uniform texture2D g_tEyeAlbedo1;\n-\tlayout(set = 1, binding = 25) uniform sampler AddressU_Mirror_AddressV_Mirror_Filter_Anisotropic_MaxAniso_8;\n+\tlayout(set = 1, binding = 26) uniform sampler AddressU_Mirror_AddressV_Mirror_Filter_Anisotropic_MaxAniso_8;\n \tlayout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;\n-\tlayout(set = 1, binding = 22) uniform sampler g_sCookieSampler;\n+\tlayout(set = 1, binding = 23) uniform sampler g_sCookieSampler;\n \tlayout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;\n-\tlayout(set = 1, binding = 18) uniform sampler g_sPointClamp;\n+\tlayout(set = 1, binding = 19) uniform sampler g_sPointClamp;\n \tlayout(set = 1, binding = 39) uniform texture2D g_tSsao;\n-\tlayout(set = 1, binding = 19) uniform sampler g_sUserConfig;\n-\tlayout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n+\tlayout(set = 1, binding = 20) uniform sampler g_sUserConfig;\n+\tlayout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n \tlayout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;\n \tlayout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;\n-\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;\n-\tlayout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;\n+\tlayout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;\n+\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;\n \tlayout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;\n \tlayout(set = 1, binding = 40) uniform textureCubeArray g_tEnvironmentMap;\n-\tlayout(set = 1, binding = 15) uniform sampler g_sBilinearClamp;\n+\tlayout(set = 1, binding = 16) uniform sampler g_sBilinearClamp;\n \tlayout(set = 1, binding = 35) uniform texture2DArray g_tBRDFLookup;\n \tlayout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;\n \t\n@@ -921,162 +921,173 @@ PS\n \t    {\n \t        _21711 = _21710;\n \t    }\n-\t    float _21712;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12885.xyz);\n+\t    float _12320;\n \t    SPIRV_CROSS_BRANCH\n-\t    if (PerViewLightingConstantBufferGpu_t._m18 != 0)\n+\t    if (_8634 > 0.0)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13139;\n-\t        vec3 _14977;\n-\t        int _13040 = 0;\n-\t        for (;;)\n-\t        {\n-\t            if (!(_13040 < PerViewLightingConstantBufferGpu_t._m18))\n-\t            {\n-\t                _13139 = 1.0;\n-\t                _14977 = vec3(0.0);\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13040];\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13040])\n-\t            {\n-\t                vec3 _19470 = vec3(_12779, _18322.yz);\n-\t                vec2 _24804 = _19470.xy;\n-\t                vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));\n-\t                vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13040].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13040].xy;\n-\t                vec3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13139 = saturate(_22193.x * _22193.y);\n-\t                _14977 = _20488;\n-\t                _10191 = _13040;\n-\t                break;\n-\t            }\n-\t            _23989 = _13040 + 1;\n-\t            _13040 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19364;\n-\t        if (_10191 >= 0)\n+\t        float _12505;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m18 != 0)\n \t        {\n-\t            vec2 _7045;\n-\t            vec2 _7046;\n-\t            vec2 _7735;\n-\t            float _8969;\n-\t            float _8970;\n-\t            float _15996;\n-\t            float _17299;\n-\t            vec2 _18870;\n-\t            vec4 _20581;\n-\t            vec4 _22023;\n-\t            float _23727;\n-\t            do\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13139;\n+\t            vec3 _14977;\n+\t            int _13040 = 0;\n+\t            for (;;)\n \t            {\n-\t                float _21452 = saturate(_14977.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                _20581 = PerViewLightingConstantBufferGpu_t._m0;\n-\t                _22023 = PerViewLightingConstantBufferGpu_t._m1;\n-\t                _17299 = PerViewLightingConstantBufferGpu_t._m2.z;\n-\t                _15996 = PerViewLightingConstantBufferGpu_t._m3.z;\n-\t                _18870 = vec2(_17299, _15996);\n-\t                _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n-\t                _7045 = vec2(_8969, _15996);\n-\t                _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n-\t                _7046 = vec2(_17299, _8970);\n-\t                _7735 = vec2(_8969, _8970);\n-\t                float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));\n-\t                bool _12887;\n-\t                if (_15310 == 0.0)\n+\t                if (!(_13040 < PerViewLightingConstantBufferGpu_t._m18))\n \t                {\n-\t                    _12887 = true;\n-\t                }\n-\t                else\n-\t                {\n-\t                    _12887 = _15310 == 1.0;\n+\t                    _13139 = 1.0;\n+\t                    _14977 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n \t                }\n-\t                if (_12887)\n+\t                vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13040];\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13040])\n \t                {\n-\t                    _23727 = _15310;\n+\t                    vec3 _19470 = vec3(_12779, _18322.yz);\n+\t                    vec2 _24804 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));\n+\t                    vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13040].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13040].xy;\n+\t                    vec3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13139 = saturate(_22193.x * _22193.y);\n+\t                    _14977 = _20488;\n+\t                    _10191 = _13040;\n \t                    break;\n \t                }\n-\t                _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14977.xy, _21452), 0.0) * _22023.y);\n-\t                break;\n-\t            } while(false);\n-\t            float _12503;\n-\t            SPIRV_CROSS_BRANCH\n-\t            if (_13139 < 1.0)\n+\t                _23989 = _13040 + 1;\n+\t                _13040 = _23989;\n+\t                continue;\n+\t            }\n+\t            float _19364;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))\n+\t                vec2 _7045;\n+\t                vec2 _7046;\n+\t                vec2 _7735;\n+\t                float _8969;\n+\t                float _8970;\n+\t                float _15996;\n+\t                float _17299;\n+\t                vec2 _18870;\n+\t                vec4 _20581;\n+\t                vec4 _22023;\n+\t                float _23727;\n+\t                do\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];\n-\t                    vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;\n-\t                    vec3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    float _12502;\n-\t                    do\n+\t                    float _21452 = saturate(_14977.z + PerViewLightingConstantBufferGpu_t._m19);\n+\t                    _20581 = PerViewLightingConstantBufferGpu_t._m0;\n+\t                    _22023 = PerViewLightingConstantBufferGpu_t._m1;\n+\t                    _17299 = PerViewLightingConstantBufferGpu_t._m2.z;\n+\t                    _15996 = PerViewLightingConstantBufferGpu_t._m3.z;\n+\t                    _18870 = vec2(_17299, _15996);\n+\t                    _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n+\t                    _7045 = vec2(_8969, _15996);\n+\t                    _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n+\t                    _7046 = vec2(_17299, _8970);\n+\t                    _7735 = vec2(_8969, _8970);\n+\t                    float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));\n+\t                    bool _12887;\n+\t                    if (_15310 == 0.0)\n \t                    {\n-\t                        float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                        float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));\n-\t                        bool _12888;\n-\t                        if (_15311 == 0.0)\n-\t                        {\n-\t                            _12888 = true;\n-\t                        }\n-\t                        else\n-\t                        {\n-\t                            _12888 = _15311 == 1.0;\n-\t                        }\n-\t                        if (_12888)\n+\t                        _12887 = true;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _12887 = _15310 == 1.0;\n+\t                    }\n+\t                    if (_12887)\n+\t                    {\n+\t                        _23727 = _15310;\n+\t                        break;\n+\t                    }\n+\t                    _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14977.xy, _21452), 0.0) * _22023.y);\n+\t                    break;\n+\t                } while(false);\n+\t                float _12503;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13139 < 1.0)\n+\t                {\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];\n+\t                        vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;\n+\t                        vec3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        float _12502;\n+\t                        do\n \t                        {\n-\t                            _12502 = _15311;\n+\t                            float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);\n+\t                            float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));\n+\t                            bool _12888;\n+\t                            if (_15311 == 0.0)\n+\t                            {\n+\t                                _12888 = true;\n+\t                            }\n+\t                            else\n+\t                            {\n+\t                                _12888 = _15311 == 1.0;\n+\t                            }\n+\t                            if (_12888)\n+\t                            {\n+\t                                _12502 = _15311;\n+\t                                break;\n+\t                            }\n+\t                            _12502 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22023.y);\n \t                            break;\n-\t                        }\n-\t                        _12502 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22023.y);\n-\t                        break;\n-\t                    } while(false);\n-\t                    _7934 = _12502;\n+\t                        } while(false);\n+\t                        _7934 = _12502;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0;\n+\t                    }\n+\t                    _12503 = mix(_7934, _23727, _13139);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0;\n+\t                    _12503 = _23727;\n \t                }\n-\t                _12503 = mix(_7934, _23727, _13139);\n+\t                _19364 = _12503;\n \t            }\n \t            else\n \t            {\n-\t                _12503 = _23727;\n+\t                _19364 = 1.0;\n \t            }\n-\t            _19364 = _12503;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19364 = 1.0;\n-\t        }\n-\t        float _13279 = mix(_19364, 1.0, saturate((distance(_7639.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));\n-\t        float _12504;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12504 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            float _13279 = mix(_19364, 1.0, saturate((distance(_7639.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));\n+\t            float _12504;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12504 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12504 = _13279;\n+\t            }\n+\t            _12505 = _12504;\n \t        }\n \t        else\n \t        {\n-\t            _12504 = _13279;\n+\t            _12505 = 1.0;\n \t        }\n-\t        _21712 = _12504;\n+\t        _12320 = _12505;\n \t    }\n \t    else\n \t    {\n-\t        _21712 = 1.0;\n+\t        _12320 = 1.0;\n \t    }\n \t    vec3 _13174;\n \t    vec3 _16054;\n \t    SPIRV_CROSS_BRANCH\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12885.xyz) * _21712) > 0.0)\n+\t    if ((_8634 * _12320) > 0.0)\n \t    {\n \t        float _11797 = max(0.0, dot(_12885.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));\n \t        vec2 _9840 = max(_11004, vec2(PerViewLightingConstantBufferGpu_t._m16.w));\n@@ -1091,7 +1102,7 @@ PS\n \t        float _16150 = _9850 + 1.0;\n \t        float _6835 = (_16150 * _16150) * 0.125;\n \t        float _19569 = 1.0 - _6835;\n-\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _21712).xyz;\n+\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _12320).xyz;\n \t        _13174 = PerViewLightingConstantBufferGpu_t._m9.xyz + (vec3(_11797).xyz * _16808);\n \t        _16054 = (((_22995 + ((vec3(1.0) - _22995) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * ((_24198 * _24198) / ((4.0 * ((_11797 * _19569) + _6835)) * ((max(0.0, dot(_19012, _21889)) * _19569) + _6835)))).xyz * _11797).xyz * _16808;\n \t    }\n@@ -1289,7 +1300,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    vec3 _12505;\n+\t                    vec3 _12506;\n \t                    if (g_BarnLights_1._m0[_12609]._m4.w < 0.0)\n \t                    {\n \t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12609]._m5.xyz, g_BarnLights_1._m0[_12609]._m5.w);\n@@ -1305,7 +1316,7 @@ PS\n \t                        vec3 _20492 = _14081;\n \t                        _20492.x = _20564.x;\n \t                        _20492.y = _20564.y;\n-\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;\n+\t                        _12506 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -1314,9 +1325,9 @@ PS\n \t                        vec3 _20491 = _13791;\n \t                        _20491.x = _20563.x;\n \t                        _20491.y = _20563.y;\n-\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;\n+\t                        _12506 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12505;\n+\t                    _21548 = _12506;\n \t                }\n \t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n@@ -1344,8 +1355,8 @@ PS\n \t                    do\n \t                    {\n \t                        float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                        vec2 _14615 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12609]._m8.zw, g_BarnLights_1._m0[_12609]._m8.xy), _19629.z).xy;\n-\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));\n+\t                        vec2 _14616 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12609]._m8.zw, g_BarnLights_1._m0[_12609]._m8.xy), _19629.z).xy;\n+\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));\n \t                        bool _12890;\n \t                        if (_15312 == 0.0)\n \t                        {\n@@ -1360,7 +1371,7 @@ PS\n \t                            _24972 = _15312;\n \t                            break;\n \t                        }\n-\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14615, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n+\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14616, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n \t                        break;\n \t                    } while(false);\n \t                    vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12609]._m12);"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_flashbang_overlay.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -277,7 +277,7 @@ PS\n \t};\n \t\n \tTexture2D<float4> g_tFlashbangFrame : register(t53, space1);\n-\tSamplerState g_sPointClamp : register(s18, space1);\n+\tSamplerState g_sPointClamp : register(s19, space1);\n \t\n \tstatic float4 gl_FragCoord;\n \tstatic float4 output_0;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_foliage.slang",
          "status": "modified",
          "additions": 440,
          "deletions": 438,
          "changes": 878,
          "patch": "@@ -148,7 +148,7 @@ VS\n \tfloat g_flSpatialIncoherence < Default(0.1); UiType(Slider); UiGroup(\"Foliage UV Animation\"); >;\n \t\n \t// SPIR-V reflection failed for backend HLSL:\n-\t// cbuffer ID 5618 (name: _Globals_), member index 3 (name: g_vColorTint) cannot be expressed with either HLSL packing layout or packoffset.\n+\t// cbuffer ID 5618 (name: _Globals_), member index 0 (name: g_vTexCoordXform0) cannot be expressed with either HLSL packing layout or packoffset.\n \t//\n \t// Re-attempting reflection with the GLSL backend.\n \t\n@@ -395,7 +395,7 @@ PS\n \tTexture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;\n \tTexture2D g_tTransmissiveColor < Channel(RGB, Box(TextureTransmissiveColor), Srgb); OutputFormat(BC7); SrgbRead(true); >;\n \tTexture2D g_tUvMotionMask < Channel(RGBA, Box(FoliageUvAnimation), Linear); OutputFormat(BC7); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \tfloat4 g_vShadingComplexity < Source(ShadingComplexity); UiType(VectorText); >;\n \t\n@@ -474,226 +474,242 @@ PS\n \t// Variant parameters\n \tTexture2D g_tColor < Channel(RGB, ArtistDefined(TextureColor), Srgb); OutputFormat(DXT1); SrgbRead(true); >;\n \t\n+\t// SPIR-V reflection failed for backend HLSL:\n+\t// cbuffer ID 5618 (name: _Globals_), member index 18 (name: g_mTextureColorAdjust) cannot be expressed with either HLSL packing layout or packoffset.\n+\t//\n+\t// Re-attempting reflection with the GLSL backend.\n+\t\n \t// Source 2 Viewer - https://valveresourceformat.github.io\n-\t// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup\n+\t// SPIR-V source, GLSL reflection with SPIRV-Cross by KhronosGroup\n+\t\n+\t#version 460\n+\t#if defined(GL_EXT_control_flow_attributes)\n+\t#extension GL_EXT_control_flow_attributes : require\n+\t#define SPIRV_CROSS_FLATTEN [[flatten]]\n+\t#define SPIRV_CROSS_BRANCH [[dont_flatten]]\n+\t#define SPIRV_CROSS_UNROLL [[unroll]]\n+\t#define SPIRV_CROSS_LOOP [[dont_unroll]]\n+\t#else\n+\t#define SPIRV_CROSS_FLATTEN\n+\t#define SPIRV_CROSS_BRANCH\n+\t#define SPIRV_CROSS_UNROLL\n+\t#define SPIRV_CROSS_LOOP\n+\t#endif\n+\t#extension GL_KHR_shader_subgroup_arithmetic : require\n \t\n-\tstruct _1289\n+\tstruct _1541\n \t{\n-\t    float4 _m0[3];\n+\t    vec4 _m0[3];\n \t};\n \t\n-\tstruct _1499\n+\tstruct _1751\n \t{\n-\t    float4 _m0[4];\n+\t    vec4 _m0[4];\n \t};\n \t\n-\tstruct _2441\n+\tstruct _546\n \t{\n-\t    column_major float4x4 _m0[4];\n+\t    mat4 _m0[4];\n \t};\n \t\n \tstruct _200\n \t{\n-\t    column_major float4x4 _m0;\n-\t    column_major float4x4 _m1;\n-\t    float4 _m2;\n-\t    float4 _m3;\n-\t    float4 _m4;\n-\t    float4 _m5;\n-\t    float3 _m6;\n+\t    mat4 _m0;\n+\t    mat4 _m1;\n+\t    vec4 _m2;\n+\t    vec4 _m3;\n+\t    vec4 _m4;\n+\t    vec4 _m5;\n+\t    vec3 _m6;\n \t    uint _m7;\n-\t    float4 _m8;\n-\t    float4 _m9;\n-\t    float4 _m10;\n+\t    vec4 _m8;\n+\t    vec4 _m9;\n+\t    vec4 _m10;\n \t    float _m11;\n \t    float _m12;\n \t    uint _m13;\n \t    int _m14;\n-\t    column_major float4x3 _m15;\n-\t    float4 _m16;\n-\t    float4 _m17;\n-\t    float4 _m18;\n-\t    float4 _m19;\n-\t    float4 _m20;\n-\t    float3 _m21;\n+\t    mat4x3 _m15;\n+\t    vec4 _m16;\n+\t    vec4 _m17;\n+\t    vec4 _m18;\n+\t    vec4 _m19;\n+\t    vec4 _m20;\n+\t    vec3 _m21;\n \t    float _m22;\n-\t    column_major float4x4 _m23;\n+\t    mat4 _m23;\n \t};\n \t\n-\tstatic float3 _4;\n-\tstatic float4 _5;\n+\tvec3 _4;\n+\tvec4 _5;\n \t\n-\tcbuffer _Globals_ : register(b0, space1)\n+\tstruct _920\n \t{\n-\t    uint _Globals_1_g_tColor : packoffset(c0);\n-\t    uint _Globals_1_g_sTrilinearWrap : packoffset(c0.w);\n-\t    uint _Globals_1_g_sTrilinearClamp : packoffset(c1);\n-\t    uint _Globals_1_g_sPointClamp : packoffset(c1.y);\n-\t    uint _Globals_1_g_sUserConfig : packoffset(c2);\n-\t    uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c2.y);\n-\t    uint _Globals_1_g_sCookieSampler : packoffset(c2.w);\n-\t    uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c3);\n-\t    int _Globals_1_g_bFogEnabled : packoffset(c3.z);\n-\t    int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c3.w);\n-\t    int _Globals_1_g_bRenderBackfaceNormals : packoffset(c4);\n-\t    float _Globals_1_g_flReflectance : packoffset(c4.y);\n-\t    uint _Globals_1_g_tNormal : packoffset(c8);\n-\t    uint _Globals_1_g_tAmbientOcclusion : packoffset(c8.w);\n-\t    float _Globals_1_g_flVertexAmbientOcclusionAmount : packoffset(c11);\n-\t    float _Globals_1_g_flVertexAmbientOcclusionPower : packoffset(c11.y);\n-\t    float _Globals_1_g_flHeightGradientAmount : packoffset(c11.z);\n-\t    float _Globals_1_g_flHeightGradientPower : packoffset(c11.w);\n-\t    column_major float4x4 _Globals_1_g_mTextureColorAdjust : packoffset(c14);\n-\t    float _Globals_1_g_fTextureRoughnessContrast : packoffset(c30.y);\n-\t    float _Globals_1_g_fTextureRoughnessBrightness : packoffset(c30.z);\n-\t    float _Globals_1_g_fTextureNormalContrast : packoffset(c31);\n+\t    uint g_tColor;\n+\t    uint g_sTrilinearWrap;\n+\t    uint g_sTrilinearClamp;\n+\t    uint g_sPointClamp;\n+\t    uint g_sUserConfig;\n+\t    uint g_sUserConfigAllowGlobalMipBias;\n+\t    uint g_sCookieSampler;\n+\t    uint g_tShadowDepthBufferCmpSampler;\n+\t    int g_bFogEnabled;\n+\t    int g_bDontFlipBackfaceNormals;\n+\t    int g_bRenderBackfaceNormals;\n+\t    float g_flReflectance;\n+\t    uint g_tNormal;\n+\t    uint g_tAmbientOcclusion;\n+\t    float g_flVertexAmbientOcclusionAmount;\n+\t    float g_flVertexAmbientOcclusionPower;\n+\t    float g_flHeightGradientAmount;\n+\t    float g_flHeightGradientPower;\n+\t    mat4 g_mTextureColorAdjust;\n+\t    float g_fTextureRoughnessContrast;\n+\t    float g_fTextureRoughnessBrightness;\n+\t    float g_fTextureNormalContrast;\n \t};\n \t\n-\tcbuffer PerViewConstantBufferCsgo_t : register(b3, space1)\n+\tlayout(set = 1) uniform _920 _Globals_;\n+\t\n+\tstruct _1374\n \t{\n-\t    int4 PerViewConstantBufferCsgo_t_1_m0 : packoffset(c1);\n-\t    int4 PerViewConstantBufferCsgo_t_1_m1 : packoffset(c2);\n-\t    int4 PerViewConstantBufferCsgo_t_1_m2 : packoffset(c3);\n-\t    uint PerViewConstantBufferCsgo_t_1_m3 : packoffset(c4.z);\n-\t    uint PerViewConstantBufferCsgo_t_1_m4 : packoffset(c4.w);\n-\t    uint PerViewConstantBufferCsgo_t_1_m5 : packoffset(c5);\n-\t    uint PerViewConstantBufferCsgo_t_1_m6 : packoffset(c5.z);\n-\t    uint PerViewConstantBufferCsgo_t_1_m7 : packoffset(c6.z);\n-\t    column_major float4x4 PerViewConstantBufferCsgo_t_1_m8 : packoffset(c12);\n-\t    float2 PerViewConstantBufferCsgo_t_1_m9 : packoffset(c16);\n-\t    float PerViewConstantBufferCsgo_t_1_m10 : packoffset(c16.z);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m11 : packoffset(c23);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m12 : packoffset(c24);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m13 : packoffset(c25);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m14 : packoffset(c26);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m15 : packoffset(c27);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m16 : packoffset(c28);\n-\t    column_major float4x4 PerViewConstantBufferCsgo_t_1_m17 : packoffset(c29);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m18 : packoffset(c33);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m19 : packoffset(c34);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m20 : packoffset(c35);\n+\t    ivec4 _m0;\n+\t    ivec4 _m1;\n+\t    ivec4 _m2;\n+\t    uint _m3;\n+\t    uint _m4;\n+\t    uint _m5;\n+\t    uint _m6;\n+\t    uint _m7;\n+\t    mat4 _m8;\n+\t    vec2 _m9;\n+\t    float _m10;\n+\t    vec4 _m11;\n+\t    vec4 _m12;\n+\t    vec4 _m13;\n+\t    vec4 _m14;\n+\t    vec4 _m15;\n+\t    vec4 _m16;\n+\t    mat4 _m17;\n+\t    vec4 _m18;\n+\t    vec4 _m19;\n+\t    vec4 _m20;\n \t};\n \t\n-\tcbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)\n+\tlayout(set = 1) uniform _1374 PerViewConstantBufferCsgo_t;\n+\t\n+\tstruct _1768\n \t{\n-\t    _1289 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);\n-\t    _1499 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c16);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c17);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c18);\n-\t    uint4 PerViewLightingConstantBufferGpu_t_1_m5 : packoffset(c19);\n-\t    uint4 PerViewLightingConstantBufferGpu_t_1_m6 : packoffset(c22);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m7 : packoffset(c23);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m8 : packoffset(c24);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m9 : packoffset(c1945);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m10 : packoffset(c1946);\n-\t    int PerViewLightingConstantBufferGpu_t_1_m11 : packoffset(c1953);\n-\t    float PerViewLightingConstantBufferGpu_t_1_m12 : packoffset(c1953.z);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m13 : packoffset(c1954);\n-\t    float PerViewLightingConstantBufferGpu_t_1_m14 : packoffset(c1955);\n-\t    float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.y);\n-\t    float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.z);\n-\t    float PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1955.w);\n-\t    _2441 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);\n-\t    _1499 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);\n-\t    uint PerViewLightingConstantBufferGpu_t_1_m20 : packoffset(c1996);\n-\t    uint PerViewLightingConstantBufferGpu_t_1_m21 : packoffset(c1996.y);\n+\t    _1541 _m0;\n+\t    _1751 _m1;\n+\t    vec4 _m2;\n+\t    vec4 _m3;\n+\t    vec4 _m4;\n+\t    uvec4 _m5;\n+\t    uvec4 _m6;\n+\t    vec4 _m7;\n+\t    vec4 _m8;\n+\t    vec4 _m9;\n+\t    vec4 _m10;\n+\t    int _m11;\n+\t    float _m12;\n+\t    vec4 _m13;\n+\t    float _m14;\n+\t    float _m15;\n+\t    float _m16;\n+\t    float _m17;\n+\t    _546 _m18;\n+\t    _1751 _m19;\n+\t    uint _m20;\n+\t    uint _m21;\n \t};\n \t\n-\tcbuffer PerViewConstantBuffer_t : register(b1, space1)\n+\tlayout(set = 3) uniform _1768 PerViewLightingConstantBufferGpu_t;\n+\t\n+\tstruct _1194\n \t{\n-\t    float2 PerViewConstantBuffer_t_1_m0 : packoffset(c20);\n-\t    float2 PerViewConstantBuffer_t_1_m1 : packoffset(c20.z);\n-\t    float4 PerViewConstantBuffer_t_1_m2 : packoffset(c22);\n-\t    float3 PerViewConstantBuffer_t_1_m3 : packoffset(c26);\n+\t    vec2 _m0;\n+\t    vec2 _m1;\n+\t    vec4 _m2;\n+\t    vec3 _m3;\n \t};\n \t\n-\tByteAddressBuffer g_CullBits : register(t30, space3);\n-\tByteAddressBuffer g_BarnLights : register(t31, space3);\n-\tTexture2D<float4> g_bindless_Texture2D_float4[65536] : register(t46, space4);\n-\tSamplerState g_bindless_Sampler[2048] : register(s29, space4);\n-\tSamplerComparisonState g_bindless_Sampler_1[2048] : register(s29, space4);\n-\tTexture3D<float4> g_bindless_Texture3D_float4[65536] : register(t46, space4);\n-\tTextureCubeArray<float4> g_bindless_TextureCubeArray_float4[65536] : register(t46, space4);\n-\tTextureCube<float4> g_bindless_TextureCube_float4[65536] : register(t46, space4);\n-\t\n-\tstatic float4 gl_FragCoord;\n-\tstatic bool gl_FrontFacing;\n-\tstatic float4 input_0;\n-\tstatic float3 input_1;\n-\tstatic float3 input_2;\n-\tstatic float4 input_3;\n-\tstatic float4 input_4;\n-\tstatic float3 input_5;\n-\tstatic float4 input_6;\n-\tstatic float4 output_0;\n-\t\n-\tstruct PS_INPUT\n+\tlayout(set = 1) uniform _1194 PerViewConstantBuffer_t;\n+\t\n+\tlayout(set = 3, binding = 30, std430) readonly buffer g_CullBits\n \t{\n-\t    float4 input_0 : TEXCOORD0;\n-\t    float3 input_1 : TEXCOORD1;\n-\t    float3 input_2 : TEXCOORD2;\n-\t    float4 input_3 : TEXCOORD3;\n-\t    centroid float4 input_4 : TEXCOORD4;\n-\t    centroid float3 input_5 : TEXCOORD5;\n-\t    float4 input_6 : TEXCOORD6;\n-\t    float4 gl_FragCoord : SV_Position;\n-\t    bool gl_FrontFacing : SV_IsFrontFace;\n-\t};\n+\t    uint _m0[];\n+\t} g_CullBits_1;\n \t\n-\tstruct PS_OUTPUT\n+\tlayout(set = 3, binding = 31, std430) readonly buffer g_BarnLights\n \t{\n-\t    float4 output_0 : SV_Target0;\n-\t};\n+\t    layout(row_major) _200 _m0[];\n+\t} g_BarnLights_1;\n+\t\n+\tlayout(set = 4, binding = 46) uniform texture2D g_bindless_Texture2D_float4[65536];\n+\tlayout(set = 4, binding = 29) uniform sampler g_bindless_Sampler[2048];\n+\tlayout(set = 4, binding = 29) uniform samplerShadow g_bindless_Sampler_1[2048];\n+\tlayout(set = 4, binding = 46) uniform texture3D g_bindless_Texture3D_float4[65536];\n+\tlayout(set = 4, binding = 46) uniform textureCubeArray g_bindless_TextureCubeArray_float4[65536];\n+\tlayout(set = 4, binding = 46) uniform textureCube g_bindless_TextureCube_float4[65536];\n+\t\n+\tlayout(location = 0) in vec4 input_0;\n+\tlayout(location = 1) in vec3 input_1;\n+\tlayout(location = 2) in vec3 input_2;\n+\tlayout(location = 3) in vec4 input_3;\n+\tlayout(location = 4) centroid in vec4 input_4;\n+\tlayout(location = 5) centroid in vec3 input_5;\n+\tlayout(location = 6) in vec4 input_6;\n+\tlayout(location = 0) out vec4 output_0;\n \t\n-\tvoid MainPs_inner()\n+\tvoid main()\n \t{\n-\t    float4 _11408 = gl_FragCoord;\n-\t    _11408.w = 1.0f / _11408.w;\n-\t    float4 _24079 = clamp(input_0, 0.001000000047497451305389404296875f.xxxx, 1.0f.xxxx);\n-\t    float3 _21709;\n-\t    if (dot(input_2.xyz, input_2.xyz) >= 1.0099999904632568359375f)\n+\t    vec4 _11408 = gl_FragCoord;\n+\t    _11408.w = 1.0 / _11408.w;\n+\t    vec4 _24079 = clamp(input_0, vec4(0.001000000047497451305389404296875), vec4(1.0));\n+\t    vec3 _21709;\n+\t    if (dot(input_2.xyz, input_2.xyz) >= 1.0099999904632568359375)\n \t    {\n \t        _21709 = input_5.xyz;\n \t    }\n \t    else\n \t    {\n \t        _21709 = input_2.xyz;\n \t    }\n-\t    bool _14874 = _Globals_1_g_bRenderBackfaceNormals != 0;\n+\t    bool _14874 = _Globals_.g_bRenderBackfaceNormals != 0;\n \t    bool _12885;\n \t    if (_14874)\n \t    {\n-\t        _12885 = _Globals_1_g_bDontFlipBackfaceNormals == 0;\n+\t        _12885 = _Globals_.g_bDontFlipBackfaceNormals == 0;\n \t    }\n \t    else\n \t    {\n \t        _12885 = false;\n \t    }\n-\t    float3 _10251;\n-\t    [branch]\n+\t    vec3 _10251;\n+\t    SPIRV_CROSS_BRANCH\n \t    if (_12885)\n \t    {\n-\t        _10251 = _21709 * (gl_FrontFacing ? 1.0f : (-1.0f));\n+\t        _10251 = _21709 * (gl_FrontFacing ? 1.0 : (-1.0));\n \t    }\n \t    else\n \t    {\n \t        _10251 = _21709;\n \t    }\n-\t    float3 _24347 = normalize(_10251);\n-\t    float3 _10061 = input_1 + PerViewConstantBufferCsgo_t_1_m20.xyz;\n-\t    float4 _19334 = g_bindless_Texture2D_float4[_Globals_1_g_tColor].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfigAllowGlobalMipBias], input_3.xy);\n-\t    float4 _19068 = g_bindless_Texture2D_float4[_Globals_1_g_tAmbientOcclusion].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfig], float2(input_3.xy).xy);\n-\t    float4 _19372 = g_bindless_Texture2D_float4[_Globals_1_g_tNormal].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfig], input_3.xy);\n+\t    vec3 _24347 = normalize(_10251);\n+\t    vec3 _10061 = input_1 + PerViewConstantBufferCsgo_t._m20.xyz;\n+\t    vec4 _19334 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tColor], g_bindless_Sampler[_Globals_.g_sUserConfigAllowGlobalMipBias]), input_3.xy);\n+\t    vec4 _19068 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tAmbientOcclusion], g_bindless_Sampler[_Globals_.g_sUserConfig]), vec2(input_3.xy).xy);\n+\t    vec4 _19372 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tNormal], g_bindless_Sampler[_Globals_.g_sUserConfig]), input_3.xy);\n \t    float _16000 = _19372.x;\n \t    float _19720 = _19372.y;\n-\t    float _16783 = (_16000 + _19720) - 1.00392162799835205078125f;\n+\t    float _16783 = (_16000 + _19720) - 1.00392162799835205078125;\n \t    float _11176 = _16000 - _19720;\n-\t    float3 _8418 = normalize(float3(float2(_16783, _11176), (1.0f - abs(_16783)) - abs(_11176)));\n+\t    vec3 _8418 = normalize(vec3(vec2(_16783, _11176), (1.0 - abs(_16783)) - abs(_11176)));\n \t    bool _12886;\n \t    if (_14874)\n \t    {\n-\t        _12886 = _Globals_1_g_bDontFlipBackfaceNormals == 0;\n+\t        _12886 = _Globals_.g_bDontFlipBackfaceNormals == 0;\n \t    }\n \t    else\n \t    {\n@@ -708,12 +724,12 @@ PS\n \t    {\n \t        _24327 = false;\n \t    }\n-\t    float3 _12631 = input_2.xyz * (_24327 ? (-1.0f) : 1.0f);\n-\t    float _23240 = (input_6.w > 0.0f) ? 1.0f : (-1.0f);\n-\t    float3 _14435 = cross(_12631.xyz, input_6.xyz) * _23240;\n-\t    bool4 _24464 = bool4(PerViewConstantBufferCsgo_t_1_m2.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m2.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m2.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m2.w != int4(0, 0, 0, 0).w);\n+\t    vec3 _12631 = input_2.xyz * (_24327 ? (-1.0) : 1.0);\n+\t    float _23240 = (input_6.w > 0.0) ? 1.0 : (-1.0);\n+\t    vec3 _14435 = cross(_12631.xyz, input_6.xyz) * _23240;\n+\t    bvec4 _24464 = notEqual(PerViewConstantBufferCsgo_t._m2, ivec4(0));\n \t    bool _20058 = _24464.w;\n-\t    float3 _7424;\n+\t    vec3 _7424;\n \t    if (_20058)\n \t    {\n \t        _7424 = -_14435;\n@@ -722,31 +738,31 @@ PS\n \t    {\n \t        _7424 = _14435;\n \t    }\n-\t    float3 _20480;\n+\t    vec3 _20480;\n \t    if (!_24327)\n \t    {\n-\t        float3 _7482 = _8418;\n+\t        vec3 _7482 = _8418;\n \t        _7482.y = -_8418.y;\n \t        _20480 = _7482;\n \t    }\n \t    else\n \t    {\n \t        _20480 = _8418;\n \t    }\n-\t    float3 _8357 = _Globals_1_g_flReflectance.xxx;\n-\t    float3 _21710;\n-\t    [branch]\n-\t    if (_Globals_1_g_fTextureNormalContrast != 1.0f)\n+\t    vec3 _8357 = vec3(_Globals_.g_flReflectance);\n+\t    vec3 _21710;\n+\t    SPIRV_CROSS_BRANCH\n+\t    if (_Globals_.g_fTextureNormalContrast != 1.0)\n \t    {\n-\t        float2 _8828 = _20480.yx * _Globals_1_g_fTextureNormalContrast;\n+\t        vec2 _8828 = _20480.yx * _Globals_.g_fTextureNormalContrast;\n \t        float _16674 = _8828.x;\n-\t        float3 _8673 = _20480;\n+\t        vec3 _8673 = _20480;\n \t        _8673.y = _16674;\n \t        _8673.x = _8828.y;\n \t        bool _12887;\n \t        if (_14874)\n \t        {\n-\t            _12887 = _Globals_1_g_bDontFlipBackfaceNormals == 0;\n+\t            _12887 = _Globals_.g_bDontFlipBackfaceNormals == 0;\n \t        }\n \t        else\n \t        {\n@@ -761,9 +777,9 @@ PS\n \t        {\n \t            _24328 = false;\n \t        }\n-\t        float3 _9739 = input_2.xyz * (_24328 ? (-1.0f) : 1.0f);\n-\t        float3 _24682 = cross(_9739.xyz, input_6.xyz) * _23240;\n-\t        float3 _7425;\n+\t        vec3 _9739 = input_2.xyz * (_24328 ? (-1.0) : 1.0);\n+\t        vec3 _24682 = cross(_9739.xyz, input_6.xyz) * _23240;\n+\t        vec3 _7425;\n \t        if (_20058)\n \t        {\n \t            _7425 = -_24682;\n@@ -772,10 +788,10 @@ PS\n \t        {\n \t            _7425 = _24682;\n \t        }\n-\t        float3 _20481;\n+\t        vec3 _20481;\n \t        if (!_24328)\n \t        {\n-\t            float3 _16556 = _8673;\n+\t            vec3 _16556 = _8673;\n \t            _16556.y = -_16674;\n \t            _20481 = _16556;\n \t        }\n@@ -789,234 +805,241 @@ PS\n \t    {\n \t        _21710 = normalize((((input_6.xyz * _20480.x).xyz + (_7424.xyz * _20480.y)).xyz + (_12631.xyz * _20480.z)).xyz);\n \t    }\n-\t    bool3 _15080 = all(bool3(true, true, true)).xxx;\n-\t    float3 _17892 = float3(_15080.x ? _21710.x : 1.0f.xxx.x, _15080.y ? _21710.y : 1.0f.xxx.y, _15080.z ? _21710.z : 1.0f.xxx.z);\n-\t    float3 _10560 = _24347.xyz;\n-\t    float3 _11099 = ddx(_10560);\n-\t    float3 _9175 = ddy(_10560);\n-\t    float3 _10347 = _11099.xyz;\n-\t    float3 _12420 = _9175.xyz;\n-\t    float2 _21813 = max(clamp((((_19372.zz - 0.5f.xx) * _Globals_1_g_fTextureRoughnessContrast) + 0.5f.xx).xy * _Globals_1_g_fTextureRoughnessBrightness, 0.0f.xx, 1.0f.xx).xy, pow(saturate(max(dot(_10347, _10347), dot(_12420, _12420))), 0.333000004291534423828125f).xx);\n-\t    float3 _15598 = -_24347;\n-\t    float4 _23875 = float4(_21710.xyz, 1.0f);\n-\t    bool4 _24465 = bool4(PerViewConstantBufferCsgo_t_1_m0.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m0.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m0.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m0.w != int4(0, 0, 0, 0).w);\n+\t    vec3 _17892 = mix(vec3(1.0), _21710, bvec3(all(bvec3(true))));\n+\t    vec3 _10560 = _24347.xyz;\n+\t    vec3 _11099 = dFdx(_10560);\n+\t    vec3 _9175 = dFdy(_10560);\n+\t    vec3 _10347 = _11099.xyz;\n+\t    vec3 _12420 = _9175.xyz;\n+\t    vec2 _21813 = max(saturate((((_19372.zz - vec2(0.5)) * _Globals_.g_fTextureRoughnessContrast) + vec2(0.5)).xy * _Globals_.g_fTextureRoughnessBrightness).xy, vec2(pow(saturate(max(dot(_10347, _10347), dot(_12420, _12420))), 0.333000004291534423828125)));\n+\t    vec3 _15598 = -_24347;\n+\t    vec4 _23875 = vec4(_21710.xyz, 1.0);\n+\t    bvec4 _24465 = notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0));\n \t    float _21711;\n \t    if (_24465.x)\n \t    {\n-\t        float3 _11394 = _24347.xyz;\n-\t        float2 _11086 = ((floor(_11408.xy * PerViewConstantBufferCsgo_t_1_m10) * PerViewConstantBufferCsgo_t_1_m9.xy) + (PerViewConstantBufferCsgo_t_1_m9.xy * 0.5f)).xy;\n-\t        float4 _18418 = g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m5].GatherRed(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _11086).xyzw - _11408.zzzz;\n+\t        vec3 _11394 = _24347.xyz;\n+\t        vec2 _11086 = ((floor(_11408.xy * PerViewConstantBufferCsgo_t._m10) * PerViewConstantBufferCsgo_t._m9.xy) + (PerViewConstantBufferCsgo_t._m9.xy * 0.5)).xy;\n+\t        vec4 _18418 = textureGather(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m5], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _11086).xyzw - _11408.zzzz;\n \t        float _18579 = _18418.w;\n \t        float _12013 = _18418.z;\n \t        bool _12285 = abs(_12013) < _18579;\n-\t        float2 _23168;\n+\t        vec2 _23168;\n \t        if (_12285)\n \t        {\n-\t            _23168 = float2(PerViewConstantBufferCsgo_t_1_m9.x, 0.0f);\n+\t            _23168 = vec2(PerViewConstantBufferCsgo_t._m9.x, 0.0);\n \t        }\n \t        else\n \t        {\n-\t            _23168 = 0.0f.xx;\n+\t            _23168 = vec2(0.0);\n \t        }\n \t        float _20965 = _12285 ? _12013 : _18579;\n \t        float _15372 = _18418.x;\n \t        bool _12286 = abs(_15372) < _20965;\n-\t        float2 _23169;\n+\t        vec2 _23169;\n \t        if (_12286)\n \t        {\n-\t            _23169 = float2(0.0f, PerViewConstantBufferCsgo_t_1_m9.y);\n+\t            _23169 = vec2(0.0, PerViewConstantBufferCsgo_t._m9.y);\n \t        }\n \t        else\n \t        {\n \t            _23169 = _23168;\n \t        }\n-\t        bool2 _13083 = (abs(_18418.y) < (_12286 ? _15372 : _20965)).xx;\n-\t        float4 _10010 = normalize(float4(PerViewLightingConstantBufferGpu_t_1_m2.x * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[0].xy, 0.25f))), 0.5f, 0.5f), PerViewLightingConstantBufferGpu_t_1_m2.y * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[1].xy, 0.25f))), 0.5f, 0.5f), PerViewLightingConstantBufferGpu_t_1_m2.z * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[2].xy, 0.25f))), 0.5f, 0.5f), PerViewLightingConstantBufferGpu_t_1_m2.w * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[3].xy, 0.25f))), 0.5f, 0.5f)));\n-\t        float4 _13232 = max(float4(dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[0].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[1].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[2].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[3].xyz, _11394)).xyzw, 0.0f.xxxx) * normalize(clamp(((_10010 - max(max(_10010.x, _10010.y), max(_10010.z, _10010.w)).xxxx) + 0.20000000298023223876953125f.xxxx) * 5.0f.xxxx, 0.0f.xxxx, 1.0f.xxxx));\n-\t        _21711 = (1.0f / (dot(_13232, 1.0f.xxxx) + PerViewLightingConstantBufferGpu_t_1_m3.x)) * (PerViewLightingConstantBufferGpu_t_1_m3.x + dot(_13232, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m4].SampleLevel(g_bindless_Sampler[_Globals_1_g_sPointClamp], (_11086 + float2(_13083.x ? PerViewConstantBufferCsgo_t_1_m9.xy.x : _23169.x, _13083.y ? PerViewConstantBufferCsgo_t_1_m9.xy.y : _23169.y).xy).xy, 0.0f)));\n+\t        vec4 _10010 = normalize(vec4(PerViewLightingConstantBufferGpu_t._m2.x * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[0].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m2.y * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[1].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m2.z * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[2].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m2.w * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[3].xy, 0.25))), 0.5, 0.5)));\n+\t        vec4 _13232 = max(vec4(dot(PerViewLightingConstantBufferGpu_t._m1._m0[0].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m1._m0[1].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m1._m0[2].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m1._m0[3].xyz, _11394)).xyzw, vec4(0.0)) * normalize(saturate(((_10010 - vec4(max(max(_10010.x, _10010.y), max(_10010.z, _10010.w)))) + vec4(0.20000000298023223876953125)) * vec4(5.0)));\n+\t        _21711 = (1.0 / (dot(_13232, vec4(1.0)) + PerViewLightingConstantBufferGpu_t._m3.x)) * (PerViewLightingConstantBufferGpu_t._m3.x + dot(_13232, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], g_bindless_Sampler[_Globals_.g_sPointClamp]), (_11086 + mix(_23169, PerViewConstantBufferCsgo_t._m9.xy, bvec2(abs(_18418.y) < (_12286 ? _15372 : _20965))).xy).xy, 0.0)));\n \t    }\n \t    else\n \t    {\n-\t        _21711 = 1.0f;\n+\t        _21711 = 1.0;\n \t    }\n-\t    float _21712;\n-\t    [branch]\n-\t    if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _21710.xyz);\n+\t    float _12320;\n+\t    SPIRV_CROSS_BRANCH\n+\t    if (_8634 > 0.0)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13136;\n-\t        float3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n+\t        float _12503;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m11 != 0)\n \t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13136;\n+\t            vec3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                _13136 = 1.0f;\n-\t                _14975 = 0.0f.xxx;\n-\t                _10191 = -1;\n-\t                break;\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t._m11))\n+\t                {\n+\t                    _13136 = 1.0;\n+\t                    _14975 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n+\t                }\n+\t                vec4 _18322 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_13039];\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m13[_13039])\n+\t                {\n+\t                    vec3 _19470 = vec3(_12779, _18322.yz);\n+\t                    vec2 _24804 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m15)) + vec2(PerViewLightingConstantBufferGpu_t._m14));\n+\t                    vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_13039].xy;\n+\t                    vec3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13136 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20488;\n+\t                    _10191 = _13039;\n+\t                    break;\n+\t                }\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n \t            }\n-\t            float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_1.xyz, 1.0f));\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float3 _19470 = float3(_12779, _18322.yz);\n-\t                float2 _24804 = _19470.xy;\n-\t                float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);\n-\t                float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;\n-\t                float3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13136 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20488;\n-\t                _10191 = _13039;\n-\t                break;\n-\t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n-\t        {\n-\t            float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12));\n-\t            float _12501;\n-\t            [branch]\n-\t            if (_13136 < 1.0f)\n-\t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))\n+\t                float _18270 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);\n+\t                float _12501;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13136 < 1.0)\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_1.xyz, 1.0f));\n-\t                    float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;\n-\t                    float3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12));\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m11 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19671 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_15335];\n+\t                        vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_15335].xy;\n+\t                        vec3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        _7934 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0;\n+\t                    }\n+\t                    _12501 = mix(_7934, _18270, _13136);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0f;\n+\t                    _12501 = _18270;\n \t                }\n-\t                _12501 = lerp(_7934, _18270, _13136);\n+\t                _19363 = _12501;\n \t            }\n \t            else\n \t            {\n-\t                _12501 = _18270;\n+\t                _19363 = 1.0;\n \t            }\n-\t            _19363 = _12501;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0f;\n-\t        }\n-\t        float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));\n-\t        float _12502;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);\n+\t            float _13279 = mix(_19363, 1.0, saturate((distance(_10061.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m17) + PerViewLightingConstantBufferGpu_t._m16));\n+\t            float _12502;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12502 = min(_13279, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m6], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12502 = _13279;\n+\t            }\n+\t            _12503 = _12502;\n \t        }\n \t        else\n \t        {\n-\t            _12502 = _13279;\n+\t            _12503 = 1.0;\n \t        }\n-\t        _21712 = _12502;\n+\t        _12320 = _12503;\n \t    }\n \t    else\n \t    {\n-\t        _21712 = 1.0f;\n+\t        _12320 = 1.0;\n \t    }\n-\t    float3 _9716;\n-\t    float3 _24878;\n-\t    [branch]\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _21710.xyz) * _21712) > 0.0f)\n+\t    vec3 _9716;\n+\t    vec3 _24878;\n+\t    SPIRV_CROSS_BRANCH\n+\t    if ((_8634 * _12320) > 0.0)\n \t    {\n-\t        bool3 _19899 = all(bool3(_17892.x == 1.0f.xxx.x, _17892.y == 1.0f.xxx.y, _17892.z == 1.0f.xxx.z)).xxx;\n-\t        float _11797 = max(0.0f, dot(_21710.xyz, PerViewLightingConstantBufferGpu_t_1_m9.xyz));\n-\t        float2 _9840 = max(_21813, PerViewLightingConstantBufferGpu_t_1_m9.w.xx);\n-\t        float3 _12281 = normalize(PerViewLightingConstantBufferGpu_t_1_m9.xyz + (-normalize(_10061.xyz - PerViewConstantBuffer_t_1_m3.xyz)).xyz).xyz;\n-\t        float _12386 = dot(_12281, float3(_19899.x ? _21710.xyz.x : _17892.x, _19899.y ? _21710.xyz.y : _17892.y, _19899.z ? _21710.xyz.z : _17892.z).xyz);\n-\t        float _19210 = max(0.0f, dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _12281));\n+\t        float _11797 = max(0.0, dot(_21710.xyz, PerViewLightingConstantBufferGpu_t._m9.xyz));\n+\t        vec2 _9840 = max(_21813, vec2(PerViewLightingConstantBufferGpu_t._m9.w));\n+\t        vec3 _12281 = normalize(PerViewLightingConstantBufferGpu_t._m9.xyz + (-normalize(_10061.xyz - PerViewConstantBuffer_t._m3.xyz)).xyz).xyz;\n+\t        float _12386 = dot(_12281, mix(_17892, _21710.xyz, bvec3(all(equal(_17892, vec3(1.0))))).xyz);\n+\t        float _19210 = max(0.0, dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _12281));\n \t        float _9850 = _9840.x;\n \t        float _25211 = _9850 * _9850;\n \t        float _19095 = _25211 * _25211;\n-\t        float _15346 = ((_12386 * _12386) * (_19095 - 1.0f)) + 1.0f;\n-\t        float3 _16808 = (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _21712).xyz;\n-\t        _9716 = ((_8357.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0f) + 2.0f)))).xyz * _11797).xyz * _16808;\n-\t        _24878 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (_11797.xxx.xyz * _16808);\n+\t        float _15346 = ((_12386 * _12386) * (_19095 - 1.0)) + 1.0;\n+\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m10.xyz * _12320).xyz;\n+\t        _9716 = ((_8357.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0) + 2.0)))).xyz * _11797).xyz * _16808;\n+\t        _24878 = PerViewLightingConstantBufferGpu_t._m4.xyz + (vec3(_11797).xyz * _16808);\n \t    }\n \t    else\n \t    {\n-\t        _9716 = 0.0f.xxx;\n-\t        _24878 = PerViewLightingConstantBufferGpu_t_1_m4.xyz;\n+\t        _9716 = vec3(0.0);\n+\t        _24878 = PerViewLightingConstantBufferGpu_t._m4.xyz;\n \t    }\n-\t    bool4 _24466 = bool4(PerViewConstantBufferCsgo_t_1_m1.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m1.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m1.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m1.w != int4(0, 0, 0, 0).w);\n+\t    bvec4 _24466 = notEqual(PerViewConstantBufferCsgo_t._m1, ivec4(0));\n \t    bool _20060 = _24466.x;\n-\t    float4 _19364;\n+\t    vec4 _19364;\n \t    if (_20060)\n \t    {\n-\t        float4 _18621 = mul(PerViewConstantBufferCsgo_t_1_m8, float4(_10061.xyz, 1.0f).xyzw);\n+\t        vec4 _18621 = vec4(_10061.xyz, 1.0).xyzw * PerViewConstantBufferCsgo_t._m8;\n \t        float _20176 = _18621.w;\n-\t        float2 _11414 = _18621.xy / _20176.xx;\n-\t        float4 _6651;\n-\t        _6651.x = clamp(((_11414.x + 1.0f) * PerViewConstantBuffer_t_1_m1.x) * 0.5f, 0.0f, PerViewConstantBuffer_t_1_m1.x - 1.0f);\n-\t        _6651.y = clamp(((1.0f - _11414.y) * PerViewConstantBuffer_t_1_m1.y) * 0.5f, 0.0f, PerViewConstantBuffer_t_1_m1.y - 1.0f);\n+\t        vec2 _11414 = _18621.xy / vec2(_20176);\n+\t        vec4 _6651;\n+\t        _6651.x = clamp(((_11414.x + 1.0) * PerViewConstantBuffer_t._m1.x) * 0.5, 0.0, PerViewConstantBuffer_t._m1.x - 1.0);\n+\t        _6651.y = clamp(((1.0 - _11414.y) * PerViewConstantBuffer_t._m1.y) * 0.5, 0.0, PerViewConstantBuffer_t._m1.y - 1.0);\n \t        _6651.w = _20176;\n \t        _19364 = _6651;\n \t    }\n \t    else\n \t    {\n \t        _19364 = _11408;\n \t    }\n-\t    uint2 _12083 = uint2(_19364.xy - PerViewConstantBuffer_t_1_m0.xy) >> PerViewLightingConstantBufferGpu_t_1_m6.x.xx;\n-\t    uint _10838 = PerViewLightingConstantBufferGpu_t_1_m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t_1_m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t_1_m5.z);\n-\t    uint _23393 = PerViewLightingConstantBufferGpu_t_1_m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t_1_m7.x, 0.0f, PerViewLightingConstantBufferGpu_t_1_m7.y)) * PerViewLightingConstantBufferGpu_t_1_m5.z);\n-\t    float3 _13137;\n-\t    float3 _16324;\n+\t    uvec2 _12083 = uvec2(_19364.xy - PerViewConstantBuffer_t._m0.xy) >> uvec2(PerViewLightingConstantBufferGpu_t._m6.x);\n+\t    uint _10838 = PerViewLightingConstantBufferGpu_t._m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t._m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t._m5.z);\n+\t    uint _23393 = PerViewLightingConstantBufferGpu_t._m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t._m7.x, 0.0, PerViewLightingConstantBufferGpu_t._m7.y)) * PerViewLightingConstantBufferGpu_t._m5.z);\n+\t    vec3 _13137;\n+\t    vec3 _16324;\n \t    _13137 = _9716;\n \t    _16324 = _24878;\n \t    uint _21567;\n-\t    float3 _13138;\n-\t    float3 _16325;\n+\t    vec3 _13138;\n+\t    vec3 _16325;\n \t    uint _17017 = 0u;\n \t    for (;;)\n \t    {\n-\t        if (!(_17017 < PerViewLightingConstantBufferGpu_t_1_m5.z))\n+\t        if (!(_17017 < PerViewLightingConstantBufferGpu_t._m5.z))\n \t        {\n \t            break;\n \t        }\n-\t        uint _14475 = WaveActiveBitOr(g_CullBits.Load<uint>((_10838 + _17017) * 4 + 0) & g_CullBits.Load<uint>((_23393 + _17017) * 4 + 0));\n+\t        uint _14475 = subgroupOr(g_CullBits_1._m0[_10838 + _17017] & g_CullBits_1._m0[_23393 + _17017]);\n \t        _13138 = _13137;\n \t        _16325 = _16324;\n \t        uint _20344;\n-\t        float3 _13212;\n-\t        float3 _15670;\n+\t        vec3 _13212;\n+\t        vec3 _15670;\n \t        uint _17018 = _14475;\n \t        for (;;)\n \t        {\n \t            if (!(_17018 != 0u))\n \t            {\n \t                break;\n \t            }\n-\t            int _12608 = int(firstbitlow(_17018) + (_17017 * 32u));\n+\t            int _12608 = int(uint(findLSB(_17018)) + (_17017 * 32u));\n \t            _20344 = _17018 & (_17018 - 1u);\n \t            do\n \t            {\n-\t                float4x4 _14097 = float4x4(g_BarnLights.Load<float>(_12608 * 480 + 0), g_BarnLights.Load<float>(_12608 * 480 + 16), g_BarnLights.Load<float>(_12608 * 480 + 32), g_BarnLights.Load<float>(_12608 * 480 + 48), g_BarnLights.Load<float>(_12608 * 480 + 4), g_BarnLights.Load<float>(_12608 * 480 + 20), g_BarnLights.Load<float>(_12608 * 480 + 36), g_BarnLights.Load<float>(_12608 * 480 + 52), g_BarnLights.Load<float>(_12608 * 480 + 8), g_BarnLights.Load<float>(_12608 * 480 + 24), g_BarnLights.Load<float>(_12608 * 480 + 40), g_BarnLights.Load<float>(_12608 * 480 + 56), g_BarnLights.Load<float>(_12608 * 480 + 12), g_BarnLights.Load<float>(_12608 * 480 + 28), g_BarnLights.Load<float>(_12608 * 480 + 44), g_BarnLights.Load<float>(_12608 * 480 + 60));\n-\t                float4 _24893 = mul(float4(input_1.xyz, 1.0f), _14097);\n-\t                float3 _10521 = _24893.xyz / _24893.w.xxx;\n-\t                float4 _22905;\n+\t                vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(input_1.xyz, 1.0);\n+\t                vec3 _10521 = _24893.xyz / vec3(_24893.w);\n+\t                vec4 _22905;\n \t                _22905.x = _10521.x;\n \t                _22905.y = _10521.y;\n \t                float _21776 = _10521.z;\n \t                _22905.z = _21776;\n-\t                float3 _21642 = _22905.xyz;\n+\t                vec3 _21642 = _22905.xyz;\n \t                bool _7426;\n-\t                if (all(bool3(_22905.xyz.x > float3(-1.0f, -1.0f, 0.0f).x, _22905.xyz.y > float3(-1.0f, -1.0f, 0.0f).y, _22905.xyz.z > float3(-1.0f, -1.0f, 0.0f).z)))\n+\t                if (all(greaterThan(_22905.xyz, vec3(-1.0, -1.0, 0.0))))\n \t                {\n-\t                    _7426 = all(bool3(_22905.xyz.x < 1.0f.xxx.x, _22905.xyz.y < 1.0f.xxx.y, _22905.xyz.z < 1.0f.xxx.z));\n+\t                    _7426 = all(lessThan(_22905.xyz, vec3(1.0)));\n \t                }\n \t                else\n \t                {\n@@ -1029,113 +1052,111 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    float4x3 _16509 = float4x3(g_BarnLights.Load<float>(_12608 * 480 + 272), g_BarnLights.Load<float>(_12608 * 480 + 288), g_BarnLights.Load<float>(_12608 * 480 + 304), g_BarnLights.Load<float>(_12608 * 480 + 276), g_BarnLights.Load<float>(_12608 * 480 + 292), g_BarnLights.Load<float>(_12608 * 480 + 308), g_BarnLights.Load<float>(_12608 * 480 + 280), g_BarnLights.Load<float>(_12608 * 480 + 296), g_BarnLights.Load<float>(_12608 * 480 + 312), g_BarnLights.Load<float>(_12608 * 480 + 284), g_BarnLights.Load<float>(_12608 * 480 + 300), g_BarnLights.Load<float>(_12608 * 480 + 316));\n-\t                    float3 _6368 = abs(mul(float4(input_1.xyz, 1.0f), _16509).xyz);\n-\t                    _12888 = !all(bool3(_6368.x <= 1.0f.xxx.x, _6368.y <= 1.0f.xxx.y, _6368.z <= 1.0f.xxx.z));\n+\t                    _12888 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(input_1.xyz, 1.0)).xyz), vec3(1.0)));\n \t                }\n \t                if (_12888)\n \t                {\n \t                    _13212 = _13138;\n \t                    _15670 = _16325;\n \t                    break;\n \t                }\n-\t                float _23572 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;\n-\t                float _18492 = (2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).z) * g_BarnLights.Load<float4>(_12608 * 480 + 176).z;\n-\t                float _14805 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).x;\n-\t                float _9058 = _14805 * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;\n-\t                float _17330 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).w;\n-\t                float _19825 = _17330 * g_BarnLights.Load<float4>(_12608 * 480 + 176).z;\n-\t                float3 _16268 = float3(_9058 - _19825, (1.0f - (_14805 * g_BarnLights.Load<float4>(_12608 * 480 + 176).x)) - _18492, (_23572 * g_BarnLights.Load<float4>(_12608 * 480 + 176).z) + (_17330 * g_BarnLights.Load<float4>(_12608 * 480 + 176).x)) * g_BarnLights.Load<float3>(_12608 * 480 + 192).z;\n+\t                float _23572 = 2.0 * g_BarnLights_1._m0[_12608]._m5.y;\n+\t                float _18492 = (2.0 * g_BarnLights_1._m0[_12608]._m5.z) * g_BarnLights_1._m0[_12608]._m5.z;\n+\t                float _14805 = 2.0 * g_BarnLights_1._m0[_12608]._m5.x;\n+\t                float _9058 = _14805 * g_BarnLights_1._m0[_12608]._m5.y;\n+\t                float _17330 = 2.0 * g_BarnLights_1._m0[_12608]._m5.w;\n+\t                float _19825 = _17330 * g_BarnLights_1._m0[_12608]._m5.z;\n+\t                vec3 _16268 = vec3(_9058 - _19825, (1.0 - (_14805 * g_BarnLights_1._m0[_12608]._m5.x)) - _18492, (_23572 * g_BarnLights_1._m0[_12608]._m5.z) + (_17330 * g_BarnLights_1._m0[_12608]._m5.x)) * g_BarnLights_1._m0[_12608]._m6.z;\n \t                float _21316;\n-\t                if (g_BarnLights.Load<float4>(_12608 * 480 + 144).z > 0.0f)\n+\t                if (g_BarnLights_1._m0[_12608]._m3.z > 0.0)\n \t                {\n-\t                    _21316 = min(1.0f, _21776 * g_BarnLights.Load<float4>(_12608 * 480 + 144).z);\n+\t                    _21316 = min(1.0, _21776 * g_BarnLights_1._m0[_12608]._m3.z);\n \t                }\n \t                else\n \t                {\n-\t                    _21316 = 1.0f;\n+\t                    _21316 = 1.0;\n \t                }\n \t                float _19667;\n-\t                if (g_BarnLights.Load<float4>(_12608 * 480 + 144).w > 0.0f)\n+\t                if (g_BarnLights_1._m0[_12608]._m3.w > 0.0)\n \t                {\n-\t                    _19667 = _21316 * min(1.0f, (1.0f - _21776) * g_BarnLights.Load<float4>(_12608 * 480 + 144).w);\n+\t                    _19667 = _21316 * min(1.0, (1.0 - _21776) * g_BarnLights_1._m0[_12608]._m3.w);\n \t                }\n \t                else\n \t                {\n \t                    _19667 = _21316;\n \t                }\n-\t                float3 _11179;\n+\t                vec3 _11179;\n \t                float _11633;\n-\t                if (g_BarnLights.Load<float4>(_12608 * 480 + 128).w != 0.0f)\n+\t                if (g_BarnLights_1._m0[_12608]._m2.w != 0.0)\n \t                {\n-\t                    float3 _10017 = g_BarnLights.Load<float4>(_12608 * 480 + 128).xyz - input_1.xyz;\n+\t                    vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - input_1.xyz;\n \t                    float _18345 = dot(_10017, _10017);\n \t                    float _17647 = sqrt(_18345);\n-\t                    float3 _12302 = _10017 - _16268;\n-\t                    float3 _10210;\n+\t                    vec3 _12302 = _10017 - _16268;\n+\t                    vec3 _10210;\n \t                    do\n \t                    {\n-\t                        float3 _20229 = (_10017 + _16268) - _12302;\n+\t                        vec3 _20229 = (_10017 + _16268) - _12302;\n \t                        float _25105 = dot(-_12302, _20229);\n-\t                        if (_25105 <= 0.0f)\n+\t                        if (_25105 <= 0.0)\n \t                        {\n \t                            _10210 = _12302;\n \t                            break;\n \t                        }\n \t                        else\n \t                        {\n-\t                            _10210 = _12302 + (_20229 * min(1.0f, _25105 / dot(_20229, _20229)));\n+\t                            _10210 = _12302 + (_20229 * min(1.0, _25105 / dot(_20229, _20229)));\n \t                            break;\n \t                        }\n \t                        break; // unreachable workaround\n \t                    } while(false);\n-\t                    _11179 = _10017 / _17647.xxx;\n-\t                    _11633 = ((_19667 * (g_BarnLights.Load<float4>(_12608 * 480 + 128).w / max(_18345, g_BarnLights.Load<float4>(_12608 * 480 + 128).w))) * saturate(g_BarnLights.Load<float4>(_12608 * 480 + 144).x + (g_BarnLights.Load<float4>(_12608 * 480 + 144).y * _17647))) * saturate(g_BarnLights.Load<float3>(_12608 * 480 + 192).x + (g_BarnLights.Load<float3>(_12608 * 480 + 192).y * dot(float3((1.0f - (_23572 * g_BarnLights.Load<float4>(_12608 * 480 + 176).y)) - _18492, _9058 + _19825, (_14805 * g_BarnLights.Load<float4>(_12608 * 480 + 176).z) - (_17330 * g_BarnLights.Load<float4>(_12608 * 480 + 176).y)), normalize(_10210))));\n+\t                    _11179 = _10017 / vec3(_17647);\n+\t                    _11633 = ((_19667 * (g_BarnLights_1._m0[_12608]._m2.w / max(_18345, g_BarnLights_1._m0[_12608]._m2.w))) * saturate(g_BarnLights_1._m0[_12608]._m3.x + (g_BarnLights_1._m0[_12608]._m3.y * _17647))) * saturate(g_BarnLights_1._m0[_12608]._m6.x + (g_BarnLights_1._m0[_12608]._m6.y * dot(vec3((1.0 - (_23572 * g_BarnLights_1._m0[_12608]._m5.y)) - _18492, _9058 + _19825, (_14805 * g_BarnLights_1._m0[_12608]._m5.z) - (_17330 * g_BarnLights_1._m0[_12608]._m5.y)), normalize(_10210))));\n \t                }\n \t                else\n \t                {\n-\t                    _11179 = g_BarnLights.Load<float4>(_12608 * 480 + 128).xyz;\n+\t                    _11179 = g_BarnLights_1._m0[_12608]._m2.xyz;\n \t                    _11633 = _19667;\n \t                }\n-\t                float3 _17828 = (g_BarnLights.Load<float4>(_12608 * 480 + 160).xyz * 1.0f).xyz * _11633;\n+\t                vec3 _17828 = (g_BarnLights_1._m0[_12608]._m4.xyz * 1.0).xyz * _11633;\n \t                bool _24419;\n-\t                if (g_BarnLights.Load<float4>(_12608 * 480 + 208).z > 0.0f)\n+\t                if (g_BarnLights_1._m0[_12608]._m8.z > 0.0)\n \t                {\n \t                    _24419 = !_20060;\n \t                }\n \t                else\n \t                {\n \t                    _24419 = false;\n \t                }\n-\t                float3 _21548;\n-\t                [branch]\n-\t                if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w == 0.0f)\n+\t                vec3 _21548;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (g_BarnLights_1._m0[_12608]._m4.w == 0.0)\n \t                {\n \t                    float _10342;\n \t                    do\n \t                    {\n-\t                        float2 _22154 = abs(_22905.xy);\n-\t                        if (g_BarnLights.Load<float4>(_12608 * 480 + 224).z == 0.0f)\n+\t                        vec2 _22154 = abs(_22905.xy);\n+\t                        if (g_BarnLights_1._m0[_12608]._m9.z == 0.0)\n \t                        {\n-\t                            _10342 = smoothstep(1.0f, g_BarnLights.Load<float4>(_12608 * 480 + 224).x, _22154.x) * smoothstep(1.0f, g_BarnLights.Load<float4>(_12608 * 480 + 224).y, _22154.y);\n+\t                            _10342 = smoothstep(1.0, g_BarnLights_1._m0[_12608]._m9.x, _22154.x) * smoothstep(1.0, g_BarnLights_1._m0[_12608]._m9.y, _22154.y);\n \t                            break;\n \t                        }\n \t                        else\n \t                        {\n \t                            float _11473 = _22154.x;\n-\t                            float _15266 = 2.0f / g_BarnLights.Load<float4>(_12608 * 480 + 224).z;\n+\t                            float _15266 = 2.0 / g_BarnLights_1._m0[_12608]._m9.z;\n \t                            float _15019 = _22154.y;\n-\t                            float _23041 = (-0.5f) * g_BarnLights.Load<float4>(_12608 * 480 + 224).z;\n-\t                            float _11981 = (g_BarnLights.Load<float4>(_12608 * 480 + 224).x * g_BarnLights.Load<float4>(_12608 * 480 + 224).y) * pow(max(pow(g_BarnLights.Load<float4>(_12608 * 480 + 224).y * _11473, _15266) + pow(g_BarnLights.Load<float4>(_12608 * 480 + 224).x * _15019, _15266), 1.1754943508222875079687365372222e-38f), _23041);\n-\t                            float _16524 = pow(max(pow(_11473, _15266) + pow(_15019, _15266), 1.1754943508222875079687365372222e-38f), _23041);\n+\t                            float _23041 = (-0.5) * g_BarnLights_1._m0[_12608]._m9.z;\n+\t                            float _11981 = (g_BarnLights_1._m0[_12608]._m9.x * g_BarnLights_1._m0[_12608]._m9.y) * pow(max(pow(g_BarnLights_1._m0[_12608]._m9.y * _11473, _15266) + pow(g_BarnLights_1._m0[_12608]._m9.x * _15019, _15266), 1.1754943508222875079687365372222e-38), _23041);\n+\t                            float _16524 = pow(max(pow(_11473, _15266) + pow(_15019, _15266), 1.1754943508222875079687365372222e-38), _23041);\n \t                            if (_11981 < _16524)\n \t                            {\n-\t                                _10342 = smoothstep(_16524, _11981, 1.0f);\n+\t                                _10342 = smoothstep(_16524, _11981, 1.0);\n \t                                break;\n \t                            }\n \t                            else\n \t                            {\n-\t                                _10342 = float(_16524 > 1.0f);\n+\t                                _10342 = float(_16524 > 1.0);\n \t                                break;\n \t                            }\n \t                            break; // unreachable workaround\n@@ -1146,49 +1167,49 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    float3 _12503;\n-\t                    if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)\n+\t                    vec3 _12504;\n+\t                    if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)\n \t                    {\n-\t                        float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);\n-\t                        float4 _19008 = _17795.xyzw * float4(-1.0f, -1.0f, -1.0f, 1.0f);\n-\t                        float3 _24989 = _19008.xyz;\n-\t                        float3 _23629 = float4((-_11179).xyz, 0.0f).xyz;\n+\t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);\n+\t                        vec4 _19008 = _17795.xyzw * vec4(-1.0, -1.0, -1.0, 1.0);\n+\t                        vec3 _24989 = _19008.xyz;\n+\t                        vec3 _23629 = vec4((-_11179).xyz, 0.0).xyz;\n \t                        float _15156 = -dot(_23629, _24989);\n-\t                        float3 _20479 = float4((_23629 * _19008.w) + cross(_23629, _24989), _15156).xyz;\n-\t                        float3 _23592 = _17795.xyz;\n-\t                        float3 _12170 = ((_20479 * g_BarnLights.Load<float4>(_12608 * 480 + 176).w) + (_23592 * _15156)) + cross(_23592, _20479);\n-\t                        float3 _14081 = float3(float2(atan2(_12170.y, -_12170.x) * 0.15915493667125701904296875f, acos(_12170.z) * 0.3183098733425140380859375f), -g_BarnLights.Load<float4>(_12608 * 480 + 160).w);\n-\t                        float2 _20564 = (_14081.xy * g_BarnLights.Load<float4>(_12608 * 480 + 224).zw) + g_BarnLights.Load<float4>(_12608 * 480 + 224).xy;\n-\t                        float3 _20492 = _14081;\n+\t                        vec3 _20479 = vec4((_23629 * _19008.w) + cross(_23629, _24989), _15156).xyz;\n+\t                        vec3 _23592 = _17795.xyz;\n+\t                        vec3 _12170 = ((_20479 * g_BarnLights_1._m0[_12608]._m5.w) + (_23592 * _15156)) + cross(_23592, _20479);\n+\t                        vec3 _14081 = vec3(vec2(atan(_12170.y, -_12170.x) * 0.15915493667125701904296875, acos(_12170.z) * 0.3183098733425140380859375), -g_BarnLights_1._m0[_12608]._m4.w);\n+\t                        vec2 _20564 = (_14081.xy * g_BarnLights_1._m0[_12608]._m9.zw) + g_BarnLights_1._m0[_12608]._m9.xy;\n+\t                        vec3 _20492 = _14081;\n \t                        _20492.x = _20564.x;\n \t                        _20492.y = _20564.y;\n-\t                        _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20492.xyz, 0.0f).xyz;\n+\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _20492.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n-\t                        float3 _13791 = float3(mad(_22905.xy, float2(0.5f, -0.5f), 0.5f.xx), g_BarnLights.Load<float4>(_12608 * 480 + 160).w);\n-\t                        float2 _20563 = (_13791.xy * g_BarnLights.Load<float4>(_12608 * 480 + 224).zw) + g_BarnLights.Load<float4>(_12608 * 480 + 224).xy;\n-\t                        float3 _20491 = _13791;\n+\t                        vec3 _13791 = vec3(fma(_22905.xy, vec2(0.5, -0.5), vec2(0.5)), g_BarnLights_1._m0[_12608]._m4.w);\n+\t                        vec2 _20563 = (_13791.xy * g_BarnLights_1._m0[_12608]._m9.zw) + g_BarnLights_1._m0[_12608]._m9.xy;\n+\t                        vec3 _20491 = _13791;\n \t                        _20491.x = _20563.x;\n \t                        _20491.y = _20563.y;\n-\t                        _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20491.xyz, 0.0f).xyz;\n+\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _20491.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12503;\n+\t                    _21548 = _12504;\n \t                }\n-\t                if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))\n+\t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n \t                    _13212 = _13138;\n \t                    _15670 = _16325;\n \t                    break;\n \t                }\n-\t                float3 _22671;\n+\t                vec3 _22671;\n \t                if (_24419)\n \t                {\n-\t                    float3 _19629;\n-\t                    if ((g_BarnLights.Load<uint>(_12608 * 480 + 264) & 4u) != 0u)\n+\t                    vec3 _19629;\n+\t                    if ((g_BarnLights_1._m0[_12608]._m13 & 4u) != 0u)\n \t                    {\n-\t                        float2 _6281 = _22905.yx * float2(1.0f, -1.0f);\n-\t                        float3 _23714 = _21642;\n+\t                        vec2 _6281 = _22905.yx * vec2(1.0, -1.0);\n+\t                        vec3 _23714 = _21642;\n \t                        _23714.x = _6281.x;\n \t                        _23714.y = _6281.y;\n \t                        _19629 = _23714;\n@@ -1197,9 +1218,8 @@ PS\n \t                    {\n \t                        _19629 = _21642;\n \t                    }\n-\t                    float3 _20482 = _21548.xyz * lerp(1.0f, g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], float3(mad(_19629.xy, g_BarnLights.Load<float4>(_12608 * 480 + 208).zw, g_BarnLights.Load<float4>(_12608 * 480 + 208).xy), _19629.z).xy, saturate(_19629.z + PerViewLightingConstantBufferGpu_t_1_m12)), g_BarnLights.Load<float>(_12608 * 480 + 260));\n-\t                    float3 _16449 = _20482.xyz;\n-\t                    if (all(bool3(_16449.x == 0.0f.xxx.x, _16449.y == 0.0f.xxx.y, _16449.z == 0.0f.xxx.z)))\n+\t                    vec3 _20482 = _21548.xyz * mix(1.0, textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy, saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0), g_BarnLights_1._m0[_12608]._m12);\n+\t                    if (all(equal(_20482.xyz, vec3(0.0))))\n \t                    {\n \t                        _13212 = _13138;\n \t                        _15670 = _16325;\n@@ -1211,18 +1231,17 @@ PS\n \t                {\n \t                    _22671 = _21548;\n \t                }\n-\t                bool3 _19900 = all(bool3(_17892.x == 1.0f.xxx.x, _17892.y == 1.0f.xxx.y, _17892.z == 1.0f.xxx.z)).xxx;\n-\t                float _11798 = max(0.0f, dot(_21710.xyz, _11179.xyz));\n-\t                float2 _9841 = max(_21813, g_BarnLights.Load<float>(_12608 * 480 + 256).xx);\n-\t                float3 _12282 = normalize(_11179.xyz + (-normalize(_10061.xyz - PerViewConstantBuffer_t_1_m3.xyz)).xyz).xyz;\n-\t                float _12387 = dot(_12282, float3(_19900.x ? _21710.xyz.x : _17892.x, _19900.y ? _21710.xyz.y : _17892.y, _19900.z ? _21710.xyz.z : _17892.z).xyz);\n-\t                float _19211 = max(0.0f, dot(_11179.xyz, _12282));\n+\t                float _11798 = max(0.0, dot(_21710.xyz, _11179.xyz));\n+\t                vec2 _9841 = max(_21813, vec2(g_BarnLights_1._m0[_12608]._m11));\n+\t                vec3 _12282 = normalize(_11179.xyz + (-normalize(_10061.xyz - PerViewConstantBuffer_t._m3.xyz)).xyz).xyz;\n+\t                float _12387 = dot(_12282, mix(_17892, _21710.xyz, bvec3(all(equal(_17892, vec3(1.0))))).xyz);\n+\t                float _19211 = max(0.0, dot(_11179.xyz, _12282));\n \t                float _9851 = _9841.x;\n \t                float _25212 = _9851 * _9851;\n-\t                float _19097 = _25212 * _25212;\n-\t                float _15348 = ((_12387 * _12387) * (_19097 - 1.0f)) + 1.0f;\n-\t                _13212 = _13138.xyz + (((_8357.xyz * (_19097 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0f) + 2.0f)))).xyz * _11798).xyz * _22671.xyz);\n-\t                _15670 = _16325.xyz + (_11798.xxx.xyz * _22671.xyz);\n+\t                float _19096 = _25212 * _25212;\n+\t                float _15348 = ((_12387 * _12387) * (_19096 - 1.0)) + 1.0;\n+\t                _13212 = _13138.xyz + (((_8357.xyz * (_19096 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0) + 2.0)))).xyz * _11798).xyz * _22671.xyz);\n+\t                _15670 = _16325.xyz + (vec3(_11798).xyz * _22671.xyz);\n \t                break;\n \t            } while(false);\n \t            _13138 = _13212;\n@@ -1236,85 +1255,85 @@ PS\n \t        _17017 = _21567;\n \t        continue;\n \t    }\n-\t    float _17172 = dot(_21813.xy, 0.5f.xx);\n-\t    float3 _6253 = _17892.xyz;\n-\t    float3 _17138 = normalize(_10061.xyz - PerViewConstantBuffer_t_1_m3.xyz);\n+\t    float _17172 = dot(_21813.xy, vec2(0.5));\n+\t    vec3 _6253 = _17892.xyz;\n+\t    vec3 _17138 = normalize(_10061.xyz - PerViewConstantBuffer_t._m3.xyz);\n \t    float _17225 = _17172 * _17172;\n-\t    float _20711 = saturate(1.0f - _17225);\n-\t    float4 _15343 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * _17172) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f);\n+\t    float _20711 = saturate(1.0 - _17225);\n+\t    vec4 _15343 = (vec4(-1.0, -0.0274999998509883880615234375, -0.572000026702880859375, 0.02199999988079071044921875) * _17172) + vec4(1.0, 0.0425000004470348358154296875, 1.03999996185302734375, -0.039999999105930328369140625);\n \t    float _21215 = _15343.x;\n-\t    float2 _24572 = (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_21215 * _21215, exp2((-9.27999973297119140625f) * max(0.0f, dot((-_17138).xyz, _6253)))) * _21215) + _15343.y)) + _15343.zw;\n+\t    vec2 _24572 = (vec2(-1.03999996185302734375, 1.03999996185302734375) * ((min(_21215 * _21215, exp2((-9.27999973297119140625) * max(0.0, dot((-_17138).xyz, _6253)))) * _21215) + _15343.y)) + _15343.zw;\n \t    float _20339 = _24572.y;\n-\t    float2 _11427 = float2(_20339, _24572.x + _20339);\n-\t    float3 _8745 = float3(dot(PerViewLightingConstantBufferGpu_t_1_m0._m0[0].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t_1_m0._m0[1].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t_1_m0._m0[2].xyzw, _23875)).xyz;\n-\t    float3 _16991 = _16324.xyz + _8745;\n-\t    float3 _20418 = (_21711 * (_19068.x * lerp(1.0f, pow(_24079.w, _Globals_1_g_flVertexAmbientOcclusionPower), _Globals_1_g_flVertexAmbientOcclusionAmount))).xxx.xyz;\n-\t    float3 _22686 = (_16324.xyz + (_8745 * _20418).xyz) * ((float3(max(float4(mul(_Globals_1_g_mTextureColorAdjust, float4(float4((_19334.xyz * input_4.xyz).xyz, 1.0f).xyz, 1.0f)).xyz, 1.0f), 0.0f.xxxx).xyz).xyz * 1.0f) * (lerp(0.0f, pow(_24079.x, _Globals_1_g_flHeightGradientPower), _Globals_1_g_flHeightGradientAmount) + 1.0f)).xyz;\n-\t    float4 _11205 = float4(_22686, _19334.w);\n+\t    vec2 _11427 = vec2(_20339, _24572.x + _20339);\n+\t    vec3 _8745 = vec3(dot(PerViewLightingConstantBufferGpu_t._m0._m0[0].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t._m0._m0[1].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t._m0._m0[2].xyzw, _23875)).xyz;\n+\t    vec3 _16991 = _16324.xyz + _8745;\n+\t    vec3 _20418 = vec3(_21711 * (_19068.x * mix(1.0, pow(_24079.w, _Globals_.g_flVertexAmbientOcclusionPower), _Globals_.g_flVertexAmbientOcclusionAmount))).xyz;\n+\t    vec3 _22686 = (_16324.xyz + (_8745 * _20418).xyz) * ((vec3(max(vec4((vec4(vec4((_19334.xyz * input_4.xyz).xyz, 1.0).xyz, 1.0) * _Globals_.g_mTextureColorAdjust).xyz, 1.0), vec4(0.0)).xyz).xyz * 1.0) * (mix(0.0, pow(_24079.x, _Globals_.g_flHeightGradientPower), _Globals_.g_flHeightGradientAmount) + 1.0)).xyz;\n+\t    vec4 _11205 = vec4(_22686, _19334.w);\n \t    _11205.x = _22686.x;\n \t    _11205.y = _22686.y;\n \t    _11205.z = _22686.z;\n-\t    float3 _15752 = _11205.xyz + (_13137.xyz * _20418).xyz;\n-\t    float4 _20490 = _11205;\n+\t    vec3 _15752 = _11205.xyz + (_13137.xyz * _20418).xyz;\n+\t    vec4 _20490 = _11205;\n \t    _20490.x = _15752.x;\n \t    _20490.y = _15752.y;\n \t    _20490.z = _15752.z;\n-\t    float3 _15734 = _20490.xyz + ((((lerp(_11427.xxx, _11427.yyy, _8357) * g_bindless_TextureCubeArray_float4[PerViewConstantBufferCsgo_t_1_m7].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], float4(normalize(lerp(_6253, reflect(_17138.xyz, _17892.xyz).xyz, (_20711 * (sqrt(_20711) + _17225)).xxx)), 0.0f), PerViewLightingConstantBufferGpu_t_1_m8.y * sqrt(_17172)).xyz).xyz * (normalize(_16991 + 0.001000000047497451305389404296875f.xxx) * clamp(length(_16991), 0.0f, 1.75f))).xyz * (1.0f.xxx + (normalize(_8745 + 0.001000000047497451305389404296875f.xxx) * 0.5f))).xyz * _20418).xyz;\n-\t    float4 _13888 = _20490;\n+\t    vec3 _15734 = _20490.xyz + ((((mix(_11427.xxx, _11427.yyy, _8357) * textureLod(samplerCubeArray(g_bindless_TextureCubeArray_float4[PerViewConstantBufferCsgo_t._m7], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), vec4(normalize(mix(_6253, reflect(_17138.xyz, _17892.xyz).xyz, vec3(_20711 * (sqrt(_20711) + _17225)))), 0.0), PerViewLightingConstantBufferGpu_t._m8.y * sqrt(_17172)).xyz).xyz * (normalize(_16991 + vec3(0.001000000047497451305389404296875)) * clamp(length(_16991), 0.0, 1.75))).xyz * (vec3(1.0) + (normalize(_8745 + vec3(0.001000000047497451305389404296875)) * 0.5))).xyz * _20418).xyz;\n+\t    vec4 _13888 = _20490;\n \t    _13888.x = _15734.x;\n \t    _13888.y = _15734.y;\n \t    _13888.z = _15734.z;\n-\t    float4 _6805;\n-\t    if (_Globals_1_g_bFogEnabled != 0)\n+\t    vec4 _6805;\n+\t    if (_Globals_.g_bFogEnabled != 0)\n \t    {\n-\t        float3 _21493;\n-\t        float3 _22956 = _10061.xyz - PerViewConstantBuffer_t_1_m3.xyz;\n-\t        float3 _9057 = _22956.xyz;\n-\t        float3 _19340;\n+\t        vec3 _21493;\n+\t        vec3 _22956 = _10061.xyz - PerViewConstantBuffer_t._m3.xyz;\n+\t        vec3 _9057 = _22956.xyz;\n+\t        vec3 _19340;\n \t        do\n \t        {\n \t            _21493 = _22956.xyz;\n \t            bool _12889;\n-\t            if (dot(_21493, _21493) > PerViewConstantBufferCsgo_t_1_m14.x)\n+\t            if (dot(_21493, _21493) > PerViewConstantBufferCsgo_t._m14.x)\n \t            {\n-\t                _12889 = (_10061.z * PerViewConstantBufferCsgo_t_1_m14.z) < PerViewConstantBufferCsgo_t_1_m14.y;\n+\t                _12889 = (_10061.z * PerViewConstantBufferCsgo_t._m14.z) < PerViewConstantBufferCsgo_t._m14.y;\n \t            }\n \t            else\n \t            {\n \t                _12889 = false;\n \t            }\n-\t            [branch]\n+\t            SPIRV_CROSS_BRANCH\n \t            if (_12889)\n \t            {\n-\t                float2 _9342 = clamp(PerViewConstantBufferCsgo_t_1_m11.xy + (PerViewConstantBufferCsgo_t_1_m11.zw * float2(length(_21493), _10061.z)), 0.0f.xx, 1.0f.xx);\n-\t                float _12872 = (pow(_9342.x, PerViewConstantBufferCsgo_t_1_m12.x) * pow(_9342.y, PerViewConstantBufferCsgo_t_1_m12.y)) * PerViewConstantBufferCsgo_t_1_m13.w;\n-\t                _19340 = lerp(_13888.xyz, float4(PerViewConstantBufferCsgo_t_1_m13.xyz, _12872).xyz, _12872.xxx);\n+\t                vec2 _9342 = saturate(PerViewConstantBufferCsgo_t._m11.xy + (PerViewConstantBufferCsgo_t._m11.zw * vec2(length(_21493), _10061.z)));\n+\t                float _12872 = (pow(_9342.x, PerViewConstantBufferCsgo_t._m12.x) * pow(_9342.y, PerViewConstantBufferCsgo_t._m12.y)) * PerViewConstantBufferCsgo_t._m13.w;\n+\t                _19340 = mix(_13888.xyz, vec4(PerViewConstantBufferCsgo_t._m13.xyz, _12872).xyz, vec3(_12872));\n \t                break;\n \t            }\n \t            _19340 = _13888.xyz;\n \t            break;\n \t        } while(false);\n-\t        float4 _23944 = _13888;\n+\t        vec4 _23944 = _13888;\n \t        _23944.x = _19340.x;\n \t        _23944.y = _19340.y;\n \t        _23944.z = _19340.z;\n-\t        float3 _19341;\n+\t        vec3 _19341;\n \t        do\n \t        {\n \t            bool _12890;\n-\t            if (dot(_9057, _9057) > PerViewConstantBufferCsgo_t_1_m18.x)\n+\t            if (dot(_9057, _9057) > PerViewConstantBufferCsgo_t._m18.x)\n \t            {\n-\t                _12890 = (PerViewConstantBufferCsgo_t_1_m18.z * _10061.z) < PerViewConstantBufferCsgo_t_1_m18.y;\n+\t                _12890 = (PerViewConstantBufferCsgo_t._m18.z * _10061.z) < PerViewConstantBufferCsgo_t._m18.y;\n \t            }\n \t            else\n \t            {\n \t                _12890 = false;\n \t            }\n \t            if (_12890)\n \t            {\n-\t                float _14602 = saturate(pow(max(0.0f, (length(_21493) * PerViewConstantBufferCsgo_t_1_m15.y) + PerViewConstantBufferCsgo_t_1_m15.x), PerViewConstantBufferCsgo_t_1_m15.w)) * saturate(pow(max(0.0f, (_10061.z * PerViewConstantBufferCsgo_t_1_m16.y) + PerViewConstantBufferCsgo_t_1_m16.x), PerViewConstantBufferCsgo_t_1_m16.z));\n-\t                float _8892 = saturate(_14602) * PerViewConstantBufferCsgo_t_1_m18.w;\n-\t                _19341 = lerp(_23944.xyz, float4((g_bindless_TextureCube_float4[PerViewConstantBufferCsgo_t_1_m3].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], normalize(mul(float4(_9057, 0.0f), PerViewConstantBufferCsgo_t_1_m17).xyz).xyz, PerViewConstantBufferCsgo_t_1_m16.w * saturate(1.0f - (_14602 * PerViewConstantBufferCsgo_t_1_m15.z))) * PerViewConstantBufferCsgo_t_1_m19.x).xyz, _8892).xyz, _8892.xxx);\n+\t                float _14602 = saturate(pow(max(0.0, (length(_21493) * PerViewConstantBufferCsgo_t._m15.y) + PerViewConstantBufferCsgo_t._m15.x), PerViewConstantBufferCsgo_t._m15.w)) * saturate(pow(max(0.0, (_10061.z * PerViewConstantBufferCsgo_t._m16.y) + PerViewConstantBufferCsgo_t._m16.x), PerViewConstantBufferCsgo_t._m16.z));\n+\t                float _8892 = saturate(_14602) * PerViewConstantBufferCsgo_t._m18.w;\n+\t                _19341 = mix(_23944.xyz, vec4((textureLod(samplerCube(g_bindless_TextureCube_float4[PerViewConstantBufferCsgo_t._m3], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), normalize((PerViewConstantBufferCsgo_t._m17 * vec4(_9057, 0.0)).xyz).xyz, PerViewConstantBufferCsgo_t._m16.w * saturate(1.0 - (_14602 * PerViewConstantBufferCsgo_t._m15.z))) * PerViewConstantBufferCsgo_t._m19.x).xyz, _8892).xyz, vec3(_8892));\n \t                break;\n \t            }\n \t            _19341 = _23944.xyz;\n@@ -1332,23 +1351,6 @@ PS\n \t    output_0 = _6805;\n \t}\n \t\n-\tPS_OUTPUT MainPs(PS_INPUT stage_input)\n-\t{\n-\t    gl_FragCoord = stage_input.gl_FragCoord;\n-\t    gl_FragCoord.w = 1.0 / gl_FragCoord.w;\n-\t    gl_FrontFacing = stage_input.gl_FrontFacing;\n-\t    input_0 = stage_input.input_0;\n-\t    input_1 = stage_input.input_1;\n-\t    input_2 = stage_input.input_2;\n-\t    input_3 = stage_input.input_3;\n-\t    input_4 = stage_input.input_4;\n-\t    input_5 = stage_input.input_5;\n-\t    input_6 = stage_input.input_6;\n-\t    MainPs_inner();\n-\t    PS_OUTPUT stage_output;\n-\t    stage_output.output_0 = output_0;\n-\t    return stage_output;\n-\t}\n \t\n \t// ---------  SPIRV -> HLSL end  --------- \n \t\n@@ -1751,8 +1753,8 @@ RTX\n \tvoid main()\n \t{\n \t    uint _549 = g_instanceBuffer._member0[uint(gl_InstanceID)].nMaterialData;\n-\t    uint _604 = g_MaterialData_1._member0[(_549 + 28u) / 4u];\n-\t    uint _603 = g_MaterialData_1._member0[(_549 + 32u) / 4u];\n+\t    uint _604 = g_MaterialData_1._member0[(_549 + 32u) / 4u];\n+\t    uint _603 = g_MaterialData_1._member0[(_549 + 36u) / 4u];\n \t    vec4 _602 = vec4(g_MaterialData_3._member0[(_549 + 112u) / 4u], g_MaterialData_3._member0[(_549 + 116u) / 4u], g_MaterialData_3._member0[(_549 + 120u) / 4u], g_MaterialData_3._member0[(_549 + 124u) / 4u]);\n \t    vec4 _601 = vec4(g_MaterialData_3._member0[(_549 + 128u) / 4u], g_MaterialData_3._member0[(_549 + 132u) / 4u], g_MaterialData_3._member0[(_549 + 136u) / 4u], g_MaterialData_3._member0[(_549 + 140u) / 4u]);\n \t    vec2 _600 = vec2(g_MaterialData_3._member0[(_549 + 144u) / 4u], g_MaterialData_3._member0[(_549 + 148u) / 4u]);"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_glass.slang",
          "status": "modified",
          "additions": 17,
          "deletions": 17,
          "changes": 34,
          "patch": "@@ -312,14 +312,14 @@ PS\n \tTexture2D g_tGlassDust < Channel(RGB, ArtistDefinedOrAlphaWeighted(GlassMaskColor, GlassMaskTranslucency), Srgb); Channel(A, Box(GlassMaskTranslucency), Linear); OutputFormat(BC7); SrgbRead(true); >;\n \tTexture2D g_tGlassTintColor < Channel(RGB, Box(GlassTintColor), Srgb); Channel(A, Box(GlassMaskTransmission), Linear); OutputFormat(BC7); SrgbRead(true); >;\n \tTexture2D g_tNormal < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureNormal, TextureRoughness), Linear); OutputFormat(BC7); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n \t// Glass\n \tCreateInputTexture2D(GlassTintColor, Srgb, 8, \"\", \"_color\", \"Glass,10/Tint,30/10\", \"materials/default/default_tint_color.tga\");\n \tCreateInputTexture2D(GlassMaskColor, Srgb, 8, \"\", \"_color\", \"Glass,10/Mask,10/20\", Default4(1, 1, 1, 0));\n \tCreateInputTexture2D(GlassMaskTranslucency, Linear, 8, \"\", \"_trans\", \"Glass,10/Mask,10/30\", Default4(0, 0, 0, 0));\n-\tfloat2 g_flTranslucencyRemap < Default(0); UiType(VectorText); UiGroup(\"Glass,10/Mask,10/30\"); >;\n+\tfloat2 g_flTranslucencyRemap < Default2(0, 1); UiType(VectorText); UiGroup(\"Glass,10/Mask,10/30\"); >;\n \tCreateInputTexture2D(GlassMaskTransmission, Linear, 8, \"\", \"_mask\", \"Glass,10/Mask,10/40\", Default4(1, 1, 1, 0));\n \t\n \t// Normal\n@@ -347,17 +347,17 @@ PS\n \t// Source 2 Viewer - https://valveresourceformat.github.io\n \t// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup\n \t\n-\tstruct _1696\n+\tstruct _1822\n \t{\n \t    float4 _m0[3];\n \t};\n \t\n-\tstruct _1709\n+\tstruct _1835\n \t{\n \t    float4 _m0[4];\n \t};\n \t\n-\tstruct _360\n+\tstruct _918\n \t{\n \t    column_major float4x4 _m0[4];\n \t};\n@@ -400,15 +400,15 @@ PS\n \t    uint _Globals_1_g_tGlassDust : packoffset(c0.w);\n \t    float2 _Globals_1_g_flTranslucencyRemap : packoffset(c1);\n \t    float _Globals_1_g_flModelTintAmount : packoffset(c1.z);\n-\t    uint _Globals_1_g_sTrilinearWrap : packoffset(c2.y);\n-\t    uint _Globals_1_g_sTrilinearClamp : packoffset(c2.z);\n-\t    uint _Globals_1_g_sUserConfig : packoffset(c3.z);\n-\t    uint _Globals_1_g_sCookieSampler : packoffset(c4.y);\n-\t    uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c4.z);\n-\t    int _Globals_1_g_bFogEnabled : packoffset(c5);\n-\t    int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c5.y);\n-\t    int _Globals_1_g_bRenderBackfaceNormals : packoffset(c5.z);\n-\t    float _Globals_1_g_flReflectance : packoffset(c5.w);\n+\t    uint _Globals_1_g_sTrilinearWrap : packoffset(c2.z);\n+\t    uint _Globals_1_g_sTrilinearClamp : packoffset(c2.w);\n+\t    uint _Globals_1_g_sUserConfig : packoffset(c3.w);\n+\t    uint _Globals_1_g_sCookieSampler : packoffset(c4.z);\n+\t    uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c4.w);\n+\t    int _Globals_1_g_bFogEnabled : packoffset(c5.y);\n+\t    int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c5.z);\n+\t    int _Globals_1_g_bRenderBackfaceNormals : packoffset(c5.w);\n+\t    float _Globals_1_g_flReflectance : packoffset(c6);\n \t};\n \t\n \tcbuffer PerViewConstantBufferCsgo_t : register(b3, space1)\n@@ -442,7 +442,7 @@ PS\n \t\n \tcbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)\n \t{\n-\t    _1696 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);\n+\t    _1822 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c18);\n \t    uint4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c19);\n \t    uint4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c22);\n@@ -458,8 +458,8 @@ PS\n \t    float PerViewLightingConstantBufferGpu_t_1_m13 : packoffset(c1955.y);\n \t    float PerViewLightingConstantBufferGpu_t_1_m14 : packoffset(c1955.z);\n \t    float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.w);\n-\t    _360 PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1956);\n-\t    _1709 PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1988);\n+\t    _918 PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1956);\n+\t    _1835 PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1988);\n \t    uint PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1996);\n \t    uint PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1996.y);\n \t};"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_grenade_camera.slang",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -110,9 +110,9 @@ PS\n \t};\n \t\n \tTexture2D<float4> g_tCameraTexture : register(t30, space1);\n-\tSamplerState DefaultSamplerState_0 : register(s21, space1);\n+\tSamplerState DefaultSamplerState_0 : register(s22, space1);\n \tTexture2D<float4> g_tJumpThrowIcon : register(t31, space1);\n-\tSamplerState g_sBilinearClamp : register(s15, space1);\n+\tSamplerState g_sBilinearClamp : register(s16, space1);\n \t\n \tstatic float2 input_0;\n \tstatic float4 output_0;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_lightmapped_4wayblend.slang",
          "status": "modified",
          "additions": 108,
          "deletions": 97,
          "changes": 205,
          "patch": "@@ -299,7 +299,7 @@ PS\n \tTexture2D g_tParticleShadowBuffer < Attribute(\"ParticleShadowBuffer\"); SrgbRead(false); >;\n \tTexture2D g_tShadowDepthBufferDepth < Attribute(\"ShadowDepthBuffer\"); SrgbRead(false); >;\n \tTexture2D g_tSsao < Attribute(\"SSAOOcclusionFactor\"); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n \t// Detail\n@@ -371,17 +371,17 @@ PS\n \t#endif\n \t#extension GL_KHR_shader_subgroup_arithmetic : require\n \t\n-\tstruct _1654\n+\tstruct _1906\n \t{\n \t    vec4 _m0[3];\n \t};\n \t\n-\tstruct _1864\n+\tstruct _2116\n \t{\n \t    vec4 _m0[4];\n \t};\n \t\n-\tstruct _2767\n+\tstruct _872\n \t{\n \t    mat4 _m0[4];\n \t};\n@@ -452,10 +452,10 @@ PS\n \t\n \tlayout(set = 1) uniform _1574 _Globals_;\n \t\n-\tstruct _1920\n+\tstruct _2326\n \t{\n-\t    _1654 _m0;\n-\t    _1864 _m1;\n+\t    _1906 _m0;\n+\t    _2116 _m1;\n \t    vec4 _m2;\n \t    vec4 _m3;\n \t    vec4 _m4;\n@@ -471,11 +471,11 @@ PS\n \t    float _m14;\n \t    float _m15;\n \t    float _m16;\n-\t    _2767 _m17;\n-\t    _1864 _m18;\n+\t    _872 _m17;\n+\t    _2116 _m18;\n \t};\n \t\n-\tlayout(set = 3) uniform _1920 PerViewLightingConstantBufferGpu_t;\n+\tlayout(set = 3) uniform _2326 PerViewLightingConstantBufferGpu_t;\n \t\n \tstruct _1194\n \t{\n@@ -498,12 +498,12 @@ PS\n \t} g_BarnLights_1;\n \t\n \tlayout(set = 1, binding = 43) uniform texture2D g_tColor;\n-\tlayout(set = 1, binding = 19) uniform sampler g_sUserConfig;\n+\tlayout(set = 1, binding = 20) uniform sampler g_sUserConfig;\n \tlayout(set = 1, binding = 46) uniform texture2D g_tLayer2Color;\n \tlayout(set = 1, binding = 49) uniform texture2D g_tLayer3Color;\n \tlayout(set = 1, binding = 52) uniform texture2D g_tLayer4Color;\n \tlayout(set = 1, binding = 45) uniform texture2D g_tLayer1AmbientOcclusion;\n-\tlayout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;\n+\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;\n \tlayout(set = 1, binding = 48) uniform texture2D g_tLayer2AmbientOcclusion;\n \tlayout(set = 1, binding = 51) uniform texture2D g_tLayer3AmbientOcclusion;\n \tlayout(set = 1, binding = 54) uniform texture2D g_tLayer4AmbientOcclusion;\n@@ -512,13 +512,13 @@ PS\n \tlayout(set = 1, binding = 50) uniform texture2D g_tLayer3NormalRoughness;\n \tlayout(set = 1, binding = 53) uniform texture2D g_tLayer4NormalRoughness;\n \tlayout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;\n-\tlayout(set = 1, binding = 22) uniform sampler g_sCookieSampler;\n+\tlayout(set = 1, binding = 23) uniform sampler g_sCookieSampler;\n \tlayout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;\n-\tlayout(set = 1, binding = 18) uniform sampler g_sPointClamp;\n-\tlayout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n+\tlayout(set = 1, binding = 19) uniform sampler g_sPointClamp;\n+\tlayout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n \tlayout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;\n \tlayout(set = 1, binding = 61) uniform texture2D g_tParticleShadowBuffer;\n-\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;\n+\tlayout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;\n \tlayout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;\n \tlayout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;\n \t\n@@ -616,104 +616,115 @@ PS\n \t    {\n \t        _21709 = 1.0;\n \t    }\n-\t    float _21710;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m8.xyz, _24735);\n+\t    float _12320;\n \t    SPIRV_CROSS_BRANCH\n-\t    if (PerViewLightingConstantBufferGpu_t._m10 != 0)\n+\t    if (_8634 > 0.0)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13136;\n-\t        vec3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n+\t        float _12503;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m10 != 0)\n \t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t._m10))\n-\t            {\n-\t                _13136 = 1.0;\n-\t                _14975 = vec3(0.0);\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            vec4 _18322 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m17._m0[_13039];\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m12[_13039])\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13136;\n+\t            vec3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                vec3 _19470 = vec3(_12779, _18322.yz);\n-\t                vec2 _24804 = _19470.xy;\n-\t                vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m14)) + vec2(PerViewLightingConstantBufferGpu_t._m13));\n-\t                vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m18._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m18._m0[_13039].xy;\n-\t                vec3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13136 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20488;\n-\t                _10191 = _13039;\n-\t                break;\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t._m10))\n+\t                {\n+\t                    _13136 = 1.0;\n+\t                    _14975 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n+\t                }\n+\t                vec4 _18322 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m17._m0[_13039];\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m12[_13039])\n+\t                {\n+\t                    vec3 _19470 = vec3(_12779, _18322.yz);\n+\t                    vec2 _24804 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m14)) + vec2(PerViewLightingConstantBufferGpu_t._m13));\n+\t                    vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m18._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m18._m0[_13039].xy;\n+\t                    vec3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13136 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20488;\n+\t                    _10191 = _13039;\n+\t                    break;\n+\t                }\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n \t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n-\t        {\n-\t            float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m11)), 0.0);\n-\t            float _12501;\n-\t            SPIRV_CROSS_BRANCH\n-\t            if (_13136 < 1.0)\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t._m10 - 1))\n+\t                float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m11)), 0.0);\n+\t                float _12501;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13136 < 1.0)\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    vec4 _19671 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m17._m0[_15335];\n-\t                    vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m18._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m18._m0[_15335].xy;\n-\t                    vec3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m11)), 0.0);\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m10 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19671 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m17._m0[_15335];\n+\t                        vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m18._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m18._m0[_15335].xy;\n+\t                        vec3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m11)), 0.0);\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0;\n+\t                    }\n+\t                    _12501 = mix(_7934, _18270, _13136);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0;\n+\t                    _12501 = _18270;\n \t                }\n-\t                _12501 = mix(_7934, _18270, _13136);\n+\t                _19363 = _12501;\n \t            }\n \t            else\n \t            {\n-\t                _12501 = _18270;\n+\t                _19363 = 1.0;\n \t            }\n-\t            _19363 = _12501;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0;\n-\t        }\n-\t        float _13279 = mix(_19363, 1.0, saturate((distance(_11095.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m16) + PerViewLightingConstantBufferGpu_t._m15));\n-\t        float _12502;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12502 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            float _13279 = mix(_19363, 1.0, saturate((distance(_11095.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m16) + PerViewLightingConstantBufferGpu_t._m15));\n+\t            float _12502;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12502 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12502 = _13279;\n+\t            }\n+\t            _12503 = _12502;\n \t        }\n \t        else\n \t        {\n-\t            _12502 = _13279;\n+\t            _12503 = 1.0;\n \t        }\n-\t        _21710 = _12502;\n+\t        _12320 = _12503;\n \t    }\n \t    else\n \t    {\n-\t        _21710 = 1.0;\n+\t        _12320 = 1.0;\n \t    }\n-\t    vec3 _21711;\n+\t    vec3 _21710;\n \t    SPIRV_CROSS_BRANCH\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t._m8.xyz, _24735) * _21710) > 0.0)\n+\t    if ((_8634 * _12320) > 0.0)\n \t    {\n-\t        _21711 = PerViewLightingConstantBufferGpu_t._m4.xyz + (vec3(max(0.0, dot(_14995.xyz, PerViewLightingConstantBufferGpu_t._m8.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m9.xyz * _21710).xyz);\n+\t        _21710 = PerViewLightingConstantBufferGpu_t._m4.xyz + (vec3(max(0.0, dot(_14995.xyz, PerViewLightingConstantBufferGpu_t._m8.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m9.xyz * _12320).xyz);\n \t    }\n \t    else\n \t    {\n-\t        _21711 = PerViewLightingConstantBufferGpu_t._m4.xyz;\n+\t        _21710 = PerViewLightingConstantBufferGpu_t._m4.xyz;\n \t    }\n \t    bvec4 _24466 = notEqual(PerViewConstantBufferCsgo_t._m1, ivec4(0));\n \t    bool _20060 = _24466.x;\n@@ -737,7 +748,7 @@ PS\n \t    uint _10838 = PerViewLightingConstantBufferGpu_t._m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t._m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t._m5.z);\n \t    uint _23393 = PerViewLightingConstantBufferGpu_t._m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t._m7.x, 0.0, PerViewLightingConstantBufferGpu_t._m7.y)) * PerViewLightingConstantBufferGpu_t._m5.z);\n \t    vec3 _13155;\n-\t    _13155 = _21711;\n+\t    _13155 = _21710;\n \t    uint _21567;\n \t    vec3 _13156;\n \t    uint _16208 = 0u;\n@@ -750,7 +761,7 @@ PS\n \t        uint _14475 = subgroupOr(g_CullBits_1._m0[_10838 + _16208] & g_CullBits_1._m0[_23393 + _16208]);\n \t        _13156 = _13155;\n \t        uint _20344;\n-\t        vec3 _12504;\n+\t        vec3 _12505;\n \t        uint _16209 = _14475;\n \t        for (;;)\n \t        {\n@@ -790,7 +801,7 @@ PS\n \t                }\n \t                if (_12885)\n \t                {\n-\t                    _12504 = _13156;\n+\t                    _12505 = _13156;\n \t                    break;\n \t                }\n \t                float _23571 = 2.0 * g_BarnLights_1._m0[_12608]._m5.y;\n@@ -900,7 +911,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    vec3 _12503;\n+\t                    vec3 _12504;\n \t                    if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)\n \t                    {\n \t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);\n@@ -916,7 +927,7 @@ PS\n \t                        vec3 _20491 = _14081;\n \t                        _20491.x = _20564.x;\n \t                        _20491.y = _20564.y;\n-\t                        _12503 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;\n+\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -925,13 +936,13 @@ PS\n \t                        vec3 _20490 = _13791;\n \t                        _20490.x = _20563.x;\n \t                        _20490.y = _20563.y;\n-\t                        _12503 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;\n+\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12503;\n+\t                    _21548 = _12504;\n \t                }\n \t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n-\t                    _12504 = _13156;\n+\t                    _12505 = _13156;\n \t                    break;\n \t                }\n \t                vec3 _19630;\n@@ -953,7 +964,7 @@ PS\n \t                    vec3 _20482 = _21548.xyz * mix(1.0, textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy, saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m11)), 0.0), g_BarnLights_1._m0[_12608]._m12);\n \t                    if (all(equal(_20482.xyz, vec3(0.0))))\n \t                    {\n-\t                        _12504 = _13156;\n+\t                        _12505 = _13156;\n \t                        break;\n \t                    }\n \t                    _19630 = _20482;\n@@ -962,10 +973,10 @@ PS\n \t                {\n \t                    _19630 = _21548;\n \t                }\n-\t                _12504 = _13156.xyz + (vec3(max(0.0, dot(_14995.xyz, _11179.xyz))).xyz * _19630.xyz);\n+\t                _12505 = _13156.xyz + (vec3(max(0.0, dot(_14995.xyz, _11179.xyz))).xyz * _19630.xyz);\n \t                break;\n \t            } while(false);\n-\t            _13156 = _12504;\n+\t            _13156 = _12505;\n \t            _16209 = _20344;\n \t            continue;\n \t        }"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_lightmappedgeneric.slang",
          "status": "modified",
          "additions": 198,
          "deletions": 205,
          "changes": 403,
          "patch": "@@ -89,8 +89,10 @@ VS\n \tStaticCombo( S_FANCY_BLENDING, F_FANCY_BLENDING!=0 );\n \tStaticCombo( S_DETAILTEXTURE, F_DETAILTEXTURE );\n \tStaticCombo( S_TEXTURETRANSFORMS, F_TEXTURETRANSFORMS );\n+\tStaticCombo( S_OVERLAY, F_OVERLAY );\n \tStaticComboRule( Requires( S_SPECULAR_DIRECT, S_SPECULAR_INDIRECT ) );\n \tStaticComboRule( Requires( S_DETAILTEXTURE==2, S_LAYERS==1 ) );\n+\tStaticComboRule( Allow1( S_OVERLAY, S_LAYERS ) );\n \tDynamicCombo( D_COMPRESSED_NORMALS_AND_TANGENTS, 0..1 );\n \tDynamicCombo( D_CS_VERTEX_ANIMATION, 0..1 );\n \tDynamicCombo( D_BAKED_LIGHTING_FROM_VERTEX_STREAM, 0..1 );\n@@ -176,8 +178,18 @@ VS\n \tfloat g_flVertexColorOpacityScale < Default(1); UiType(Slider); UiGroup(\"Color, 10/25\"); >;\n \tfloat g_flModelTintAmount < Default(1); UiType(Slider); UiGroup(\"Color,10/30\"); >;\n \t\n+\t// Overlay\n+\tfloat g_flOverlayLift < Range(0, 2); UiType(Slider); UiGroup(\"Overlay,90/Lift,10/10\"); >;\n+\t\n+\t// SPIR-V reflection failed for backend HLSL:\n+\t// cbuffer ID 5618 (name: _Globals_), member index 0 (name: g_vColorTint) cannot be expressed with either HLSL packing layout or packoffset.\n+\t//\n+\t// Re-attempting reflection with the GLSL backend.\n+\t\n \t// Source 2 Viewer - https://valveresourceformat.github.io\n-\t// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup\n+\t// SPIR-V source, GLSL reflection with SPIRV-Cross by KhronosGroup\n+\t\n+\t#version 460\n \t\n \tstruct _1125\n \t{\n@@ -193,94 +205,83 @@ VS\n \t\n \tstruct _1119\n \t{\n-\t    row_major float3x4 _m0;\n+\t    mat3x4 _m0;\n \t};\n \t\n-\tByteAddressBuffer g_instanceBuffer : register(t32, space4);\n-\tByteAddressBuffer g_transformBuffer : register(t30, space4);\n-\tcbuffer PerViewConstantBuffer_t : register(b1, space0)\n+\tlayout(set = 4, binding = 32, std430) readonly buffer g_instanceBuffer\n \t{\n-\t    column_major float4x4 PerViewConstantBuffer_t_1_m0 : packoffset(c0);\n-\t    float4 PerViewConstantBuffer_t_1_m1 : packoffset(c24);\n-\t};\n+\t    _1125 _m0[];\n+\t} g_instanceBuffer_1;\n \t\n-\tcbuffer _Globals_ : register(b0, space0)\n+\tlayout(set = 4, binding = 30, std430) readonly buffer g_transformBuffer\n \t{\n-\t    float3 _Globals_1_g_vColorTint : packoffset(c4.y);\n-\t    float _Globals_1_g_flVertexColorOpacityScale : packoffset(c5);\n-\t    float _Globals_1_g_flModelTintAmount : packoffset(c5.y);\n-\t};\n+\t    _1119 _m0[];\n+\t} g_transformBuffer_1;\n \t\n-\tcbuffer PerViewConstantBufferCsgo_t : register(b3, space0)\n+\tstruct _1224\n \t{\n-\t    float4 PerViewConstantBufferCsgo_t_1_m0 : packoffset(c35);\n+\t    mat4 _m0;\n+\t    vec4 _m1;\n \t};\n \t\n+\tlayout(set = 0) uniform _1224 PerViewConstantBuffer_t;\n \t\n-\tstatic float4 gl_Position;\n-\tstatic float3 vPositionOs;\n-\tstatic float2 vTexCoord;\n-\tstatic float3 vNormalOs;\n-\tstatic float4 vTangentUOs_flTangentVSign;\n-\tstatic uint4 vBlendIndices;\n-\tstatic uint nInstanceIdx;\n-\tstatic float3 output_0;\n-\tstatic float3 output_1;\n-\tstatic float4 output_2;\n-\tstatic float4 output_3;\n-\tstatic float4 output_4;\n-\tstatic uint output_5;\n-\t\n-\tstruct VS_INPUT\n+\tstruct _1042\n \t{\n-\t    float3 vPositionOs : POSITION0;\n-\t    float2 vTexCoord : TEXCOORD0;\n-\t    float3 vNormalOs : NORMAL0;\n-\t    float4 vTangentUOs_flTangentVSign : TANGENT0;\n-\t    uint4 vBlendIndices : BLENDINDICES0;\n-\t    uint nInstanceIdx : TEXCOORD13;\n+\t    vec3 g_vColorTint;\n+\t    float g_flVertexColorOpacityScale;\n+\t    float g_flModelTintAmount;\n \t};\n \t\n-\tstruct PS_INPUT\n+\tlayout(set = 0) uniform _1042 _Globals_;\n+\t\n+\tstruct _1017\n \t{\n-\t    float3 output_0 : TEXCOORD0;\n-\t    float3 output_1 : TEXCOORD1;\n-\t    float4 output_2 : TEXCOORD2;\n-\t    centroid float4 output_3 : TEXCOORD3;\n-\t    float4 output_4 : TEXCOORD4;\n-\t    nointerpolation uint output_5 : TEXCOORD5;\n-\t    float4 gl_Position : SV_Position;\n+\t    vec4 _m0;\n \t};\n \t\n-\tvoid MainVs_inner()\n+\tlayout(set = 0) uniform _1017 PerViewConstantBufferCsgo_t;\n+\t\n+\tlayout(location = 0) in vec3 vPositionOs;\n+\tlayout(location = 1) in vec2 vTexCoord;\n+\tlayout(location = 2) in vec3 vNormalOs;\n+\tlayout(location = 3) in vec4 vTangentUOs_flTangentVSign;\n+\tlayout(location = 4) in uvec4 vBlendIndices;\n+\tlayout(location = 5) in uint nInstanceIdx;\n+\tlayout(location = 0) out vec3 output_0;\n+\tlayout(location = 1) out vec3 output_1;\n+\tlayout(location = 2) out vec4 output_2;\n+\tlayout(location = 3) centroid out vec4 output_3;\n+\tlayout(location = 4) out vec4 output_4;\n+\tlayout(location = 5) flat out uint output_5;\n+\t\n+\tvoid main()\n \t{\n-\t    uint _13771 = (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 20) >> uint(16)) & 15u;\n+\t    uint _13771 = (g_instanceBuffer_1._m0[nInstanceIdx]._m5 >> uint(16)) & 15u;\n \t    uint _21785;\n \t    if (_13771 == 1u)\n \t    {\n-\t        _21785 = g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) + (2u + vBlendIndices.x);\n+\t        _21785 = g_instanceBuffer_1._m0[nInstanceIdx]._m1 + (2u + vBlendIndices.x);\n \t    }\n \t    else\n \t    {\n-\t        _21785 = g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4);\n+\t        _21785 = g_instanceBuffer_1._m0[nInstanceIdx]._m1;\n \t    }\n-\t    float3x4 _12618 = float3x4(g_transformBuffer.Load<float4>(_21785 * 48 + 0), g_transformBuffer.Load<float4>(_21785 * 48 + 16), g_transformBuffer.Load<float4>(_21785 * 48 + 32));\n-\t    float3 _21709;\n+\t    vec3 _21709;\n \t    if (_13771 > 0u)\n \t    {\n-\t        float3x4 _25207 = float3x4(g_transformBuffer.Load<float4>(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) * 48 + 0), g_transformBuffer.Load<float4>(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) * 48 + 16), g_transformBuffer.Load<float4>(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) * 48 + 32));\n-\t        _21709 = _25207[0].z.xxx;\n+\t        _21709 = vec3(g_transformBuffer_1._m0[g_instanceBuffer_1._m0[nInstanceIdx]._m1]._m0[0].z);\n \t    }\n \t    else\n \t    {\n-\t        _21709 = 1.0f.xxx;\n+\t        _21709 = vec3(1.0);\n \t    }\n-\t    float4 _23812 = float4(uint4(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 255u, (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 65280u) >> uint(8), (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 16711680u) >> uint(16), (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 4278190080u) >> uint(24))) * 0.0039215688593685626983642578125f.xxxx;\n-\t    float3 _6253 = _23812.xyz;\n-\t    float3 _17828 = _6253 * 0.077399380505084991455078125f.xxx;\n-\t    float3 _7676 = pow((_6253 * 0.947867333889007568359375f.xxx) + 0.052132703363895416259765625f.xxx, 2.400000095367431640625f.xxx);\n+\t    vec4 _23812 = vec4(uvec4(g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 255u, (g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 65280u) >> uint(8), (g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 16711680u) >> uint(16), (g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 4278190080u) >> uint(24))) * vec4(0.0039215688593685626983642578125);\n+\t    vec3 _6253 = _23812.xyz;\n+\t    vec3 _17828 = _6253 * vec3(0.077399380505084991455078125);\n+\t    vec3 _7676 = pow((_6253 * vec3(0.947867333889007568359375)) + vec3(0.052132703363895416259765625), vec3(2.400000095367431640625));\n \t    float _21354;\n-\t    if (_23812.x <= 0.040449999272823333740234375f)\n+\t    if (_23812.x <= 0.040449999272823333740234375)\n \t    {\n \t        _21354 = _17828.x;\n \t    }\n@@ -289,7 +290,7 @@ VS\n \t        _21354 = _7676.x;\n \t    }\n \t    float _21355;\n-\t    if (_23812.y <= 0.040449999272823333740234375f)\n+\t    if (_23812.y <= 0.040449999272823333740234375)\n \t    {\n \t        _21355 = _17828.y;\n \t    }\n@@ -298,7 +299,7 @@ VS\n \t        _21355 = _7676.y;\n \t    }\n \t    float _17978;\n-\t    if (_23812.z <= 0.040449999272823333740234375f)\n+\t    if (_23812.z <= 0.040449999272823333740234375)\n \t    {\n \t        _17978 = _17828.z;\n \t    }\n@@ -307,41 +308,22 @@ VS\n \t        _17978 = _7676.z;\n \t    }\n \t    float _7654 = _23812.w;\n-\t    float _16337 = _7654 * g_instanceBuffer.Load<float>(nInstanceIdx * 32 + 28);\n-\t    float3 _12151 = mul(_12618, float4(vPositionOs.xyz * _21709.xyz, 1.0f));\n-\t    float4 _18237 = mul(PerViewConstantBuffer_t_1_m0, (float4(_12151.xyz, 1.0f) + (PerViewConstantBuffer_t_1_m1 * 1.0f)).xyzw);\n-\t    float4 _9337 = vTexCoord.xyxy;\n+\t    float _16337 = _7654 * g_instanceBuffer_1._m0[nInstanceIdx]._m7;\n+\t    vec3 _12151 = vec4(vPositionOs.xyz * _21709.xyz, 1.0) * g_transformBuffer_1._m0[_21785]._m0;\n+\t    vec4 _18237 = (vec4(_12151.xyz, 1.0) + (PerViewConstantBuffer_t._m1 * 1.0)).xyzw * PerViewConstantBuffer_t._m0;\n+\t    vec4 _9337 = vTexCoord.xyxy;\n \t    _9337.z = vTexCoord.x;\n \t    _9337.w = vTexCoord.y;\n-\t    output_0 = _12151.xyz - PerViewConstantBufferCsgo_t_1_m0.xyz;\n-\t    output_1 = normalize(mul(_12618, float4(vNormalOs.xyz, 0.0f)));\n+\t    output_0 = _12151.xyz - PerViewConstantBufferCsgo_t._m0.xyz;\n+\t    output_1 = normalize(vec4(vNormalOs.xyz, 0.0) * g_transformBuffer_1._m0[_21785]._m0);\n \t    output_2 = _9337;\n-\t    output_3 = float4(float4(lerp(1.0f.xxx, float4(_21354, _21355, _17978, _7654).xyz, _Globals_1_g_flModelTintAmount.xxx), _16337).xyz * _Globals_1_g_vColorTint.xyz, _16337 * _Globals_1_g_flVertexColorOpacityScale);\n-\t    output_4 = float4(normalize(mul(_12618, float4(vTangentUOs_flTangentVSign.xyz, 0.0f))), vTangentUOs_flTangentVSign.w);\n-\t    output_5 = g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 20) & 65535u;\n+\t    output_3 = vec4(vec4(mix(vec3(1.0), vec4(_21354, _21355, _17978, _7654).xyz, vec3(_Globals_.g_flModelTintAmount)), _16337).xyz * _Globals_.g_vColorTint.xyz, _16337 * _Globals_.g_flVertexColorOpacityScale);\n+\t    output_4 = vec4(normalize(vec4(vTangentUOs_flTangentVSign.xyz, 0.0) * g_transformBuffer_1._m0[_21785]._m0), vTangentUOs_flTangentVSign.w);\n+\t    output_5 = g_instanceBuffer_1._m0[nInstanceIdx]._m5 & 65535u;\n \t    _18237.y = -_18237.y;\n \t    gl_Position = _18237;\n \t}\n \t\n-\tPS_INPUT MainVs(VS_INPUT stage_input)\n-\t{\n-\t    vPositionOs = stage_input.vPositionOs;\n-\t    vTexCoord = stage_input.vTexCoord;\n-\t    vNormalOs = stage_input.vNormalOs;\n-\t    vTangentUOs_flTangentVSign = stage_input.vTangentUOs_flTangentVSign;\n-\t    vBlendIndices = stage_input.vBlendIndices;\n-\t    nInstanceIdx = stage_input.nInstanceIdx;\n-\t    MainVs_inner();\n-\t    PS_INPUT stage_output;\n-\t    stage_output.gl_Position = gl_Position;\n-\t    stage_output.output_0 = output_0;\n-\t    stage_output.output_1 = output_1;\n-\t    stage_output.output_2 = output_2;\n-\t    stage_output.output_3 = output_3;\n-\t    stage_output.output_4 = output_4;\n-\t    stage_output.output_5 = output_5;\n-\t    return stage_output;\n-\t}\n \t\n \t// ---------  SPIRV -> HLSL end  --------- \n \t\n@@ -433,7 +415,7 @@ PS\n \tTexture2D g_tLayer2Color < Channel(RGB, ArtistDefined(TextureLayer2Color), Srgb); OutputFormat(DXT1); SrgbRead(true); >;\n \tTexture2D g_tLayer2Detail < Channel(RGB, Box(TextureLayer2Detail), Linear); OutputFormat(BC7); SrgbRead(false); >;\n \tTexture2D g_tLayer2NormalRoughness < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureLayer2Normal, TextureLayer2Roughness), Linear); OutputFormat(BC7); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n \t// Blend Modulation\n@@ -499,17 +481,17 @@ PS\n \t// Source 2 Viewer - https://valveresourceformat.github.io\n \t// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup\n \t\n-\tstruct _2494\n+\tstruct _2746\n \t{\n \t    float4 _m0[3];\n \t};\n \t\n-\tstruct _2704\n+\tstruct _2956\n \t{\n \t    float4 _m0[4];\n \t};\n \t\n-\tstruct _465\n+\tstruct _1581\n \t{\n \t    column_major float4x4 _m0[4];\n \t};\n@@ -547,20 +529,20 @@ PS\n \t\n \tcbuffer _Globals_ : register(b0, space1)\n \t{\n-\t    uint _Globals_1_g_sTrilinearWrap : packoffset(c0.z);\n-\t    uint _Globals_1_g_sTrilinearClamp : packoffset(c0.w);\n-\t    uint _Globals_1_g_sPointClamp : packoffset(c1);\n-\t    uint _Globals_1_g_sUserConfig : packoffset(c1.w);\n-\t    uint _Globals_1_g_tColor : packoffset(c2.y);\n-\t    uint _Globals_1_g_tLayer1NormalRoughness : packoffset(c2.z);\n-\t    uint _Globals_1_g_tLayer1AmbientOcclusion : packoffset(c2.w);\n-\t    float3 _Globals_1_g_vLayer1Tint : packoffset(c3);\n-\t    uint _Globals_1_g_sCookieSampler : packoffset(c4.z);\n-\t    uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c4.w);\n-\t    int _Globals_1_g_bFogEnabled : packoffset(c5.y);\n-\t    int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c5.z);\n-\t    int _Globals_1_g_bRenderBackfaceNormals : packoffset(c5.w);\n-\t    float _Globals_1_g_flMetalness : packoffset(c10);\n+\t    uint _Globals_1_g_sTrilinearWrap : packoffset(c0.w);\n+\t    uint _Globals_1_g_sTrilinearClamp : packoffset(c1);\n+\t    uint _Globals_1_g_sPointClamp : packoffset(c1.y);\n+\t    uint _Globals_1_g_sUserConfig : packoffset(c2);\n+\t    uint _Globals_1_g_tColor : packoffset(c2.z);\n+\t    uint _Globals_1_g_tLayer1NormalRoughness : packoffset(c2.w);\n+\t    uint _Globals_1_g_tLayer1AmbientOcclusion : packoffset(c3);\n+\t    float3 _Globals_1_g_vLayer1Tint : packoffset(c3.y);\n+\t    uint _Globals_1_g_sCookieSampler : packoffset(c4.w);\n+\t    uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c5);\n+\t    int _Globals_1_g_bFogEnabled : packoffset(c5.z);\n+\t    int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c5.w);\n+\t    int _Globals_1_g_bRenderBackfaceNormals : packoffset(c6);\n+\t    float _Globals_1_g_flMetalness : packoffset(c10.y);\n \t};\n \t\n \tcbuffer PerViewConstantBufferCsgo_t : register(b3, space1)\n@@ -589,8 +571,8 @@ PS\n \t\n \tcbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)\n \t{\n-\t    _2494 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);\n-\t    _2704 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);\n+\t    _2746 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);\n+\t    _2956 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c16);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c17);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c18);\n@@ -606,8 +588,8 @@ PS\n \t    float PerViewLightingConstantBufferGpu_t_1_m14 : packoffset(c1955.y);\n \t    float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.z);\n \t    float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.w);\n-\t    _465 PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1956);\n-\t    _2704 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1988);\n+\t    _1581 PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1956);\n+\t    _2956 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1988);\n \t    uint PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1996);\n \t    uint PerViewLightingConstantBufferGpu_t_1_m20 : packoffset(c1996.y);\n \t};\n@@ -771,104 +753,115 @@ PS\n \t    {\n \t        _21709 = 1.0f;\n \t    }\n-\t    float _21710;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t_1_m8.xyz, _24735);\n+\t    float _12320;\n \t    [branch]\n-\t    if (PerViewLightingConstantBufferGpu_t_1_m10 != 0)\n+\t    if (_8634 > 0.0f)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13136;\n-\t        float3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n+\t        float _12503;\n+\t        [branch]\n+\t        if (PerViewLightingConstantBufferGpu_t_1_m10 != 0)\n \t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m10))\n-\t            {\n-\t                _13136 = 1.0f;\n-\t                _14975 = 0.0f.xxx;\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_13039], float4(input_0.xyz, 1.0f));\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m12[_13039])\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13136;\n+\t            float3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                float3 _19470 = float3(_12779, _18322.yz);\n-\t                float2 _24804 = _19470.xy;\n-\t                float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m14.xx) + PerViewLightingConstantBufferGpu_t_1_m13.xx, 0.0f.xx, 1.0f.xx);\n-\t                float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].xy;\n-\t                float3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13136 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20488;\n-\t                _10191 = _13039;\n-\t                break;\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m10))\n+\t                {\n+\t                    _13136 = 1.0f;\n+\t                    _14975 = 0.0f.xxx;\n+\t                    _10191 = -1;\n+\t                    break;\n+\t                }\n+\t                float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_13039], float4(input_0.xyz, 1.0f));\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m12[_13039])\n+\t                {\n+\t                    float3 _19470 = float3(_12779, _18322.yz);\n+\t                    float2 _24804 = _19470.xy;\n+\t                    float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m14.xx) + PerViewLightingConstantBufferGpu_t_1_m13.xx, 0.0f.xx, 1.0f.xx);\n+\t                    float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].xy;\n+\t                    float3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13136 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20488;\n+\t                    _10191 = _13039;\n+\t                    break;\n+\t                }\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n \t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n-\t        {\n-\t            float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m11));\n-\t            float _12501;\n-\t            [branch]\n-\t            if (_13136 < 1.0f)\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m10 - 1))\n+\t                float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m11));\n+\t                float _12501;\n+\t                [branch]\n+\t                if (_13136 < 1.0f)\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_15335], float4(input_0.xyz, 1.0f));\n-\t                    float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].xy;\n-\t                    float3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m11));\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m10 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_15335], float4(input_0.xyz, 1.0f));\n+\t                        float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].xy;\n+\t                        float3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m11));\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0f;\n+\t                    }\n+\t                    _12501 = lerp(_7934, _18270, _13136);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0f;\n+\t                    _12501 = _18270;\n \t                }\n-\t                _12501 = lerp(_7934, _18270, _13136);\n+\t                _19363 = _12501;\n \t            }\n \t            else\n \t            {\n-\t                _12501 = _18270;\n+\t                _19363 = 1.0f;\n \t            }\n-\t            _19363 = _12501;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0f;\n-\t        }\n-\t        float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m16) + PerViewLightingConstantBufferGpu_t_1_m15));\n-\t        float _12502;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);\n+\t            float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m16) + PerViewLightingConstantBufferGpu_t_1_m15));\n+\t            float _12502;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12502 = _13279;\n+\t            }\n+\t            _12503 = _12502;\n \t        }\n \t        else\n \t        {\n-\t            _12502 = _13279;\n+\t            _12503 = 1.0f;\n \t        }\n-\t        _21710 = _12502;\n+\t        _12320 = _12503;\n \t    }\n \t    else\n \t    {\n-\t        _21710 = 1.0f;\n+\t        _12320 = 1.0f;\n \t    }\n-\t    float3 _21711;\n+\t    float3 _21710;\n \t    [branch]\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t_1_m8.xyz, _24735) * _21710) > 0.0f)\n+\t    if ((_8634 * _12320) > 0.0f)\n \t    {\n-\t        _21711 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (max(0.0f, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t_1_m8.xyz)).xxx.xyz * (PerViewLightingConstantBufferGpu_t_1_m9.xyz * _21710).xyz);\n+\t        _21710 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (max(0.0f, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t_1_m8.xyz)).xxx.xyz * (PerViewLightingConstantBufferGpu_t_1_m9.xyz * _12320).xyz);\n \t    }\n \t    else\n \t    {\n-\t        _21711 = PerViewLightingConstantBufferGpu_t_1_m4.xyz;\n+\t        _21710 = PerViewLightingConstantBufferGpu_t_1_m4.xyz;\n \t    }\n \t    bool4 _24466 = bool4(PerViewConstantBufferCsgo_t_1_m1.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m1.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m1.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m1.w != int4(0, 0, 0, 0).w);\n \t    bool _20060 = _24466.x;\n@@ -892,7 +885,7 @@ PS\n \t    uint _10838 = PerViewLightingConstantBufferGpu_t_1_m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t_1_m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t_1_m5.z);\n \t    uint _23393 = PerViewLightingConstantBufferGpu_t_1_m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t_1_m7.x, 0.0f, PerViewLightingConstantBufferGpu_t_1_m7.y)) * PerViewLightingConstantBufferGpu_t_1_m5.z);\n \t    float3 _13155;\n-\t    _13155 = _21711;\n+\t    _13155 = _21710;\n \t    uint _21567;\n \t    float3 _13156;\n \t    uint _16208 = 0u;\n@@ -905,7 +898,7 @@ PS\n \t        uint _14475 = WaveActiveBitOr(g_CullBits.Load<uint>((_10838 + _16208) * 4 + 0) & g_CullBits.Load<uint>((_23393 + _16208) * 4 + 0));\n \t        _13156 = _13155;\n \t        uint _20344;\n-\t        float3 _12504;\n+\t        float3 _12505;\n \t        uint _16209 = _14475;\n \t        for (;;)\n \t        {\n@@ -948,7 +941,7 @@ PS\n \t                }\n \t                if (_12887)\n \t                {\n-\t                    _12504 = _13156;\n+\t                    _12505 = _13156;\n \t                    break;\n \t                }\n \t                float _23571 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;\n@@ -1058,7 +1051,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    float3 _12503;\n+\t                    float3 _12504;\n \t                    if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)\n \t                    {\n \t                        float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);\n@@ -1074,7 +1067,7 @@ PS\n \t                        float3 _20491 = _14081;\n \t                        _20491.x = _20564.x;\n \t                        _20491.y = _20564.y;\n-\t                        _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20491.xyz, 0.0f).xyz;\n+\t                        _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20491.xyz, 0.0f).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -1083,13 +1076,13 @@ PS\n \t                        float3 _20490 = _13791;\n \t                        _20490.x = _20563.x;\n \t                        _20490.y = _20563.y;\n-\t                        _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20490.xyz, 0.0f).xyz;\n+\t                        _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20490.xyz, 0.0f).xyz;\n \t                    }\n-\t                    _21548 = _12503;\n+\t                    _21548 = _12504;\n \t                }\n \t                if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))\n \t                {\n-\t                    _12504 = _13156;\n+\t                    _12505 = _13156;\n \t                    break;\n \t                }\n \t                float3 _19630;\n@@ -1112,7 +1105,7 @@ PS\n \t                    float3 _16449 = _20482.xyz;\n \t                    if (all(bool3(_16449.x == 0.0f.xxx.x, _16449.y == 0.0f.xxx.y, _16449.z == 0.0f.xxx.z)))\n \t                    {\n-\t                        _12504 = _13156;\n+\t                        _12505 = _13156;\n \t                        break;\n \t                    }\n \t                    _19630 = _20482;\n@@ -1121,10 +1114,10 @@ PS\n \t                {\n \t                    _19630 = _21548;\n \t                }\n-\t                _12504 = _13156.xyz + (max(0.0f, dot(_14786.xyz, _11179.xyz)).xxx.xyz * _19630.xyz);\n+\t                _12505 = _13156.xyz + (max(0.0f, dot(_14786.xyz, _11179.xyz)).xxx.xyz * _19630.xyz);\n \t                break;\n \t            } while(false);\n-\t            _13156 = _12504;\n+\t            _13156 = _12505;\n \t            _16209 = _20344;\n \t            continue;\n \t        }\n@@ -1405,10 +1398,10 @@ RTX\n \tStaticCombo( S_FANCY_BLENDING, F_FANCY_BLENDING!=0 );\n \tStaticCombo( S_DETAILTEXTURE, F_DETAILTEXTURE );\n \tStaticCombo( S_TEXTURETRANSFORMS, F_TEXTURETRANSFORMS );\n+\tStaticCombo( S_OVERLAY, F_OVERLAY );\n \tStaticCombo( S_ALPHA_TEST, F_ALPHA_TEST );\n \tStaticCombo( S_TRANSLUCENT, F_TRANSLUCENT );\n \tStaticCombo( S_DETAILBLENDMODE, F_DETAILBLENDMODE );\n-\tStaticCombo( S_OVERLAY, F_OVERLAY );\n \tStaticCombo( S_METALNESS_TEXTURE, F_METALNESS_TEXTURE );\n \tStaticCombo( S_SHADER_QUALITY, 0..1 );\n \tStaticComboRule( Requires( S_MODE_TOOLS_VIS, S_SHADER_QUALITY ) );\n@@ -1726,9 +1719,9 @@ RTX\n \t    vec3 _479 = vec3(g_MaterialData_1._member0[_442 / 4u], g_MaterialData_1._member0[(_442 + 4u) / 4u], g_MaterialData_1._member0[(_442 + 8u) / 4u]);\n \t    float _478 = g_MaterialData_1._member0[(_442 + 12u) / 4u];\n \t    float _477 = g_MaterialData_1._member0[(_442 + 16u) / 4u];\n-\t    uint _476 = g_MaterialData_3._member0[(_442 + 48u) / 4u];\n-\t    uint _475 = g_MaterialData_3._member0[(_442 + 56u) / 4u];\n-\t    uint _474 = g_MaterialData_3._member0[(_442 + 60u) / 4u];\n+\t    uint _476 = g_MaterialData_3._member0[(_442 + 52u) / 4u];\n+\t    uint _475 = g_MaterialData_3._member0[(_442 + 60u) / 4u];\n+\t    uint _474 = g_MaterialData_3._member0[(_442 + 64u) / 4u];\n \t    vec3 _473 = vec3(g_MaterialData_1._member0[(_442 + 80u) / 4u], g_MaterialData_1._member0[(_442 + 84u) / 4u], g_MaterialData_1._member0[(_442 + 88u) / 4u]);\n \t    bool _472 = g_MaterialData_5._member0[(_442 + 96u) / 4u] != 0;\n \t    bool _471 = g_MaterialData_5._member0[(_442 + 104u) / 4u] != 0;\n@@ -2840,7 +2833,10 @@ RTX\n \tBoolAttribute(SupportsMappingDimensions, true);\n \tBoolAttribute(renderbackfaces, F_RENDER_BACKFACES ? 1 : 0);\n \t\n-\t#if (S_SHADER_QUALITY == 0)\n+\t#if (S_LAYERS == 0)\n+\t\tTextureAttribute(LightSim_Opacity_A, g_tColor);\n+\t#endif\n+\t#if (S_DETAILBLENDMODE == 1)\n \t\tTextureAttribute(LightSim_DiffuseAlbedoTexture2, g_tLayer2Color);\n \t\tTextureAttribute(RepresentativeTexture2, g_tLayer2Color);\n \t\tBoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);\n@@ -2850,7 +2846,7 @@ RTX\n \t\tTextureAttribute(RepresentativeTexture2, g_tLayer2Color);\n \t\tBoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);\n \t#endif\n-\t#if (S_DETAILBLENDMODE == 1)\n+\t#if (S_TRANSLUCENT == 0)\n \t\tTextureAttribute(LightSim_DiffuseAlbedoTexture2, g_tLayer2Color);\n \t\tTextureAttribute(RepresentativeTexture2, g_tLayer2Color);\n \t\tBoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);\n@@ -2866,28 +2862,25 @@ RTX\n \t#if (S_ALPHA_TEST == 0)\n \t\tBoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);\n \t#endif\n-\t#if (S_OVERLAY == 0)\n+\t#if (S_SHADER_QUALITY == 0)\n \t\tTextureAttribute(LightSim_DiffuseAlbedoTexture2, g_tLayer2Color);\n \t\tTextureAttribute(RepresentativeTexture2, g_tLayer2Color);\n \t\tBoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);\n \t#endif\n-\t#if (S_LAYERS == 0)\n+\t#if (S_DETAILBLENDMODE == 0)\n \t\tTextureAttribute(LightSim_Opacity_A, g_tColor);\n \t#endif\n-\t#if (S_SPECULAR_INDIRECT == 0)\n+\t#if (S_LAYERS == 1)\n \t\tTextureAttribute(LightSim_DiffuseAlbedoTexture2, g_tLayer2Color);\n \t\tTextureAttribute(RepresentativeTexture2, g_tLayer2Color);\n \t\tBoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);\n \t#endif\n-\t#if (S_LAYERS == 1)\n+\t#if (S_SPECULAR_INDIRECT == 0)\n \t\tTextureAttribute(LightSim_DiffuseAlbedoTexture2, g_tLayer2Color);\n \t\tTextureAttribute(RepresentativeTexture2, g_tLayer2Color);\n \t\tBoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);\n \t#endif\n-\t#if (S_DETAILBLENDMODE == 0)\n-\t\tTextureAttribute(LightSim_Opacity_A, g_tColor);\n-\t#endif\n-\t#if (S_TRANSLUCENT == 0)\n+\t#if (S_OVERLAY == 0)\n \t\tTextureAttribute(LightSim_DiffuseAlbedoTexture2, g_tLayer2Color);\n \t\tTextureAttribute(RepresentativeTexture2, g_tLayer2Color);\n \t\tBoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_moondome.slang",
          "status": "modified",
          "additions": 3,
          "deletions": 3,
          "changes": 6,
          "patch": "@@ -218,7 +218,7 @@ PS\n \tTexture2D g_tColor < Channel(RGB, ArtistDefined(TextureColor), Srgb); OutputFormat(DXT1); SrgbRead(true); >;\n \tTextureCube g_tCubeMap < Channel(RGB, Box(TextureCubeMap), Srgb); OutputFormat(RGBA8888); SrgbRead(true); >;\n \tTextureCube g_tFogCubeTexture < Attribute(\"CubemapFogTexture\"); SrgbRead(true); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n \t// Color\n@@ -268,11 +268,11 @@ PS\n \t};\n \t\n \tTexture2D<float4> g_tColor : register(t52, space1);\n-\tSamplerState g_sUserConfig : register(s20, space1);\n+\tSamplerState g_sUserConfig : register(s21, space1);\n \tTextureCube<float4> g_tCubeMap : register(t43, space1);\n \tSamplerState Filter_Anisotropic_MaxAniso_8 : register(s14, space1);\n \tTextureCube<float4> g_tFogCubeTexture : register(t42, space1);\n-\tSamplerState g_sTrilinearClamp : register(s18, space1);\n+\tSamplerState g_sTrilinearClamp : register(s19, space1);\n \t\n \tstatic float3 input_0;\n \tstatic float4 input_2;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_projected_decals.slang",
          "status": "modified",
          "additions": 111,
          "deletions": 100,
          "changes": 211,
          "patch": "@@ -79,7 +79,7 @@ VS\n \tTexture2D g_tSheetTexture < Attribute(\"SheetTexture\"); SrgbRead(false); >;\n \t[[layer_constant]] StructuredBuffer g_transformBuffer < Attribute(\"TransformBuffer\"); >;\n \tfloat4 g_vSheetSequenceAndSizes < Source(TextureSheetData); SourceArg(g_tColor) UiType(VectorText); >;\n-\tfloat4 g_vShrinkWrapBB_01 < Default(0); UiType(VectorText); >;\n+\tfloat4 g_vShrinkWrapBB_01 < Default4(0, 0, 0, 1); UiType(VectorText); >;\n \tfloat4 g_vShrinkWrapBB_23 < Default3(1, 1, 1); UiType(VectorText); >;\n \t\n \t// Color\n@@ -322,7 +322,7 @@ PS\n \tfloat2 g_vCutoffBiasScale < UiType(VectorText); Expression(float2(cos(.017453*min(180,g_flCutoffAngle+g_flCutoffAngleSoftness)),1/(cos(.017453*g_flCutoffAngle)-cos(.017453*min(180,g_flCutoffAngle+g_flCutoffAngleSoftness))))); >;\n \tfloat3 g_vDarkMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.1,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.1,.4,1.08).y)),2-float3(-.1,.4,1.08).z)); >;\n \tfloat3 g_vEmissiveTintScaled < UiType(VectorText); Expression(pow(2,g_flEmissiveBrightness).x*SrgbGammaToLinear(g_vEmissiveTint.xyz)); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat3 g_vMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.45,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.45,.4,1.08).y)),2-float3(-.45,.4,1.08).z)); >;\n \tfloat2 g_vRoughness < UiType(VectorText); Expression(max(.01,1-g_flGlossiness).x); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n@@ -434,17 +434,17 @@ PS\n \t    mat3x4 _m0;\n \t};\n \t\n-\tstruct _1008\n+\tstruct _1302\n \t{\n \t    vec4 _m0[3];\n \t};\n \t\n-\tstruct _1470\n+\tstruct _1764\n \t{\n \t    vec4 _m0[4];\n \t};\n \t\n-\tstruct _592\n+\tstruct _1894\n \t{\n \t    mat4 _m0[4];\n \t};\n@@ -538,9 +538,9 @@ PS\n \t\n \tlayout(set = 1) uniform _1288 PerViewConstantBufferCsgo_t;\n \t\n-\tstruct _2267\n+\tstruct _1586\n \t{\n-\t    _1008 _m0;\n+\t    _1302 _m0;\n \t    vec4 _m1;\n \t    uvec4 _m2;\n \t    uvec4 _m3;\n@@ -554,11 +554,11 @@ PS\n \t    float _m11;\n \t    float _m12;\n \t    float _m13;\n-\t    _592 _m14;\n-\t    _1470 _m15;\n+\t    _1894 _m14;\n+\t    _1764 _m15;\n \t};\n \t\n-\tlayout(set = 3) uniform _2267 PerViewLightingConstantBufferGpu_t;\n+\tlayout(set = 3) uniform _1586 PerViewLightingConstantBufferGpu_t;\n \t\n \tlayout(set = 3, binding = 30, std430) readonly buffer g_CullBits\n \t{\n@@ -571,17 +571,17 @@ PS\n \t} g_BarnLights_1;\n \t\n \tlayout(set = 1, binding = 46) uniform texture2D g_tSceneDepth;\n-\tlayout(set = 1, binding = 21) uniform sampler AddressU_Clamp_AddressV_Clamp;\n+\tlayout(set = 1, binding = 22) uniform sampler AddressU_Clamp_AddressV_Clamp;\n \tlayout(set = 1, binding = 43) uniform texture2D g_tColor;\n-\tlayout(set = 1, binding = 23) uniform sampler DefaultSamplerState_0;\n+\tlayout(set = 1, binding = 24) uniform sampler DefaultSamplerState_0;\n \tlayout(set = 1, binding = 45) uniform texture2D g_tAmbientOcclusion;\n-\tlayout(set = 1, binding = 27) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n+\tlayout(set = 1, binding = 28) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n \tlayout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;\n \tlayout(set = 1, binding = 53) uniform texture2D g_tParticleShadowBuffer;\n-\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;\n-\tlayout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;\n+\tlayout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;\n+\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;\n \tlayout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;\n-\tlayout(set = 1, binding = 26) uniform sampler g_sCookieSampler;\n+\tlayout(set = 1, binding = 27) uniform sampler g_sCookieSampler;\n \tlayout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;\n \t\n \tlayout(location = 2) flat in uint input_2;\n@@ -765,105 +765,115 @@ PS\n \t        _21785 = _21103;\n \t    }\n \t    vec4 _22272 = vec4(_20808, 1.0);\n-\t    vec3 _6607 = _11403.xyz;\n-\t    float _21710;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m5.xyz, _20808);\n+\t    float _12320;\n \t    SPIRV_CROSS_BRANCH\n-\t    if (PerViewLightingConstantBufferGpu_t._m7 != 0)\n+\t    if (_8634 > 0.0)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13137;\n-\t        vec3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n+\t        float _12504;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m7 != 0)\n \t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t._m7))\n-\t            {\n-\t                _13137 = 1.0;\n-\t                _14975 = vec3(0.0);\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            vec4 _18322 = vec4(_11403.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_13039];\n-\t            float _12780 = _18322.x;\n-\t            if (max(abs(_12780), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m9[_13039])\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13137;\n+\t            vec3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                vec3 _19470 = vec3(_12780, _18322.yz);\n-\t                vec2 _24804 = _19470.xy;\n-\t                vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m11)) + vec2(PerViewLightingConstantBufferGpu_t._m10));\n-\t                vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m15._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_13039].xy;\n-\t                vec3 _20489 = _19470;\n-\t                _20489.x = _20561.x;\n-\t                _20489.y = _20561.y;\n-\t                _13137 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20489;\n-\t                _10191 = _13039;\n-\t                break;\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t._m7))\n+\t                {\n+\t                    _13137 = 1.0;\n+\t                    _14975 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n+\t                }\n+\t                vec4 _18322 = vec4(_11403.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_13039];\n+\t                float _12780 = _18322.x;\n+\t                if (max(abs(_12780), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m9[_13039])\n+\t                {\n+\t                    vec3 _19470 = vec3(_12780, _18322.yz);\n+\t                    vec2 _24804 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m11)) + vec2(PerViewLightingConstantBufferGpu_t._m10));\n+\t                    vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m15._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_13039].xy;\n+\t                    vec3 _20489 = _19470;\n+\t                    _20489.x = _20561.x;\n+\t                    _20489.y = _20561.y;\n+\t                    _13137 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20489;\n+\t                    _10191 = _13039;\n+\t                    break;\n+\t                }\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n \t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n-\t        {\n-\t            float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);\n-\t            float _12502;\n-\t            SPIRV_CROSS_BRANCH\n-\t            if (_13137 < 1.0)\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t._m7 - 1))\n+\t                float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);\n+\t                float _12502;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13137 < 1.0)\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    vec4 _19671 = vec4(_11403.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_15335];\n-\t                    vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m15._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_15335].xy;\n-\t                    vec3 _20490;\n-\t                    _20490.x = _20562.x;\n-\t                    _20490.y = _20562.y;\n-\t                    _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20490.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m7 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19671 = vec4(_11403.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_15335];\n+\t                        vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m15._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_15335].xy;\n+\t                        vec3 _20490;\n+\t                        _20490.x = _20562.x;\n+\t                        _20490.y = _20562.y;\n+\t                        _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20490.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0;\n+\t                    }\n+\t                    _12502 = mix(_7934, _18270, _13137);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0;\n+\t                    _12502 = _18270;\n \t                }\n-\t                _12502 = mix(_7934, _18270, _13137);\n+\t                _19363 = _12502;\n \t            }\n \t            else\n \t            {\n-\t                _12502 = _18270;\n+\t                _19363 = 1.0;\n \t            }\n-\t            _19363 = _12502;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0;\n-\t        }\n-\t        float _12513 = mix(_19363, 1.0, saturate((distance(_18121.xyz, PerViewConstantBuffer_t._m7) * PerViewLightingConstantBufferGpu_t._m13) + PerViewLightingConstantBufferGpu_t._m12));\n-\t        float _12503;\n-\t        if (notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0)).y)\n-\t        {\n-\t            _12503 = min(_12513, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_24832.xy * PerViewConstantBuffer_t._m6.xy).xy, 0.0).z);\n+\t            float _12513 = mix(_19363, 1.0, saturate((distance(_18121.xyz, PerViewConstantBuffer_t._m7) * PerViewLightingConstantBufferGpu_t._m13) + PerViewLightingConstantBufferGpu_t._m12));\n+\t            float _12503;\n+\t            if (notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0)).y)\n+\t            {\n+\t                _12503 = min(_12513, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_24832.xy * PerViewConstantBuffer_t._m6.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12503 = _12513;\n+\t            }\n+\t            _12504 = _12503;\n \t        }\n \t        else\n \t        {\n-\t            _12503 = _12513;\n+\t            _12504 = 1.0;\n \t        }\n-\t        _21710 = _12503;\n+\t        _12320 = _12504;\n \t    }\n \t    else\n \t    {\n-\t        _21710 = 1.0;\n+\t        _12320 = 1.0;\n \t    }\n-\t    vec3 _21711;\n+\t    vec3 _21710;\n \t    SPIRV_CROSS_BRANCH\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t._m5.xyz, _20808) * _21710) > 0.0)\n+\t    if ((_8634 * _12320) > 0.0)\n \t    {\n-\t        _21711 = PerViewLightingConstantBufferGpu_t._m1.xyz + (vec3(max(0.0, dot(_20808, PerViewLightingConstantBufferGpu_t._m5.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m6.xyz * _21710).xyz);\n+\t        _21710 = PerViewLightingConstantBufferGpu_t._m1.xyz + (vec3(max(0.0, dot(_20808, PerViewLightingConstantBufferGpu_t._m5.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m6.xyz * _12320).xyz);\n \t    }\n \t    else\n \t    {\n-\t        _21711 = PerViewLightingConstantBufferGpu_t._m1.xyz;\n+\t        _21710 = PerViewLightingConstantBufferGpu_t._m1.xyz;\n \t    }\n \t    bvec4 _24465 = notEqual(PerViewConstantBufferCsgo_t._m1, ivec4(0));\n \t    bool _20059 = _24465.x;\n@@ -887,7 +897,7 @@ PS\n \t    uint _10838 = PerViewLightingConstantBufferGpu_t._m2.y + (((_12083.y * PerViewLightingConstantBufferGpu_t._m3.y) + _12083.x) * PerViewLightingConstantBufferGpu_t._m2.z);\n \t    uint _23393 = PerViewLightingConstantBufferGpu_t._m2.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t._m4.x, 0.0, PerViewLightingConstantBufferGpu_t._m4.y)) * PerViewLightingConstantBufferGpu_t._m2.z);\n \t    vec3 _13155;\n-\t    _13155 = _21711;\n+\t    _13155 = _21710;\n \t    uint _21567;\n \t    vec3 _13156;\n \t    uint _16208 = 0u;\n@@ -900,7 +910,7 @@ PS\n \t        uint _14475 = subgroupOr(g_CullBits_1._m0[_10838 + _16208] & g_CullBits_1._m0[_23393 + _16208]);\n \t        _13156 = _13155;\n \t        uint _20344;\n-\t        vec3 _12506;\n+\t        vec3 _12509;\n \t        uint _16209 = _14475;\n \t        for (;;)\n \t        {\n@@ -912,6 +922,7 @@ PS\n \t            _20344 = _16209 & (_16209 - 1u);\n \t            do\n \t            {\n+\t                vec3 _14644 = _11403.xyz;\n \t                vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(_11403.xyz, 1.0);\n \t                vec3 _10521 = _24893.xyz / vec3(_24893.w);\n \t                vec4 _22912;\n@@ -936,11 +947,11 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    _12885 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(_6607, 1.0)).xyz), vec3(1.0)));\n+\t                    _12885 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(_14644, 1.0)).xyz), vec3(1.0)));\n \t                }\n \t                if (_12885)\n \t                {\n-\t                    _12506 = _13156;\n+\t                    _12509 = _13156;\n \t                    break;\n \t                }\n \t                float _23571 = 2.0 * g_BarnLights_1._m0[_12608]._m5.y;\n@@ -972,7 +983,7 @@ PS\n \t                float _11633;\n \t                if (g_BarnLights_1._m0[_12608]._m2.w != 0.0)\n \t                {\n-\t                    vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - _6607;\n+\t                    vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - _14644;\n \t                    float _18345 = dot(_10017, _10017);\n \t                    float _17647 = sqrt(_18345);\n \t                    vec3 _12302 = _10017 - _16268;\n@@ -1050,7 +1061,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    vec3 _12504;\n+\t                    vec3 _12505;\n \t                    if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)\n \t                    {\n \t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);\n@@ -1066,7 +1077,7 @@ PS\n \t                        vec3 _20492 = _14081;\n \t                        _20492.x = _20565.x;\n \t                        _20492.y = _20565.y;\n-\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;\n+\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -1075,13 +1086,13 @@ PS\n \t                        vec3 _20491 = _13791;\n \t                        _20491.x = _20564.x;\n \t                        _20491.y = _20564.y;\n-\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;\n+\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12504;\n+\t                    _21548 = _12505;\n \t                }\n \t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n-\t                    _12506 = _13156;\n+\t                    _12509 = _13156;\n \t                    break;\n \t                }\n \t                vec3 _20940;\n@@ -1103,7 +1114,7 @@ PS\n \t                    vec3 _20482 = _21548.xyz * mix(1.0, textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(vec3(fma(_19630.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19630.z).xy, saturate(_19630.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0), g_BarnLights_1._m0[_12608]._m12);\n \t                    if (all(equal(_20482.xyz, vec3(0.0))))\n \t                    {\n-\t                        _12506 = _13156;\n+\t                        _12509 = _13156;\n \t                        break;\n \t                    }\n \t                    _20940 = _20482;\n@@ -1112,10 +1123,10 @@ PS\n \t                {\n \t                    _20940 = _21548;\n \t                }\n-\t                _12506 = _13156.xyz + (vec3(max(0.0, dot(_20808, _11180.xyz))).xyz * _20940.xyz);\n+\t                _12509 = _13156.xyz + (vec3(max(0.0, dot(_20808, _11180.xyz))).xyz * _20940.xyz);\n \t                break;\n \t            } while(false);\n-\t            _13156 = _12506;\n+\t            _13156 = _12509;\n \t            _16209 = _20344;\n \t            continue;\n \t        }"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_refract.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -187,7 +187,7 @@ PS\n \tTexture2D g_tNormal < Channel(RGBA, MipNormal(TextureNormal), Linear); OutputFormat(BC7); SrgbRead(false); >;\n \tTexture2D g_tNormal2 < Channel(RGBA, MipNormal(TextureNormal2), Linear); OutputFormat(BC7); SrgbRead(false); >;\n \tTexture2D g_tRefractTint < Channel(RGBA, MipNormal(TextureTintTexture), Linear); OutputFormat(BC7); SrgbRead(false); >;\n-\tfloat4 g_vFBCopyTextureRect < Default2(0, 0); Attribute(\"FrameBufferCopyRectangle\"); UiType(VectorText); >;\n+\tfloat4 g_vFBCopyTextureRect < Default4(0, 0, 1, 1); Attribute(\"FrameBufferCopyRectangle\"); UiType(VectorText); >;\n \t\n \t// Refraction\n \tCreateInputTexture2D(TextureNormal, Linear, 8, \"\", \"_normal\", \"Refraction\", Default4(0.5, 0.5, 1, 0));"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_simple.slang",
          "status": "modified",
          "additions": 108,
          "deletions": 97,
          "changes": 205,
          "patch": "@@ -313,7 +313,7 @@ PS\n \tTexture2D g_tColor < Channel(RGB, ArtistDefined(TextureColor), Srgb); Channel(A, Box(TextureMetalness), Linear); OutputFormat(BC7); SrgbRead(true); >;\n \tTexture2D g_tColor < Channel(RGB, ArtistDefined(TextureColor), Srgb); Channel(A, Box(TextureAmbientOcclusion), Linear); OutputFormat(BC7); SrgbRead(true); >;\n \tTexture2D g_tNormal < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureNormal, TextureRoughness), Linear); OutputFormat(BC7); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n \t// Ambient Occlusion\n@@ -348,17 +348,17 @@ PS\n \t// Source 2 Viewer - https://valveresourceformat.github.io\n \t// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup\n \t\n-\tstruct _2578\n+\tstruct _2830\n \t{\n \t    float4 _m0[3];\n \t};\n \t\n-\tstruct _2788\n+\tstruct _30\n \t{\n \t    float4 _m0[4];\n \t};\n \t\n-\tstruct _837\n+\tstruct _1953\n \t{\n \t    column_major float4x4 _m0[4];\n \t};\n@@ -397,20 +397,20 @@ PS\n \tcbuffer _Globals_ : register(b0, space1)\n \t{\n \t    uint _Globals_1_g_tColor : packoffset(c0);\n-\t    uint _Globals_1_g_sTrilinearWrap : packoffset(c0.w);\n-\t    uint _Globals_1_g_sTrilinearClamp : packoffset(c1);\n-\t    uint _Globals_1_g_sPointClamp : packoffset(c1.y);\n-\t    uint _Globals_1_g_sUserConfig : packoffset(c2);\n-\t    uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c2.y);\n-\t    uint _Globals_1_g_sCookieSampler : packoffset(c2.w);\n-\t    uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c3);\n-\t    int _Globals_1_g_bFogEnabled : packoffset(c3.z);\n-\t    int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c3.w);\n-\t    int _Globals_1_g_bRenderBackfaceNormals : packoffset(c4);\n-\t    float _Globals_1_g_flReflectance : packoffset(c4.y);\n-\t    uint _Globals_1_g_tNormal : packoffset(c8);\n-\t    uint _Globals_1_g_tAmbientOcclusion : packoffset(c8.w);\n-\t    float _Globals_1_g_flMetalness : packoffset(c9);\n+\t    uint _Globals_1_g_sTrilinearWrap : packoffset(c1);\n+\t    uint _Globals_1_g_sTrilinearClamp : packoffset(c1.y);\n+\t    uint _Globals_1_g_sPointClamp : packoffset(c1.z);\n+\t    uint _Globals_1_g_sUserConfig : packoffset(c2.y);\n+\t    uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c2.z);\n+\t    uint _Globals_1_g_sCookieSampler : packoffset(c3);\n+\t    uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c3.y);\n+\t    int _Globals_1_g_bFogEnabled : packoffset(c3.w);\n+\t    int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c4);\n+\t    int _Globals_1_g_bRenderBackfaceNormals : packoffset(c4.y);\n+\t    float _Globals_1_g_flReflectance : packoffset(c4.z);\n+\t    uint _Globals_1_g_tNormal : packoffset(c8.y);\n+\t    uint _Globals_1_g_tAmbientOcclusion : packoffset(c9);\n+\t    float _Globals_1_g_flMetalness : packoffset(c9.y);\n \t};\n \t\n \tcbuffer PerViewConstantBufferCsgo_t : register(b3, space1)\n@@ -440,8 +440,8 @@ PS\n \t\n \tcbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)\n \t{\n-\t    _2578 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);\n-\t    _2788 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);\n+\t    _2830 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);\n+\t    _30 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c16);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c17);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c18);\n@@ -458,8 +458,8 @@ PS\n \t    float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.y);\n \t    float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.z);\n \t    float PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1955.w);\n-\t    _837 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);\n-\t    _2788 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);\n+\t    _1953 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);\n+\t    _30 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);\n \t    uint PerViewLightingConstantBufferGpu_t_1_m20 : packoffset(c1996);\n \t    uint PerViewLightingConstantBufferGpu_t_1_m21 : packoffset(c1996.y);\n \t};\n@@ -645,99 +645,110 @@ PS\n \t    {\n \t        _21710 = 1.0f;\n \t    }\n-\t    float _21711;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735);\n+\t    float _12320;\n \t    [branch]\n-\t    if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)\n+\t    if (_8634 > 0.0f)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13136;\n-\t        float3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n+\t        float _12503;\n+\t        [branch]\n+\t        if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)\n \t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))\n-\t            {\n-\t                _13136 = 1.0f;\n-\t                _14975 = 0.0f.xxx;\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_0.xyz, 1.0f));\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13136;\n+\t            float3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                float3 _19470 = float3(_12779, _18322.yz);\n-\t                float2 _24804 = _19470.xy;\n-\t                float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);\n-\t                float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;\n-\t                float3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13136 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20488;\n-\t                _10191 = _13039;\n-\t                break;\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))\n+\t                {\n+\t                    _13136 = 1.0f;\n+\t                    _14975 = 0.0f.xxx;\n+\t                    _10191 = -1;\n+\t                    break;\n+\t                }\n+\t                float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_0.xyz, 1.0f));\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])\n+\t                {\n+\t                    float3 _19470 = float3(_12779, _18322.yz);\n+\t                    float2 _24804 = _19470.xy;\n+\t                    float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);\n+\t                    float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;\n+\t                    float3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13136 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20488;\n+\t                    _10191 = _13039;\n+\t                    break;\n+\t                }\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n \t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n-\t        {\n-\t            float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12));\n-\t            float _12501;\n-\t            [branch]\n-\t            if (_13136 < 1.0f)\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))\n+\t                float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12));\n+\t                float _12501;\n+\t                [branch]\n+\t                if (_13136 < 1.0f)\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_0.xyz, 1.0f));\n-\t                    float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;\n-\t                    float3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12));\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_0.xyz, 1.0f));\n+\t                        float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;\n+\t                        float3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12));\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0f;\n+\t                    }\n+\t                    _12501 = lerp(_7934, _18270, _13136);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0f;\n+\t                    _12501 = _18270;\n \t                }\n-\t                _12501 = lerp(_7934, _18270, _13136);\n+\t                _19363 = _12501;\n \t            }\n \t            else\n \t            {\n-\t                _12501 = _18270;\n+\t                _19363 = 1.0f;\n \t            }\n-\t            _19363 = _12501;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0f;\n-\t        }\n-\t        float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));\n-\t        float _12502;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);\n+\t            float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));\n+\t            float _12502;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12502 = _13279;\n+\t            }\n+\t            _12503 = _12502;\n \t        }\n \t        else\n \t        {\n-\t            _12502 = _13279;\n+\t            _12503 = 1.0f;\n \t        }\n-\t        _21711 = _12502;\n+\t        _12320 = _12503;\n \t    }\n \t    else\n \t    {\n-\t        _21711 = 1.0f;\n+\t        _12320 = 1.0f;\n \t    }\n \t    float3 _9716;\n \t    float3 _24878;\n \t    [branch]\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735) * _21711) > 0.0f)\n+\t    if ((_8634 * _12320) > 0.0f)\n \t    {\n \t        bool3 _19899 = all(bool3(_17892.x == 1.0f.xxx.x, _17892.y == 1.0f.xxx.y, _17892.z == 1.0f.xxx.z)).xxx;\n \t        float _11797 = max(0.0f, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t_1_m9.xyz));\n@@ -749,7 +760,7 @@ PS\n \t        float _25211 = _9850 * _9850;\n \t        float _19095 = _25211 * _25211;\n \t        float _15346 = ((_12386 * _12386) * (_19095 - 1.0f)) + 1.0f;\n-\t        float3 _16808 = (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _21711).xyz;\n+\t        float3 _16808 = (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _12320).xyz;\n \t        _9716 = ((_12351.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0f) + 2.0f)))).xyz * _11797).xyz * _16808;\n \t        _24878 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (_11797.xxx.xyz * _16808);\n \t    }\n@@ -952,7 +963,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    float3 _12503;\n+\t                    float3 _12504;\n \t                    if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)\n \t                    {\n \t                        float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);\n@@ -968,7 +979,7 @@ PS\n \t                        float3 _20492 = _14081;\n \t                        _20492.x = _20564.x;\n \t                        _20492.y = _20564.y;\n-\t                        _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20492.xyz, 0.0f).xyz;\n+\t                        _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20492.xyz, 0.0f).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -977,9 +988,9 @@ PS\n \t                        float3 _20491 = _13791;\n \t                        _20491.x = _20563.x;\n \t                        _20491.y = _20563.y;\n-\t                        _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20491.xyz, 0.0f).xyz;\n+\t                        _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20491.xyz, 0.0f).xyz;\n \t                    }\n-\t                    _21548 = _12503;\n+\t                    _21548 = _12504;\n \t                }\n \t                if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))\n \t                {\n@@ -1025,9 +1036,9 @@ PS\n \t                float _19211 = max(0.0f, dot(_11179.xyz, _12282));\n \t                float _9851 = _9841.x;\n \t                float _25212 = _9851 * _9851;\n-\t                float _19097 = _25212 * _25212;\n-\t                float _15348 = ((_12387 * _12387) * (_19097 - 1.0f)) + 1.0f;\n-\t                _13212 = _13138.xyz + (((_12351.xyz * (_19097 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0f) + 2.0f)))).xyz * _11798).xyz * _22671.xyz);\n+\t                float _19096 = _25212 * _25212;\n+\t                float _15348 = ((_12387 * _12387) * (_19096 - 1.0f)) + 1.0f;\n+\t                _13212 = _13138.xyz + (((_12351.xyz * (_19096 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0f) + 2.0f)))).xyz * _11798).xyz * _22671.xyz);\n \t                _15670 = _16325.xyz + (_11798.xxx.xyz * _22671.xyz);\n \t                break;\n \t            } while(false);"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_simple_2way_blend.slang",
          "status": "modified",
          "additions": 423,
          "deletions": 418,
          "changes": 841,
          "patch": "@@ -313,7 +313,7 @@ PS\n \tTexture2D g_tNormalA < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureNormalA, TextureRoughnessA), Linear); OutputFormat(BC7); SrgbRead(false); >;\n \tTexture2D g_tNormalB < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureNormalB, TextureRoughnessB), Linear); OutputFormat(BC7); SrgbRead(false); >;\n \tTexture2D g_tTintMask < Channel(R, Box(TextureTintMaskA), Linear); Channel(G, Box(TextureTintMaskB), Linear); OutputFormat(ATI2N); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n \t// Material A\n@@ -352,451 +352,476 @@ PS\n \tTexture2D g_tColorA < Channel(RGB, Box(TextureColorA), Srgb); OutputFormat(DXT1); SrgbRead(true); >;\n \tTexture2D g_tColorB < Channel(RGB, Box(TextureColorB), Srgb); OutputFormat(DXT1); SrgbRead(true); >;\n \t\n+\t// SPIR-V reflection failed for backend HLSL:\n+\t// cbuffer ID 5618 (name: _Globals_), member index 6 (name: g_vTexCoordScale2) cannot be expressed with either HLSL packing layout or packoffset.\n+\t//\n+\t// Re-attempting reflection with the GLSL backend.\n+\t\n \t// Source 2 Viewer - https://valveresourceformat.github.io\n-\t// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup\n+\t// SPIR-V source, GLSL reflection with SPIRV-Cross by KhronosGroup\n+\t\n+\t#version 460\n+\t#if defined(GL_EXT_control_flow_attributes)\n+\t#extension GL_EXT_control_flow_attributes : require\n+\t#define SPIRV_CROSS_FLATTEN [[flatten]]\n+\t#define SPIRV_CROSS_BRANCH [[dont_flatten]]\n+\t#define SPIRV_CROSS_UNROLL [[unroll]]\n+\t#define SPIRV_CROSS_LOOP [[dont_unroll]]\n+\t#else\n+\t#define SPIRV_CROSS_FLATTEN\n+\t#define SPIRV_CROSS_BRANCH\n+\t#define SPIRV_CROSS_UNROLL\n+\t#define SPIRV_CROSS_LOOP\n+\t#endif\n+\t#extension GL_KHR_shader_subgroup_arithmetic : require\n \t\n-\tstruct _2242\n+\tstruct _2494\n \t{\n-\t    float4 _m0[3];\n+\t    vec4 _m0[3];\n \t};\n \t\n-\tstruct _2452\n+\tstruct _2704\n \t{\n-\t    float4 _m0[4];\n+\t    vec4 _m0[4];\n \t};\n \t\n-\tstruct _2360\n+\tstruct _465\n \t{\n-\t    column_major float4x4 _m0[4];\n+\t    mat4 _m0[4];\n \t};\n \t\n \tstruct _200\n \t{\n-\t    column_major float4x4 _m0;\n-\t    column_major float4x4 _m1;\n-\t    float4 _m2;\n-\t    float4 _m3;\n-\t    float4 _m4;\n-\t    float4 _m5;\n-\t    float3 _m6;\n+\t    mat4 _m0;\n+\t    mat4 _m1;\n+\t    vec4 _m2;\n+\t    vec4 _m3;\n+\t    vec4 _m4;\n+\t    vec4 _m5;\n+\t    vec3 _m6;\n \t    uint _m7;\n-\t    float4 _m8;\n-\t    float4 _m9;\n-\t    float4 _m10;\n+\t    vec4 _m8;\n+\t    vec4 _m9;\n+\t    vec4 _m10;\n \t    float _m11;\n \t    float _m12;\n \t    uint _m13;\n \t    int _m14;\n-\t    column_major float4x3 _m15;\n-\t    float4 _m16;\n-\t    float4 _m17;\n-\t    float4 _m18;\n-\t    float4 _m19;\n-\t    float4 _m20;\n-\t    float3 _m21;\n+\t    mat4x3 _m15;\n+\t    vec4 _m16;\n+\t    vec4 _m17;\n+\t    vec4 _m18;\n+\t    vec4 _m19;\n+\t    vec4 _m20;\n+\t    vec3 _m21;\n \t    float _m22;\n-\t    column_major float4x4 _m23;\n+\t    mat4 _m23;\n \t};\n \t\n-\tstatic float4 _3;\n-\tstatic float3 _4;\n+\tvec4 _3;\n+\tvec3 _4;\n \t\n-\tcbuffer _Globals_ : register(b0, space1)\n+\tstruct _1571\n \t{\n-\t    uint _Globals_1_g_sTrilinearWrap : packoffset(c0.z);\n-\t    uint _Globals_1_g_sTrilinearClamp : packoffset(c0.w);\n-\t    uint _Globals_1_g_sPointClamp : packoffset(c1);\n-\t    uint _Globals_1_g_sUserConfig : packoffset(c1.w);\n-\t    float _Globals_1_g_flMetalnessA : packoffset(c3);\n-\t    float _Globals_1_g_flMetalnessB : packoffset(c3.y);\n-\t    float2 _Globals_1_g_vTexCoordScale2 : packoffset(c3.z);\n-\t    uint _Globals_1_g_tColorA : packoffset(c4);\n-\t    uint _Globals_1_g_tColorB : packoffset(c4.y);\n-\t    uint _Globals_1_g_tNormalA : packoffset(c4.z);\n-\t    uint _Globals_1_g_tNormalB : packoffset(c4.w);\n-\t    uint _Globals_1_g_tMask : packoffset(c5);\n-\t    uint _Globals_1_g_sCookieSampler : packoffset(c5.z);\n-\t    uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c5.w);\n-\t    int _Globals_1_g_bFogEnabled : packoffset(c6.y);\n-\t    float _Globals_1_g_flReflectance : packoffset(c7);\n+\t    uint g_sTrilinearWrap;\n+\t    uint g_sTrilinearClamp;\n+\t    uint g_sPointClamp;\n+\t    uint g_sUserConfig;\n+\t    float g_flMetalnessA;\n+\t    float g_flMetalnessB;\n+\t    vec2 g_vTexCoordScale2;\n+\t    uint g_tColorA;\n+\t    uint g_tColorB;\n+\t    uint g_tNormalA;\n+\t    uint g_tNormalB;\n+\t    uint g_tMask;\n+\t    uint g_sCookieSampler;\n+\t    uint g_tShadowDepthBufferCmpSampler;\n+\t    int g_bFogEnabled;\n+\t    float g_flReflectance;\n \t};\n \t\n-\tcbuffer PerViewConstantBufferCsgo_t : register(b3, space1)\n+\tlayout(set = 1) uniform _1571 _Globals_;\n+\t\n+\tstruct _1374\n \t{\n-\t    int4 PerViewConstantBufferCsgo_t_1_m0 : packoffset(c1);\n-\t    int4 PerViewConstantBufferCsgo_t_1_m1 : packoffset(c2);\n-\t    int4 PerViewConstantBufferCsgo_t_1_m2 : packoffset(c3);\n-\t    uint PerViewConstantBufferCsgo_t_1_m3 : packoffset(c4.z);\n-\t    uint PerViewConstantBufferCsgo_t_1_m4 : packoffset(c4.w);\n-\t    uint PerViewConstantBufferCsgo_t_1_m5 : packoffset(c5);\n-\t    uint PerViewConstantBufferCsgo_t_1_m6 : packoffset(c5.z);\n-\t    uint PerViewConstantBufferCsgo_t_1_m7 : packoffset(c6.z);\n-\t    column_major float4x4 PerViewConstantBufferCsgo_t_1_m8 : packoffset(c12);\n-\t    float2 PerViewConstantBufferCsgo_t_1_m9 : packoffset(c16);\n-\t    float PerViewConstantBufferCsgo_t_1_m10 : packoffset(c16.z);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m11 : packoffset(c23);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m12 : packoffset(c24);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m13 : packoffset(c25);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m14 : packoffset(c26);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m15 : packoffset(c27);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m16 : packoffset(c28);\n-\t    column_major float4x4 PerViewConstantBufferCsgo_t_1_m17 : packoffset(c29);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m18 : packoffset(c33);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m19 : packoffset(c34);\n-\t    float4 PerViewConstantBufferCsgo_t_1_m20 : packoffset(c35);\n+\t    ivec4 _m0;\n+\t    ivec4 _m1;\n+\t    ivec4 _m2;\n+\t    uint _m3;\n+\t    uint _m4;\n+\t    uint _m5;\n+\t    uint _m6;\n+\t    uint _m7;\n+\t    mat4 _m8;\n+\t    vec2 _m9;\n+\t    float _m10;\n+\t    vec4 _m11;\n+\t    vec4 _m12;\n+\t    vec4 _m13;\n+\t    vec4 _m14;\n+\t    vec4 _m15;\n+\t    vec4 _m16;\n+\t    mat4 _m17;\n+\t    vec4 _m18;\n+\t    vec4 _m19;\n+\t    vec4 _m20;\n \t};\n \t\n-\tcbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)\n+\tlayout(set = 1) uniform _1374 PerViewConstantBufferCsgo_t;\n+\t\n+\tstruct _838\n \t{\n-\t    _2242 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);\n-\t    _2452 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c16);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c17);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c18);\n-\t    uint4 PerViewLightingConstantBufferGpu_t_1_m5 : packoffset(c19);\n-\t    uint4 PerViewLightingConstantBufferGpu_t_1_m6 : packoffset(c22);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m7 : packoffset(c23);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m8 : packoffset(c24);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m9 : packoffset(c1945);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m10 : packoffset(c1946);\n-\t    int PerViewLightingConstantBufferGpu_t_1_m11 : packoffset(c1953);\n-\t    float PerViewLightingConstantBufferGpu_t_1_m12 : packoffset(c1953.z);\n-\t    float4 PerViewLightingConstantBufferGpu_t_1_m13 : packoffset(c1954);\n-\t    float PerViewLightingConstantBufferGpu_t_1_m14 : packoffset(c1955);\n-\t    float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.y);\n-\t    float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.z);\n-\t    float PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1955.w);\n-\t    _2360 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);\n-\t    _2452 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);\n-\t    uint PerViewLightingConstantBufferGpu_t_1_m20 : packoffset(c1996);\n-\t    uint PerViewLightingConstantBufferGpu_t_1_m21 : packoffset(c1996.y);\n+\t    _2494 _m0;\n+\t    _2704 _m1;\n+\t    vec4 _m2;\n+\t    vec4 _m3;\n+\t    vec4 _m4;\n+\t    uvec4 _m5;\n+\t    uvec4 _m6;\n+\t    vec4 _m7;\n+\t    vec4 _m8;\n+\t    vec4 _m9;\n+\t    vec4 _m10;\n+\t    int _m11;\n+\t    float _m12;\n+\t    vec4 _m13;\n+\t    float _m14;\n+\t    float _m15;\n+\t    float _m16;\n+\t    float _m17;\n+\t    _465 _m18;\n+\t    _2704 _m19;\n+\t    uint _m20;\n+\t    uint _m21;\n \t};\n \t\n-\tcbuffer PerViewConstantBuffer_t : register(b1, space1)\n+\tlayout(set = 3) uniform _838 PerViewLightingConstantBufferGpu_t;\n+\t\n+\tstruct _1194\n \t{\n-\t    float2 PerViewConstantBuffer_t_1_m0 : packoffset(c20);\n-\t    float2 PerViewConstantBuffer_t_1_m1 : packoffset(c20.z);\n-\t    float4 PerViewConstantBuffer_t_1_m2 : packoffset(c22);\n-\t    float3 PerViewConstantBuffer_t_1_m3 : packoffset(c26);\n+\t    vec2 _m0;\n+\t    vec2 _m1;\n+\t    vec4 _m2;\n+\t    vec3 _m3;\n \t};\n \t\n-\tByteAddressBuffer g_CullBits : register(t30, space3);\n-\tByteAddressBuffer g_BarnLights : register(t31, space3);\n-\tTexture2D<float4> g_bindless_Texture2D_float4[65536] : register(t46, space4);\n-\tSamplerState g_bindless_Sampler[2048] : register(s29, space4);\n-\tSamplerComparisonState g_bindless_Sampler_1[2048] : register(s29, space4);\n-\tTexture3D<float4> g_bindless_Texture3D_float4[65536] : register(t46, space4);\n-\tTextureCubeArray<float4> g_bindless_TextureCubeArray_float4[65536] : register(t46, space4);\n-\tTextureCube<float4> g_bindless_TextureCube_float4[65536] : register(t46, space4);\n-\t\n-\tstatic float4 gl_FragCoord;\n-\tstatic float4 input_0;\n-\tstatic float3 input_1;\n-\tstatic float3 input_2;\n-\tstatic float4 input_3;\n-\tstatic float4 input_4;\n-\tstatic float3 input_5;\n-\tstatic float4 input_6;\n-\tstatic float4 output_0;\n-\t\n-\tstruct PS_INPUT\n+\tlayout(set = 1) uniform _1194 PerViewConstantBuffer_t;\n+\t\n+\tlayout(set = 3, binding = 30, std430) readonly buffer g_CullBits\n \t{\n-\t    float4 input_0 : TEXCOORD0;\n-\t    float3 input_1 : TEXCOORD1;\n-\t    float3 input_2 : TEXCOORD2;\n-\t    float4 input_3 : TEXCOORD3;\n-\t    centroid float4 input_4 : TEXCOORD4;\n-\t    centroid float3 input_5 : TEXCOORD5;\n-\t    float4 input_6 : TEXCOORD6;\n-\t    float4 gl_FragCoord : SV_Position;\n-\t};\n+\t    uint _m0[];\n+\t} g_CullBits_1;\n \t\n-\tstruct PS_OUTPUT\n+\tlayout(set = 3, binding = 31, std430) readonly buffer g_BarnLights\n \t{\n-\t    float4 output_0 : SV_Target0;\n-\t};\n+\t    layout(row_major) _200 _m0[];\n+\t} g_BarnLights_1;\n+\t\n+\tlayout(set = 4, binding = 46) uniform texture2D g_bindless_Texture2D_float4[65536];\n+\tlayout(set = 4, binding = 29) uniform sampler g_bindless_Sampler[2048];\n+\tlayout(set = 4, binding = 29) uniform samplerShadow g_bindless_Sampler_1[2048];\n+\tlayout(set = 4, binding = 46) uniform texture3D g_bindless_Texture3D_float4[65536];\n+\tlayout(set = 4, binding = 46) uniform textureCubeArray g_bindless_TextureCubeArray_float4[65536];\n+\tlayout(set = 4, binding = 46) uniform textureCube g_bindless_TextureCube_float4[65536];\n+\t\n+\tlayout(location = 0) in vec4 input_0;\n+\tlayout(location = 1) in vec3 input_1;\n+\tlayout(location = 2) in vec3 input_2;\n+\tlayout(location = 3) in vec4 input_3;\n+\tlayout(location = 4) centroid in vec4 input_4;\n+\tlayout(location = 5) centroid in vec3 input_5;\n+\tlayout(location = 6) in vec4 input_6;\n+\tlayout(location = 0) out vec4 output_0;\n \t\n-\tvoid MainPs_inner()\n+\tvoid main()\n \t{\n-\t    float4 _11408 = gl_FragCoord;\n-\t    _11408.w = 1.0f / _11408.w;\n-\t    float3 _21709;\n-\t    if (dot(input_2.xyz, input_2.xyz) >= 1.0099999904632568359375f)\n+\t    vec4 _11408 = gl_FragCoord;\n+\t    _11408.w = 1.0 / _11408.w;\n+\t    vec3 _21709;\n+\t    if (dot(input_2.xyz, input_2.xyz) >= 1.0099999904632568359375)\n \t    {\n \t        _21709 = input_5.xyz;\n \t    }\n \t    else\n \t    {\n \t        _21709 = input_2.xyz;\n \t    }\n-\t    float3 _20700 = normalize(_21709);\n-\t    float3 _7715 = input_1 + PerViewConstantBufferCsgo_t_1_m20.xyz;\n-\t    float2 _11085 = (input_3.xy * _Globals_1_g_vTexCoordScale2.xy).xy;\n-\t    float4 _21762 = g_bindless_Texture2D_float4[_Globals_1_g_tNormalA].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfig], input_3.xy);\n-\t    float4 _21763 = g_bindless_Texture2D_float4[_Globals_1_g_tNormalB].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfig], _11085);\n-\t    float4 _19372 = g_bindless_Texture2D_float4[_Globals_1_g_tMask].Sample(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _11085);\n+\t    vec3 _20700 = normalize(_21709);\n+\t    vec3 _7715 = input_1 + PerViewConstantBufferCsgo_t._m20.xyz;\n+\t    vec2 _11085 = (input_3.xy * _Globals_.g_vTexCoordScale2.xy).xy;\n+\t    vec4 _21762 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tNormalA], g_bindless_Sampler[_Globals_.g_sUserConfig]), input_3.xy);\n+\t    vec4 _21763 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tNormalB], g_bindless_Sampler[_Globals_.g_sUserConfig]), _11085);\n+\t    vec4 _19372 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tMask], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _11085);\n \t    float _16038 = _19372.x;\n-\t    float _24575 = smoothstep(max(0.0f, _16038 - input_0.w), min(1.0f, _16038 + input_0.w), input_0.x);\n-\t    float3 _21122 = g_bindless_Texture2D_float4[_Globals_1_g_tColorA].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfig], input_3.xy).xyz * input_4.xyz;\n-\t    float4 _23714;\n+\t    float _24575 = smoothstep(max(0.0, _16038 - input_0.w), min(1.0, _16038 + input_0.w), input_0.x);\n+\t    vec3 _21122 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tColorA], g_bindless_Sampler[_Globals_.g_sUserConfig]), input_3.xy).xyz * input_4.xyz;\n+\t    vec4 _23714;\n \t    _23714.x = _21122.x;\n \t    _23714.y = _21122.y;\n \t    _23714.z = _21122.z;\n-\t    float3 _20313 = g_bindless_Texture2D_float4[_Globals_1_g_tColorB].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfig], _11085).xyz * input_4.xyz;\n-\t    float4 _23715;\n+\t    vec3 _20313 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tColorB], g_bindless_Sampler[_Globals_.g_sUserConfig]), _11085).xyz * input_4.xyz;\n+\t    vec4 _23715;\n \t    _23715.x = _20313.x;\n \t    _23715.y = _20313.y;\n \t    _23715.z = _20313.z;\n-\t    float4 _8489 = lerp(_21762.xyzw, _21763.xyzw, _24575.xxxx);\n-\t    float _14051 = lerp(_Globals_1_g_flMetalnessA, _Globals_1_g_flMetalnessB, _24575);\n-\t    float3 _11217 = lerp(_23714.xyz, _23715.xyz, _24575.xxx).xyz;\n-\t    float3 _25153 = lerp(_Globals_1_g_flReflectance.xxx.xyz, _11217, _14051.xxx);\n+\t    vec4 _8489 = mix(_21762.xyzw, _21763.xyzw, vec4(_24575));\n+\t    float _14051 = mix(_Globals_.g_flMetalnessA, _Globals_.g_flMetalnessB, _24575);\n+\t    vec3 _11217 = mix(_23714.xyz, _23715.xyz, vec3(_24575)).xyz;\n+\t    vec3 _25153 = mix(vec3(_Globals_.g_flReflectance).xyz, _11217, vec3(_14051));\n \t    float _10782 = _8489.x;\n \t    float _17303 = _8489.y;\n-\t    float _16783 = (_10782 + _17303) - 1.00392162799835205078125f;\n+\t    float _16783 = (_10782 + _17303) - 1.00392162799835205078125;\n \t    float _11176 = _10782 - _17303;\n-\t    float3 _23372 = normalize(float3(float2(_16783, _11176), (1.0f - abs(_16783)) - abs(_11176)));\n-\t    float3 _20024 = input_2.xyz * 1.0f;\n-\t    float3 _14435 = cross(_20024.xyz, input_6.xyz) * ((input_6.w > 0.0f) ? 1.0f : (-1.0f));\n-\t    float3 _20195;\n-\t    if (bool4(PerViewConstantBufferCsgo_t_1_m2.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m2.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m2.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m2.w != int4(0, 0, 0, 0).w).w)\n+\t    vec3 _23372 = normalize(vec3(vec2(_16783, _11176), (1.0 - abs(_16783)) - abs(_11176)));\n+\t    vec3 _20024 = input_2.xyz * 1.0;\n+\t    vec3 _14435 = cross(_20024.xyz, input_6.xyz) * ((input_6.w > 0.0) ? 1.0 : (-1.0));\n+\t    vec3 _20195;\n+\t    if (notEqual(PerViewConstantBufferCsgo_t._m2, ivec4(0)).w)\n \t    {\n \t        _20195 = -_14435;\n \t    }\n \t    else\n \t    {\n \t        _20195 = _14435;\n \t    }\n-\t    float3 _19740 = normalize((((input_6.xyz * _23372.x).xyz + (_20195.xyz * (-_23372.y))).xyz + (_20024.xyz * _23372.z)).xyz);\n-\t    bool3 _10679 = all(bool3(true, true, true)).xxx;\n-\t    float3 _17892 = float3(_10679.x ? _19740.x : 1.0f.xxx.x, _10679.y ? _19740.y : 1.0f.xxx.y, _10679.z ? _19740.z : 1.0f.xxx.z);\n-\t    float3 _10560 = _20700.xyz;\n-\t    float3 _11099 = ddx(_10560);\n-\t    float3 _9175 = ddy(_10560);\n-\t    float3 _10347 = _11099.xyz;\n-\t    float3 _12420 = _9175.xyz;\n-\t    float2 _21815 = max(_8489.z.xx.xy, pow(saturate(max(dot(_10347, _10347), dot(_12420, _12420))), 0.333000004291534423828125f).xx);\n-\t    float3 _15598 = -_20700;\n-\t    float3 _24735 = _19740.xyz;\n-\t    float4 _23875 = float4(_24735, 1.0f);\n-\t    bool4 _24465 = bool4(PerViewConstantBufferCsgo_t_1_m0.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m0.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m0.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m0.w != int4(0, 0, 0, 0).w);\n+\t    vec3 _19740 = normalize((((input_6.xyz * _23372.x).xyz + (_20195.xyz * (-_23372.y))).xyz + (_20024.xyz * _23372.z)).xyz);\n+\t    vec3 _17892 = mix(vec3(1.0), _19740, bvec3(all(bvec3(true))));\n+\t    vec3 _10560 = _20700.xyz;\n+\t    vec3 _11099 = dFdx(_10560);\n+\t    vec3 _9175 = dFdy(_10560);\n+\t    vec3 _10347 = _11099.xyz;\n+\t    vec3 _12420 = _9175.xyz;\n+\t    vec2 _21815 = max(vec2(_8489.z).xy, vec2(pow(saturate(max(dot(_10347, _10347), dot(_12420, _12420))), 0.333000004291534423828125)));\n+\t    vec3 _15598 = -_20700;\n+\t    vec3 _24735 = _19740.xyz;\n+\t    vec4 _23875 = vec4(_24735, 1.0);\n+\t    bvec4 _24465 = notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0));\n \t    float _21710;\n \t    if (_24465.x)\n \t    {\n-\t        float3 _11394 = _20700.xyz;\n-\t        float2 _11086 = ((floor(_11408.xy * PerViewConstantBufferCsgo_t_1_m10) * PerViewConstantBufferCsgo_t_1_m9.xy) + (PerViewConstantBufferCsgo_t_1_m9.xy * 0.5f)).xy;\n-\t        float4 _18418 = g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m5].GatherRed(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _11086).xyzw - _11408.zzzz;\n+\t        vec3 _11394 = _20700.xyz;\n+\t        vec2 _11086 = ((floor(_11408.xy * PerViewConstantBufferCsgo_t._m10) * PerViewConstantBufferCsgo_t._m9.xy) + (PerViewConstantBufferCsgo_t._m9.xy * 0.5)).xy;\n+\t        vec4 _18418 = textureGather(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m5], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _11086).xyzw - _11408.zzzz;\n \t        float _18579 = _18418.w;\n \t        float _12013 = _18418.z;\n \t        bool _12285 = abs(_12013) < _18579;\n-\t        float2 _23168;\n+\t        vec2 _23168;\n \t        if (_12285)\n \t        {\n-\t            _23168 = float2(PerViewConstantBufferCsgo_t_1_m9.x, 0.0f);\n+\t            _23168 = vec2(PerViewConstantBufferCsgo_t._m9.x, 0.0);\n \t        }\n \t        else\n \t        {\n-\t            _23168 = 0.0f.xx;\n+\t            _23168 = vec2(0.0);\n \t        }\n \t        float _20965 = _12285 ? _12013 : _18579;\n \t        float _15372 = _18418.x;\n \t        bool _12286 = abs(_15372) < _20965;\n-\t        float2 _23169;\n+\t        vec2 _23169;\n \t        if (_12286)\n \t        {\n-\t            _23169 = float2(0.0f, PerViewConstantBufferCsgo_t_1_m9.y);\n+\t            _23169 = vec2(0.0, PerViewConstantBufferCsgo_t._m9.y);\n \t        }\n \t        else\n \t        {\n \t            _23169 = _23168;\n \t        }\n-\t        bool2 _13083 = (abs(_18418.y) < (_12286 ? _15372 : _20965)).xx;\n-\t        float4 _10010 = normalize(float4(PerViewLightingConstantBufferGpu_t_1_m2.x * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[0].xy, 0.25f))), 0.5f, 0.5f), PerViewLightingConstantBufferGpu_t_1_m2.y * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[1].xy, 0.25f))), 0.5f, 0.5f), PerViewLightingConstantBufferGpu_t_1_m2.z * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[2].xy, 0.25f))), 0.5f, 0.5f), PerViewLightingConstantBufferGpu_t_1_m2.w * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[3].xy, 0.25f))), 0.5f, 0.5f)));\n-\t        float4 _13232 = max(float4(dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[0].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[1].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[2].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[3].xyz, _11394)).xyzw, 0.0f.xxxx) * normalize(clamp(((_10010 - max(max(_10010.x, _10010.y), max(_10010.z, _10010.w)).xxxx) + 0.20000000298023223876953125f.xxxx) * 5.0f.xxxx, 0.0f.xxxx, 1.0f.xxxx));\n-\t        _21710 = (1.0f / (dot(_13232, 1.0f.xxxx) + PerViewLightingConstantBufferGpu_t_1_m3.x)) * (PerViewLightingConstantBufferGpu_t_1_m3.x + dot(_13232, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m4].SampleLevel(g_bindless_Sampler[_Globals_1_g_sPointClamp], (_11086 + float2(_13083.x ? PerViewConstantBufferCsgo_t_1_m9.xy.x : _23169.x, _13083.y ? PerViewConstantBufferCsgo_t_1_m9.xy.y : _23169.y).xy).xy, 0.0f)));\n+\t        vec4 _10010 = normalize(vec4(PerViewLightingConstantBufferGpu_t._m2.x * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[0].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m2.y * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[1].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m2.z * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[2].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m2.w * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[3].xy, 0.25))), 0.5, 0.5)));\n+\t        vec4 _13232 = max(vec4(dot(PerViewLightingConstantBufferGpu_t._m1._m0[0].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m1._m0[1].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m1._m0[2].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m1._m0[3].xyz, _11394)).xyzw, vec4(0.0)) * normalize(saturate(((_10010 - vec4(max(max(_10010.x, _10010.y), max(_10010.z, _10010.w)))) + vec4(0.20000000298023223876953125)) * vec4(5.0)));\n+\t        _21710 = (1.0 / (dot(_13232, vec4(1.0)) + PerViewLightingConstantBufferGpu_t._m3.x)) * (PerViewLightingConstantBufferGpu_t._m3.x + dot(_13232, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], g_bindless_Sampler[_Globals_.g_sPointClamp]), (_11086 + mix(_23169, PerViewConstantBufferCsgo_t._m9.xy, bvec2(abs(_18418.y) < (_12286 ? _15372 : _20965))).xy).xy, 0.0)));\n \t    }\n \t    else\n \t    {\n-\t        _21710 = 1.0f;\n+\t        _21710 = 1.0;\n \t    }\n-\t    float _21711;\n-\t    [branch]\n-\t    if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _24735);\n+\t    float _12320;\n+\t    SPIRV_CROSS_BRANCH\n+\t    if (_8634 > 0.0)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13136;\n-\t        float3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n+\t        float _12503;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m11 != 0)\n \t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))\n-\t            {\n-\t                _13136 = 1.0f;\n-\t                _14975 = 0.0f.xxx;\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_1.xyz, 1.0f));\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13136;\n+\t            vec3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                float3 _19470 = float3(_12779, _18322.yz);\n-\t                float2 _24804 = _19470.xy;\n-\t                float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);\n-\t                float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;\n-\t                float3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13136 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20488;\n-\t                _10191 = _13039;\n-\t                break;\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t._m11))\n+\t                {\n+\t                    _13136 = 1.0;\n+\t                    _14975 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n+\t                }\n+\t                vec4 _18322 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_13039];\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m13[_13039])\n+\t                {\n+\t                    vec3 _19470 = vec3(_12779, _18322.yz);\n+\t                    vec2 _24804 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m15)) + vec2(PerViewLightingConstantBufferGpu_t._m14));\n+\t                    vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_13039].xy;\n+\t                    vec3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13136 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20488;\n+\t                    _10191 = _13039;\n+\t                    break;\n+\t                }\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n \t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n-\t        {\n-\t            float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12));\n-\t            float _12501;\n-\t            [branch]\n-\t            if (_13136 < 1.0f)\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))\n+\t                float _18270 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);\n+\t                float _12501;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13136 < 1.0)\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_1.xyz, 1.0f));\n-\t                    float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;\n-\t                    float3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12));\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m11 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19671 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_15335];\n+\t                        vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_15335].xy;\n+\t                        vec3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        _7934 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0;\n+\t                    }\n+\t                    _12501 = mix(_7934, _18270, _13136);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0f;\n+\t                    _12501 = _18270;\n \t                }\n-\t                _12501 = lerp(_7934, _18270, _13136);\n+\t                _19363 = _12501;\n \t            }\n \t            else\n \t            {\n-\t                _12501 = _18270;\n+\t                _19363 = 1.0;\n \t            }\n-\t            _19363 = _12501;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0f;\n-\t        }\n-\t        float _13279 = lerp(_19363, 1.0f, saturate((distance(_7715.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));\n-\t        float _12502;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);\n+\t            float _13279 = mix(_19363, 1.0, saturate((distance(_7715.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m17) + PerViewLightingConstantBufferGpu_t._m16));\n+\t            float _12502;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12502 = min(_13279, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m6], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12502 = _13279;\n+\t            }\n+\t            _12503 = _12502;\n \t        }\n \t        else\n \t        {\n-\t            _12502 = _13279;\n+\t            _12503 = 1.0;\n \t        }\n-\t        _21711 = _12502;\n+\t        _12320 = _12503;\n \t    }\n \t    else\n \t    {\n-\t        _21711 = 1.0f;\n+\t        _12320 = 1.0;\n \t    }\n-\t    float3 _9716;\n-\t    float3 _24878;\n-\t    [branch]\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735) * _21711) > 0.0f)\n+\t    vec3 _9716;\n+\t    vec3 _24878;\n+\t    SPIRV_CROSS_BRANCH\n+\t    if ((_8634 * _12320) > 0.0)\n \t    {\n-\t        bool3 _19899 = all(bool3(_17892.x == 1.0f.xxx.x, _17892.y == 1.0f.xxx.y, _17892.z == 1.0f.xxx.z)).xxx;\n-\t        float _11797 = max(0.0f, dot(_19740.xyz, PerViewLightingConstantBufferGpu_t_1_m9.xyz));\n-\t        float2 _9840 = max(_21815, PerViewLightingConstantBufferGpu_t_1_m9.w.xx);\n-\t        float3 _12281 = normalize(PerViewLightingConstantBufferGpu_t_1_m9.xyz + (-normalize(_7715.xyz - PerViewConstantBuffer_t_1_m3.xyz)).xyz).xyz;\n-\t        float _12386 = dot(_12281, float3(_19899.x ? _24735.x : _17892.x, _19899.y ? _24735.y : _17892.y, _19899.z ? _24735.z : _17892.z).xyz);\n-\t        float _19210 = max(0.0f, dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _12281));\n+\t        float _11797 = max(0.0, dot(_19740.xyz, PerViewLightingConstantBufferGpu_t._m9.xyz));\n+\t        vec2 _9840 = max(_21815, vec2(PerViewLightingConstantBufferGpu_t._m9.w));\n+\t        vec3 _12281 = normalize(PerViewLightingConstantBufferGpu_t._m9.xyz + (-normalize(_7715.xyz - PerViewConstantBuffer_t._m3.xyz)).xyz).xyz;\n+\t        float _12386 = dot(_12281, mix(_17892, _24735, bvec3(all(equal(_17892, vec3(1.0))))).xyz);\n+\t        float _19210 = max(0.0, dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _12281));\n \t        float _9850 = _9840.x;\n \t        float _25211 = _9850 * _9850;\n \t        float _19095 = _25211 * _25211;\n-\t        float _15346 = ((_12386 * _12386) * (_19095 - 1.0f)) + 1.0f;\n-\t        float3 _16808 = (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _21711).xyz;\n-\t        _9716 = ((_25153.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0f) + 2.0f)))).xyz * _11797).xyz * _16808;\n-\t        _24878 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (_11797.xxx.xyz * _16808);\n+\t        float _15346 = ((_12386 * _12386) * (_19095 - 1.0)) + 1.0;\n+\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m10.xyz * _12320).xyz;\n+\t        _9716 = ((_25153.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0) + 2.0)))).xyz * _11797).xyz * _16808;\n+\t        _24878 = PerViewLightingConstantBufferGpu_t._m4.xyz + (vec3(_11797).xyz * _16808);\n \t    }\n \t    else\n \t    {\n-\t        _9716 = 0.0f.xxx;\n-\t        _24878 = PerViewLightingConstantBufferGpu_t_1_m4.xyz;\n+\t        _9716 = vec3(0.0);\n+\t        _24878 = PerViewLightingConstantBufferGpu_t._m4.xyz;\n \t    }\n-\t    bool4 _24466 = bool4(PerViewConstantBufferCsgo_t_1_m1.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m1.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m1.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m1.w != int4(0, 0, 0, 0).w);\n+\t    bvec4 _24466 = notEqual(PerViewConstantBufferCsgo_t._m1, ivec4(0));\n \t    bool _20060 = _24466.x;\n-\t    float4 _19364;\n+\t    vec4 _19364;\n \t    if (_20060)\n \t    {\n-\t        float4 _18621 = mul(PerViewConstantBufferCsgo_t_1_m8, float4(_7715.xyz, 1.0f).xyzw);\n+\t        vec4 _18621 = vec4(_7715.xyz, 1.0).xyzw * PerViewConstantBufferCsgo_t._m8;\n \t        float _20176 = _18621.w;\n-\t        float2 _11414 = _18621.xy / _20176.xx;\n-\t        float4 _6651;\n-\t        _6651.x = clamp(((_11414.x + 1.0f) * PerViewConstantBuffer_t_1_m1.x) * 0.5f, 0.0f, PerViewConstantBuffer_t_1_m1.x - 1.0f);\n-\t        _6651.y = clamp(((1.0f - _11414.y) * PerViewConstantBuffer_t_1_m1.y) * 0.5f, 0.0f, PerViewConstantBuffer_t_1_m1.y - 1.0f);\n+\t        vec2 _11414 = _18621.xy / vec2(_20176);\n+\t        vec4 _6651;\n+\t        _6651.x = clamp(((_11414.x + 1.0) * PerViewConstantBuffer_t._m1.x) * 0.5, 0.0, PerViewConstantBuffer_t._m1.x - 1.0);\n+\t        _6651.y = clamp(((1.0 - _11414.y) * PerViewConstantBuffer_t._m1.y) * 0.5, 0.0, PerViewConstantBuffer_t._m1.y - 1.0);\n \t        _6651.w = _20176;\n \t        _19364 = _6651;\n \t    }\n \t    else\n \t    {\n \t        _19364 = _11408;\n \t    }\n-\t    uint2 _12083 = uint2(_19364.xy - PerViewConstantBuffer_t_1_m0.xy) >> PerViewLightingConstantBufferGpu_t_1_m6.x.xx;\n-\t    uint _10838 = PerViewLightingConstantBufferGpu_t_1_m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t_1_m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t_1_m5.z);\n-\t    uint _23393 = PerViewLightingConstantBufferGpu_t_1_m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t_1_m7.x, 0.0f, PerViewLightingConstantBufferGpu_t_1_m7.y)) * PerViewLightingConstantBufferGpu_t_1_m5.z);\n-\t    float3 _13137;\n-\t    float3 _16324;\n+\t    uvec2 _12083 = uvec2(_19364.xy - PerViewConstantBuffer_t._m0.xy) >> uvec2(PerViewLightingConstantBufferGpu_t._m6.x);\n+\t    uint _10838 = PerViewLightingConstantBufferGpu_t._m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t._m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t._m5.z);\n+\t    uint _23393 = PerViewLightingConstantBufferGpu_t._m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t._m7.x, 0.0, PerViewLightingConstantBufferGpu_t._m7.y)) * PerViewLightingConstantBufferGpu_t._m5.z);\n+\t    vec3 _13137;\n+\t    vec3 _16324;\n \t    _13137 = _9716;\n \t    _16324 = _24878;\n \t    uint _21567;\n-\t    float3 _13138;\n-\t    float3 _16325;\n+\t    vec3 _13138;\n+\t    vec3 _16325;\n \t    uint _17017 = 0u;\n \t    for (;;)\n \t    {\n-\t        if (!(_17017 < PerViewLightingConstantBufferGpu_t_1_m5.z))\n+\t        if (!(_17017 < PerViewLightingConstantBufferGpu_t._m5.z))\n \t        {\n \t            break;\n \t        }\n-\t        uint _14475 = WaveActiveBitOr(g_CullBits.Load<uint>((_10838 + _17017) * 4 + 0) & g_CullBits.Load<uint>((_23393 + _17017) * 4 + 0));\n+\t        uint _14475 = subgroupOr(g_CullBits_1._m0[_10838 + _17017] & g_CullBits_1._m0[_23393 + _17017]);\n \t        _13138 = _13137;\n \t        _16325 = _16324;\n \t        uint _20344;\n-\t        float3 _13212;\n-\t        float3 _15670;\n+\t        vec3 _13212;\n+\t        vec3 _15670;\n \t        uint _17018 = _14475;\n \t        for (;;)\n \t        {\n \t            if (!(_17018 != 0u))\n \t            {\n \t                break;\n \t            }\n-\t            int _12608 = int(firstbitlow(_17018) + (_17017 * 32u));\n+\t            int _12608 = int(uint(findLSB(_17018)) + (_17017 * 32u));\n \t            _20344 = _17018 & (_17018 - 1u);\n \t            do\n \t            {\n-\t                float4x4 _14097 = float4x4(g_BarnLights.Load<float>(_12608 * 480 + 0), g_BarnLights.Load<float>(_12608 * 480 + 16), g_BarnLights.Load<float>(_12608 * 480 + 32), g_BarnLights.Load<float>(_12608 * 480 + 48), g_BarnLights.Load<float>(_12608 * 480 + 4), g_BarnLights.Load<float>(_12608 * 480 + 20), g_BarnLights.Load<float>(_12608 * 480 + 36), g_BarnLights.Load<float>(_12608 * 480 + 52), g_BarnLights.Load<float>(_12608 * 480 + 8), g_BarnLights.Load<float>(_12608 * 480 + 24), g_BarnLights.Load<float>(_12608 * 480 + 40), g_BarnLights.Load<float>(_12608 * 480 + 56), g_BarnLights.Load<float>(_12608 * 480 + 12), g_BarnLights.Load<float>(_12608 * 480 + 28), g_BarnLights.Load<float>(_12608 * 480 + 44), g_BarnLights.Load<float>(_12608 * 480 + 60));\n-\t                float4 _24893 = mul(float4(input_1.xyz, 1.0f), _14097);\n-\t                float3 _10521 = _24893.xyz / _24893.w.xxx;\n-\t                float4 _22905;\n+\t                vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(input_1.xyz, 1.0);\n+\t                vec3 _10521 = _24893.xyz / vec3(_24893.w);\n+\t                vec4 _22905;\n \t                _22905.x = _10521.x;\n \t                _22905.y = _10521.y;\n \t                float _21778 = _10521.z;\n \t                _22905.z = _21778;\n-\t                float3 _21642 = _22905.xyz;\n+\t                vec3 _21642 = _22905.xyz;\n \t                bool _7424;\n-\t                if (all(bool3(_22905.xyz.x > float3(-1.0f, -1.0f, 0.0f).x, _22905.xyz.y > float3(-1.0f, -1.0f, 0.0f).y, _22905.xyz.z > float3(-1.0f, -1.0f, 0.0f).z)))\n+\t                if (all(greaterThan(_22905.xyz, vec3(-1.0, -1.0, 0.0))))\n \t                {\n-\t                    _7424 = all(bool3(_22905.xyz.x < 1.0f.xxx.x, _22905.xyz.y < 1.0f.xxx.y, _22905.xyz.z < 1.0f.xxx.z));\n+\t                    _7424 = all(lessThan(_22905.xyz, vec3(1.0)));\n \t                }\n \t                else\n \t                {\n@@ -809,113 +834,111 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    float4x3 _16509 = float4x3(g_BarnLights.Load<float>(_12608 * 480 + 272), g_BarnLights.Load<float>(_12608 * 480 + 288), g_BarnLights.Load<float>(_12608 * 480 + 304), g_BarnLights.Load<float>(_12608 * 480 + 276), g_BarnLights.Load<float>(_12608 * 480 + 292), g_BarnLights.Load<float>(_12608 * 480 + 308), g_BarnLights.Load<float>(_12608 * 480 + 280), g_BarnLights.Load<float>(_12608 * 480 + 296), g_BarnLights.Load<float>(_12608 * 480 + 312), g_BarnLights.Load<float>(_12608 * 480 + 284), g_BarnLights.Load<float>(_12608 * 480 + 300), g_BarnLights.Load<float>(_12608 * 480 + 316));\n-\t                    float3 _6368 = abs(mul(float4(input_1.xyz, 1.0f), _16509).xyz);\n-\t                    _12885 = !all(bool3(_6368.x <= 1.0f.xxx.x, _6368.y <= 1.0f.xxx.y, _6368.z <= 1.0f.xxx.z));\n+\t                    _12885 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(input_1.xyz, 1.0)).xyz), vec3(1.0)));\n \t                }\n \t                if (_12885)\n \t                {\n \t                    _13212 = _13138;\n \t                    _15670 = _16325;\n \t                    break;\n \t                }\n-\t                float _23572 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;\n-\t                float _18492 = (2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).z) * g_BarnLights.Load<float4>(_12608 * 480 + 176).z;\n-\t                float _14805 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).x;\n-\t                float _9058 = _14805 * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;\n-\t                float _17330 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).w;\n-\t                float _19825 = _17330 * g_BarnLights.Load<float4>(_12608 * 480 + 176).z;\n-\t                float3 _16268 = float3(_9058 - _19825, (1.0f - (_14805 * g_BarnLights.Load<float4>(_12608 * 480 + 176).x)) - _18492, (_23572 * g_BarnLights.Load<float4>(_12608 * 480 + 176).z) + (_17330 * g_BarnLights.Load<float4>(_12608 * 480 + 176).x)) * g_BarnLights.Load<float3>(_12608 * 480 + 192).z;\n+\t                float _23572 = 2.0 * g_BarnLights_1._m0[_12608]._m5.y;\n+\t                float _18492 = (2.0 * g_BarnLights_1._m0[_12608]._m5.z) * g_BarnLights_1._m0[_12608]._m5.z;\n+\t                float _14805 = 2.0 * g_BarnLights_1._m0[_12608]._m5.x;\n+\t                float _9058 = _14805 * g_BarnLights_1._m0[_12608]._m5.y;\n+\t                float _17330 = 2.0 * g_BarnLights_1._m0[_12608]._m5.w;\n+\t                float _19825 = _17330 * g_BarnLights_1._m0[_12608]._m5.z;\n+\t                vec3 _16268 = vec3(_9058 - _19825, (1.0 - (_14805 * g_BarnLights_1._m0[_12608]._m5.x)) - _18492, (_23572 * g_BarnLights_1._m0[_12608]._m5.z) + (_17330 * g_BarnLights_1._m0[_12608]._m5.x)) * g_BarnLights_1._m0[_12608]._m6.z;\n \t                float _21316;\n-\t                if (g_BarnLights.Load<float4>(_12608 * 480 + 144).z > 0.0f)\n+\t                if (g_BarnLights_1._m0[_12608]._m3.z > 0.0)\n \t                {\n-\t                    _21316 = min(1.0f, _21778 * g_BarnLights.Load<float4>(_12608 * 480 + 144).z);\n+\t                    _21316 = min(1.0, _21778 * g_BarnLights_1._m0[_12608]._m3.z);\n \t                }\n \t                else\n \t                {\n-\t                    _21316 = 1.0f;\n+\t                    _21316 = 1.0;\n \t                }\n \t                float _19667;\n-\t                if (g_BarnLights.Load<float4>(_12608 * 480 + 144).w > 0.0f)\n+\t                if (g_BarnLights_1._m0[_12608]._m3.w > 0.0)\n \t                {\n-\t                    _19667 = _21316 * min(1.0f, (1.0f - _21778) * g_BarnLights.Load<float4>(_12608 * 480 + 144).w);\n+\t                    _19667 = _21316 * min(1.0, (1.0 - _21778) * g_BarnLights_1._m0[_12608]._m3.w);\n \t                }\n \t                else\n \t                {\n \t                    _19667 = _21316;\n \t                }\n-\t                float3 _11179;\n+\t                vec3 _11179;\n \t                float _11633;\n-\t                if (g_BarnLights.Load<float4>(_12608 * 480 + 128).w != 0.0f)\n+\t                if (g_BarnLights_1._m0[_12608]._m2.w != 0.0)\n \t                {\n-\t                    float3 _10017 = g_BarnLights.Load<float4>(_12608 * 480 + 128).xyz - input_1.xyz;\n+\t                    vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - input_1.xyz;\n \t                    float _18345 = dot(_10017, _10017);\n \t                    float _17647 = sqrt(_18345);\n-\t                    float3 _12302 = _10017 - _16268;\n-\t                    float3 _10210;\n+\t                    vec3 _12302 = _10017 - _16268;\n+\t                    vec3 _10210;\n \t                    do\n \t                    {\n-\t                        float3 _20229 = (_10017 + _16268) - _12302;\n+\t                        vec3 _20229 = (_10017 + _16268) - _12302;\n \t                        float _25105 = dot(-_12302, _20229);\n-\t                        if (_25105 <= 0.0f)\n+\t                        if (_25105 <= 0.0)\n \t                        {\n \t                            _10210 = _12302;\n \t                            break;\n \t                        }\n \t                        else\n \t                        {\n-\t                            _10210 = _12302 + (_20229 * min(1.0f, _25105 / dot(_20229, _20229)));\n+\t                            _10210 = _12302 + (_20229 * min(1.0, _25105 / dot(_20229, _20229)));\n \t                            break;\n \t                        }\n \t                        break; // unreachable workaround\n \t                    } while(false);\n-\t                    _11179 = _10017 / _17647.xxx;\n-\t                    _11633 = ((_19667 * (g_BarnLights.Load<float4>(_12608 * 480 + 128).w / max(_18345, g_BarnLights.Load<float4>(_12608 * 480 + 128).w))) * saturate(g_BarnLights.Load<float4>(_12608 * 480 + 144).x + (g_BarnLights.Load<float4>(_12608 * 480 + 144).y * _17647))) * saturate(g_BarnLights.Load<float3>(_12608 * 480 + 192).x + (g_BarnLights.Load<float3>(_12608 * 480 + 192).y * dot(float3((1.0f - (_23572 * g_BarnLights.Load<float4>(_12608 * 480 + 176).y)) - _18492, _9058 + _19825, (_14805 * g_BarnLights.Load<float4>(_12608 * 480 + 176).z) - (_17330 * g_BarnLights.Load<float4>(_12608 * 480 + 176).y)), normalize(_10210))));\n+\t                    _11179 = _10017 / vec3(_17647);\n+\t                    _11633 = ((_19667 * (g_BarnLights_1._m0[_12608]._m2.w / max(_18345, g_BarnLights_1._m0[_12608]._m2.w))) * saturate(g_BarnLights_1._m0[_12608]._m3.x + (g_BarnLights_1._m0[_12608]._m3.y * _17647))) * saturate(g_BarnLights_1._m0[_12608]._m6.x + (g_BarnLights_1._m0[_12608]._m6.y * dot(vec3((1.0 - (_23572 * g_BarnLights_1._m0[_12608]._m5.y)) - _18492, _9058 + _19825, (_14805 * g_BarnLights_1._m0[_12608]._m5.z) - (_17330 * g_BarnLights_1._m0[_12608]._m5.y)), normalize(_10210))));\n \t                }\n \t                else\n \t                {\n-\t                    _11179 = g_BarnLights.Load<float4>(_12608 * 480 + 128).xyz;\n+\t                    _11179 = g_BarnLights_1._m0[_12608]._m2.xyz;\n \t                    _11633 = _19667;\n \t                }\n-\t                float3 _17828 = (g_BarnLights.Load<float4>(_12608 * 480 + 160).xyz * 1.0f).xyz * _11633;\n+\t                vec3 _17828 = (g_BarnLights_1._m0[_12608]._m4.xyz * 1.0).xyz * _11633;\n \t                bool _24419;\n-\t                if (g_BarnLights.Load<float4>(_12608 * 480 + 208).z > 0.0f)\n+\t                if (g_BarnLights_1._m0[_12608]._m8.z > 0.0)\n \t                {\n \t                    _24419 = !_20060;\n \t                }\n \t                else\n \t                {\n \t                    _24419 = false;\n \t                }\n-\t                float3 _21548;\n-\t                [branch]\n-\t                if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w == 0.0f)\n+\t                vec3 _21548;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (g_BarnLights_1._m0[_12608]._m4.w == 0.0)\n \t                {\n \t                    float _10342;\n \t                    do\n \t                    {\n-\t                        float2 _22154 = abs(_22905.xy);\n-\t                        if (g_BarnLights.Load<float4>(_12608 * 480 + 224).z == 0.0f)\n+\t                        vec2 _22154 = abs(_22905.xy);\n+\t                        if (g_BarnLights_1._m0[_12608]._m9.z == 0.0)\n \t                        {\n-\t                            _10342 = smoothstep(1.0f, g_BarnLights.Load<float4>(_12608 * 480 + 224).x, _22154.x) * smoothstep(1.0f, g_BarnLights.Load<float4>(_12608 * 480 + 224).y, _22154.y);\n+\t                            _10342 = smoothstep(1.0, g_BarnLights_1._m0[_12608]._m9.x, _22154.x) * smoothstep(1.0, g_BarnLights_1._m0[_12608]._m9.y, _22154.y);\n \t                            break;\n \t                        }\n \t                        else\n \t                        {\n \t                            float _11473 = _22154.x;\n-\t                            float _15266 = 2.0f / g_BarnLights.Load<float4>(_12608 * 480 + 224).z;\n+\t                            float _15266 = 2.0 / g_BarnLights_1._m0[_12608]._m9.z;\n \t                            float _15018 = _22154.y;\n-\t                            float _23041 = (-0.5f) * g_BarnLights.Load<float4>(_12608 * 480 + 224).z;\n-\t                            float _11981 = (g_BarnLights.Load<float4>(_12608 * 480 + 224).x * g_BarnLights.Load<float4>(_12608 * 480 + 224).y) * pow(max(pow(g_BarnLights.Load<float4>(_12608 * 480 + 224).y * _11473, _15266) + pow(g_BarnLights.Load<float4>(_12608 * 480 + 224).x * _15018, _15266), 1.1754943508222875079687365372222e-38f), _23041);\n-\t                            float _16524 = pow(max(pow(_11473, _15266) + pow(_15018, _15266), 1.1754943508222875079687365372222e-38f), _23041);\n+\t                            float _23041 = (-0.5) * g_BarnLights_1._m0[_12608]._m9.z;\n+\t                            float _11981 = (g_BarnLights_1._m0[_12608]._m9.x * g_BarnLights_1._m0[_12608]._m9.y) * pow(max(pow(g_BarnLights_1._m0[_12608]._m9.y * _11473, _15266) + pow(g_BarnLights_1._m0[_12608]._m9.x * _15018, _15266), 1.1754943508222875079687365372222e-38), _23041);\n+\t                            float _16524 = pow(max(pow(_11473, _15266) + pow(_15018, _15266), 1.1754943508222875079687365372222e-38), _23041);\n \t                            if (_11981 < _16524)\n \t                            {\n-\t                                _10342 = smoothstep(_16524, _11981, 1.0f);\n+\t                                _10342 = smoothstep(_16524, _11981, 1.0);\n \t                                break;\n \t                            }\n \t                            else\n \t                            {\n-\t                                _10342 = float(_16524 > 1.0f);\n+\t                                _10342 = float(_16524 > 1.0);\n \t                                break;\n \t                            }\n \t                            break; // unreachable workaround\n@@ -926,49 +949,49 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    float3 _12503;\n-\t                    if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)\n+\t                    vec3 _12504;\n+\t                    if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)\n \t                    {\n-\t                        float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);\n-\t                        float4 _19008 = _17795.xyzw * float4(-1.0f, -1.0f, -1.0f, 1.0f);\n-\t                        float3 _24989 = _19008.xyz;\n-\t                        float3 _23629 = float4((-_11179).xyz, 0.0f).xyz;\n+\t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);\n+\t                        vec4 _19008 = _17795.xyzw * vec4(-1.0, -1.0, -1.0, 1.0);\n+\t                        vec3 _24989 = _19008.xyz;\n+\t                        vec3 _23629 = vec4((-_11179).xyz, 0.0).xyz;\n \t                        float _15156 = -dot(_23629, _24989);\n-\t                        float3 _20479 = float4((_23629 * _19008.w) + cross(_23629, _24989), _15156).xyz;\n-\t                        float3 _23592 = _17795.xyz;\n-\t                        float3 _12170 = ((_20479 * g_BarnLights.Load<float4>(_12608 * 480 + 176).w) + (_23592 * _15156)) + cross(_23592, _20479);\n-\t                        float3 _14081 = float3(float2(atan2(_12170.y, -_12170.x) * 0.15915493667125701904296875f, acos(_12170.z) * 0.3183098733425140380859375f), -g_BarnLights.Load<float4>(_12608 * 480 + 160).w);\n-\t                        float2 _20564 = (_14081.xy * g_BarnLights.Load<float4>(_12608 * 480 + 224).zw) + g_BarnLights.Load<float4>(_12608 * 480 + 224).xy;\n-\t                        float3 _20492 = _14081;\n+\t                        vec3 _20479 = vec4((_23629 * _19008.w) + cross(_23629, _24989), _15156).xyz;\n+\t                        vec3 _23592 = _17795.xyz;\n+\t                        vec3 _12170 = ((_20479 * g_BarnLights_1._m0[_12608]._m5.w) + (_23592 * _15156)) + cross(_23592, _20479);\n+\t                        vec3 _14081 = vec3(vec2(atan(_12170.y, -_12170.x) * 0.15915493667125701904296875, acos(_12170.z) * 0.3183098733425140380859375), -g_BarnLights_1._m0[_12608]._m4.w);\n+\t                        vec2 _20564 = (_14081.xy * g_BarnLights_1._m0[_12608]._m9.zw) + g_BarnLights_1._m0[_12608]._m9.xy;\n+\t                        vec3 _20492 = _14081;\n \t                        _20492.x = _20564.x;\n \t                        _20492.y = _20564.y;\n-\t                        _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20492.xyz, 0.0f).xyz;\n+\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _20492.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n-\t                        float3 _13791 = float3(mad(_22905.xy, float2(0.5f, -0.5f), 0.5f.xx), g_BarnLights.Load<float4>(_12608 * 480 + 160).w);\n-\t                        float2 _20563 = (_13791.xy * g_BarnLights.Load<float4>(_12608 * 480 + 224).zw) + g_BarnLights.Load<float4>(_12608 * 480 + 224).xy;\n-\t                        float3 _20491 = _13791;\n+\t                        vec3 _13791 = vec3(fma(_22905.xy, vec2(0.5, -0.5), vec2(0.5)), g_BarnLights_1._m0[_12608]._m4.w);\n+\t                        vec2 _20563 = (_13791.xy * g_BarnLights_1._m0[_12608]._m9.zw) + g_BarnLights_1._m0[_12608]._m9.xy;\n+\t                        vec3 _20491 = _13791;\n \t                        _20491.x = _20563.x;\n \t                        _20491.y = _20563.y;\n-\t                        _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20491.xyz, 0.0f).xyz;\n+\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _20491.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12503;\n+\t                    _21548 = _12504;\n \t                }\n-\t                if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))\n+\t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n \t                    _13212 = _13138;\n \t                    _15670 = _16325;\n \t                    break;\n \t                }\n-\t                float3 _22671;\n+\t                vec3 _22671;\n \t                if (_24419)\n \t                {\n-\t                    float3 _19629;\n-\t                    if ((g_BarnLights.Load<uint>(_12608 * 480 + 264) & 4u) != 0u)\n+\t                    vec3 _19629;\n+\t                    if ((g_BarnLights_1._m0[_12608]._m13 & 4u) != 0u)\n \t                    {\n-\t                        float2 _6281 = _22905.yx * float2(1.0f, -1.0f);\n-\t                        float3 _23716 = _21642;\n+\t                        vec2 _6281 = _22905.yx * vec2(1.0, -1.0);\n+\t                        vec3 _23716 = _21642;\n \t                        _23716.x = _6281.x;\n \t                        _23716.y = _6281.y;\n \t                        _19629 = _23716;\n@@ -977,9 +1000,8 @@ PS\n \t                    {\n \t                        _19629 = _21642;\n \t                    }\n-\t                    float3 _20482 = _21548.xyz * lerp(1.0f, g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], float3(mad(_19629.xy, g_BarnLights.Load<float4>(_12608 * 480 + 208).zw, g_BarnLights.Load<float4>(_12608 * 480 + 208).xy), _19629.z).xy, saturate(_19629.z + PerViewLightingConstantBufferGpu_t_1_m12)), g_BarnLights.Load<float>(_12608 * 480 + 260));\n-\t                    float3 _16449 = _20482.xyz;\n-\t                    if (all(bool3(_16449.x == 0.0f.xxx.x, _16449.y == 0.0f.xxx.y, _16449.z == 0.0f.xxx.z)))\n+\t                    vec3 _20482 = _21548.xyz * mix(1.0, textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy, saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0), g_BarnLights_1._m0[_12608]._m12);\n+\t                    if (all(equal(_20482.xyz, vec3(0.0))))\n \t                    {\n \t                        _13212 = _13138;\n \t                        _15670 = _16325;\n@@ -991,18 +1013,17 @@ PS\n \t                {\n \t                    _22671 = _21548;\n \t                }\n-\t                bool3 _19900 = all(bool3(_17892.x == 1.0f.xxx.x, _17892.y == 1.0f.xxx.y, _17892.z == 1.0f.xxx.z)).xxx;\n-\t                float _11798 = max(0.0f, dot(_19740.xyz, _11179.xyz));\n-\t                float2 _9841 = max(_21815, g_BarnLights.Load<float>(_12608 * 480 + 256).xx);\n-\t                float3 _12282 = normalize(_11179.xyz + (-normalize(_7715.xyz - PerViewConstantBuffer_t_1_m3.xyz)).xyz).xyz;\n-\t                float _12387 = dot(_12282, float3(_19900.x ? _24735.x : _17892.x, _19900.y ? _24735.y : _17892.y, _19900.z ? _24735.z : _17892.z).xyz);\n-\t                float _19211 = max(0.0f, dot(_11179.xyz, _12282));\n+\t                float _11798 = max(0.0, dot(_19740.xyz, _11179.xyz));\n+\t                vec2 _9841 = max(_21815, vec2(g_BarnLights_1._m0[_12608]._m11));\n+\t                vec3 _12282 = normalize(_11179.xyz + (-normalize(_7715.xyz - PerViewConstantBuffer_t._m3.xyz)).xyz).xyz;\n+\t                float _12387 = dot(_12282, mix(_17892, _24735, bvec3(all(equal(_17892, vec3(1.0))))).xyz);\n+\t                float _19211 = max(0.0, dot(_11179.xyz, _12282));\n \t                float _9851 = _9841.x;\n \t                float _25212 = _9851 * _9851;\n-\t                float _19097 = _25212 * _25212;\n-\t                float _15348 = ((_12387 * _12387) * (_19097 - 1.0f)) + 1.0f;\n-\t                _13212 = _13138.xyz + (((_25153.xyz * (_19097 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0f) + 2.0f)))).xyz * _11798).xyz * _22671.xyz);\n-\t                _15670 = _16325.xyz + (_11798.xxx.xyz * _22671.xyz);\n+\t                float _19096 = _25212 * _25212;\n+\t                float _15348 = ((_12387 * _12387) * (_19096 - 1.0)) + 1.0;\n+\t                _13212 = _13138.xyz + (((_25153.xyz * (_19096 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0) + 2.0)))).xyz * _11798).xyz * _22671.xyz);\n+\t                _15670 = _16325.xyz + (vec3(_11798).xyz * _22671.xyz);\n \t                break;\n \t            } while(false);\n \t            _13138 = _13212;\n@@ -1016,86 +1037,86 @@ PS\n \t        _17017 = _21567;\n \t        continue;\n \t    }\n-\t    float _17172 = dot(_21815.xy, 0.5f.xx);\n-\t    float3 _6253 = _17892.xyz;\n-\t    float3 _17138 = normalize(_7715.xyz - PerViewConstantBuffer_t_1_m3.xyz);\n+\t    float _17172 = dot(_21815.xy, vec2(0.5));\n+\t    vec3 _6253 = _17892.xyz;\n+\t    vec3 _17138 = normalize(_7715.xyz - PerViewConstantBuffer_t._m3.xyz);\n \t    float _17225 = _17172 * _17172;\n-\t    float _20711 = saturate(1.0f - _17225);\n-\t    float4 _15343 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * _17172) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f);\n+\t    float _20711 = saturate(1.0 - _17225);\n+\t    vec4 _15343 = (vec4(-1.0, -0.0274999998509883880615234375, -0.572000026702880859375, 0.02199999988079071044921875) * _17172) + vec4(1.0, 0.0425000004470348358154296875, 1.03999996185302734375, -0.039999999105930328369140625);\n \t    float _21215 = _15343.x;\n-\t    float2 _24572 = (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_21215 * _21215, exp2((-9.27999973297119140625f) * max(0.0f, dot((-_17138).xyz, _6253)))) * _21215) + _15343.y)) + _15343.zw;\n+\t    vec2 _24572 = (vec2(-1.03999996185302734375, 1.03999996185302734375) * ((min(_21215 * _21215, exp2((-9.27999973297119140625) * max(0.0, dot((-_17138).xyz, _6253)))) * _21215) + _15343.y)) + _15343.zw;\n \t    float _20339 = _24572.y;\n-\t    float2 _11427 = float2(_20339, _24572.x + _20339);\n-\t    float3 _8745 = float3(dot(PerViewLightingConstantBufferGpu_t_1_m0._m0[0].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t_1_m0._m0[1].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t_1_m0._m0[2].xyzw, _23875)).xyz;\n-\t    float3 _16991 = _16324.xyz + _8745;\n-\t    float3 _20418 = _21710.xxx.xyz;\n-\t    float3 _22686 = (_16324.xyz + (_8745 * _20418).xyz) * (_11217 * (1.0f - _14051)).xyz;\n+\t    vec2 _11427 = vec2(_20339, _24572.x + _20339);\n+\t    vec3 _8745 = vec3(dot(PerViewLightingConstantBufferGpu_t._m0._m0[0].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t._m0._m0[1].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t._m0._m0[2].xyzw, _23875)).xyz;\n+\t    vec3 _16991 = _16324.xyz + _8745;\n+\t    vec3 _20418 = vec3(_21710).xyz;\n+\t    vec3 _22686 = (_16324.xyz + (_8745 * _20418).xyz) * (_11217 * (1.0 - _14051)).xyz;\n \t    float _12931 = _22686.x;\n-\t    float4 _11203 = float4(_12931, _22686.yz, input_4.w);\n+\t    vec4 _11203 = vec4(_12931, _22686.yz, input_4.w);\n \t    _11203.x = _12931;\n \t    _11203.y = _22686.y;\n \t    _11203.z = _22686.z;\n-\t    float3 _15752 = _11203.xyz + (_13137.xyz * _20418).xyz;\n-\t    float4 _20490 = _11203;\n+\t    vec3 _15752 = _11203.xyz + (_13137.xyz * _20418).xyz;\n+\t    vec4 _20490 = _11203;\n \t    _20490.x = _15752.x;\n \t    _20490.y = _15752.y;\n \t    _20490.z = _15752.z;\n-\t    float3 _15734 = _20490.xyz + ((((lerp(_11427.xxx, _11427.yyy, _25153) * g_bindless_TextureCubeArray_float4[PerViewConstantBufferCsgo_t_1_m7].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], float4(normalize(lerp(_6253, reflect(_17138.xyz, _17892.xyz).xyz, (_20711 * (sqrt(_20711) + _17225)).xxx)), 0.0f), PerViewLightingConstantBufferGpu_t_1_m8.y * sqrt(_17172)).xyz).xyz * (normalize(_16991 + 0.001000000047497451305389404296875f.xxx) * clamp(length(_16991), 0.0f, 1.75f))).xyz * (1.0f.xxx + (normalize(_8745 + 0.001000000047497451305389404296875f.xxx) * 0.5f))).xyz * _20418).xyz;\n-\t    float4 _13888 = _20490;\n+\t    vec3 _15734 = _20490.xyz + ((((mix(_11427.xxx, _11427.yyy, _25153) * textureLod(samplerCubeArray(g_bindless_TextureCubeArray_float4[PerViewConstantBufferCsgo_t._m7], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), vec4(normalize(mix(_6253, reflect(_17138.xyz, _17892.xyz).xyz, vec3(_20711 * (sqrt(_20711) + _17225)))), 0.0), PerViewLightingConstantBufferGpu_t._m8.y * sqrt(_17172)).xyz).xyz * (normalize(_16991 + vec3(0.001000000047497451305389404296875)) * clamp(length(_16991), 0.0, 1.75))).xyz * (vec3(1.0) + (normalize(_8745 + vec3(0.001000000047497451305389404296875)) * 0.5))).xyz * _20418).xyz;\n+\t    vec4 _13888 = _20490;\n \t    _13888.x = _15734.x;\n \t    _13888.y = _15734.y;\n \t    _13888.z = _15734.z;\n-\t    float4 _6805;\n-\t    if (_Globals_1_g_bFogEnabled != 0)\n+\t    vec4 _6805;\n+\t    if (_Globals_.g_bFogEnabled != 0)\n \t    {\n-\t        float3 _21493;\n-\t        float3 _22956 = _7715.xyz - PerViewConstantBuffer_t_1_m3.xyz;\n-\t        float3 _9057 = _22956.xyz;\n-\t        float3 _19340;\n+\t        vec3 _21493;\n+\t        vec3 _22956 = _7715.xyz - PerViewConstantBuffer_t._m3.xyz;\n+\t        vec3 _9057 = _22956.xyz;\n+\t        vec3 _19340;\n \t        do\n \t        {\n \t            _21493 = _22956.xyz;\n \t            bool _12886;\n-\t            if (dot(_21493, _21493) > PerViewConstantBufferCsgo_t_1_m14.x)\n+\t            if (dot(_21493, _21493) > PerViewConstantBufferCsgo_t._m14.x)\n \t            {\n-\t                _12886 = (_7715.z * PerViewConstantBufferCsgo_t_1_m14.z) < PerViewConstantBufferCsgo_t_1_m14.y;\n+\t                _12886 = (_7715.z * PerViewConstantBufferCsgo_t._m14.z) < PerViewConstantBufferCsgo_t._m14.y;\n \t            }\n \t            else\n \t            {\n \t                _12886 = false;\n \t            }\n-\t            [branch]\n+\t            SPIRV_CROSS_BRANCH\n \t            if (_12886)\n \t            {\n-\t                float2 _9342 = clamp(PerViewConstantBufferCsgo_t_1_m11.xy + (PerViewConstantBufferCsgo_t_1_m11.zw * float2(length(_21493), _7715.z)), 0.0f.xx, 1.0f.xx);\n-\t                float _12872 = (pow(_9342.x, PerViewConstantBufferCsgo_t_1_m12.x) * pow(_9342.y, PerViewConstantBufferCsgo_t_1_m12.y)) * PerViewConstantBufferCsgo_t_1_m13.w;\n-\t                _19340 = lerp(_13888.xyz, float4(PerViewConstantBufferCsgo_t_1_m13.xyz, _12872).xyz, _12872.xxx);\n+\t                vec2 _9342 = saturate(PerViewConstantBufferCsgo_t._m11.xy + (PerViewConstantBufferCsgo_t._m11.zw * vec2(length(_21493), _7715.z)));\n+\t                float _12872 = (pow(_9342.x, PerViewConstantBufferCsgo_t._m12.x) * pow(_9342.y, PerViewConstantBufferCsgo_t._m12.y)) * PerViewConstantBufferCsgo_t._m13.w;\n+\t                _19340 = mix(_13888.xyz, vec4(PerViewConstantBufferCsgo_t._m13.xyz, _12872).xyz, vec3(_12872));\n \t                break;\n \t            }\n \t            _19340 = _13888.xyz;\n \t            break;\n \t        } while(false);\n-\t        float4 _23944 = _13888;\n+\t        vec4 _23944 = _13888;\n \t        _23944.x = _19340.x;\n \t        _23944.y = _19340.y;\n \t        _23944.z = _19340.z;\n-\t        float3 _19341;\n+\t        vec3 _19341;\n \t        do\n \t        {\n \t            bool _12887;\n-\t            if (dot(_9057, _9057) > PerViewConstantBufferCsgo_t_1_m18.x)\n+\t            if (dot(_9057, _9057) > PerViewConstantBufferCsgo_t._m18.x)\n \t            {\n-\t                _12887 = (PerViewConstantBufferCsgo_t_1_m18.z * _7715.z) < PerViewConstantBufferCsgo_t_1_m18.y;\n+\t                _12887 = (PerViewConstantBufferCsgo_t._m18.z * _7715.z) < PerViewConstantBufferCsgo_t._m18.y;\n \t            }\n \t            else\n \t            {\n \t                _12887 = false;\n \t            }\n \t            if (_12887)\n \t            {\n-\t                float _14602 = saturate(pow(max(0.0f, (length(_21493) * PerViewConstantBufferCsgo_t_1_m15.y) + PerViewConstantBufferCsgo_t_1_m15.x), PerViewConstantBufferCsgo_t_1_m15.w)) * saturate(pow(max(0.0f, (_7715.z * PerViewConstantBufferCsgo_t_1_m16.y) + PerViewConstantBufferCsgo_t_1_m16.x), PerViewConstantBufferCsgo_t_1_m16.z));\n-\t                float _8892 = saturate(_14602) * PerViewConstantBufferCsgo_t_1_m18.w;\n-\t                _19341 = lerp(_23944.xyz, float4((g_bindless_TextureCube_float4[PerViewConstantBufferCsgo_t_1_m3].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], normalize(mul(float4(_9057, 0.0f), PerViewConstantBufferCsgo_t_1_m17).xyz).xyz, PerViewConstantBufferCsgo_t_1_m16.w * saturate(1.0f - (_14602 * PerViewConstantBufferCsgo_t_1_m15.z))) * PerViewConstantBufferCsgo_t_1_m19.x).xyz, _8892).xyz, _8892.xxx);\n+\t                float _14602 = saturate(pow(max(0.0, (length(_21493) * PerViewConstantBufferCsgo_t._m15.y) + PerViewConstantBufferCsgo_t._m15.x), PerViewConstantBufferCsgo_t._m15.w)) * saturate(pow(max(0.0, (_7715.z * PerViewConstantBufferCsgo_t._m16.y) + PerViewConstantBufferCsgo_t._m16.x), PerViewConstantBufferCsgo_t._m16.z));\n+\t                float _8892 = saturate(_14602) * PerViewConstantBufferCsgo_t._m18.w;\n+\t                _19341 = mix(_23944.xyz, vec4((textureLod(samplerCube(g_bindless_TextureCube_float4[PerViewConstantBufferCsgo_t._m3], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), normalize((PerViewConstantBufferCsgo_t._m17 * vec4(_9057, 0.0)).xyz).xyz, PerViewConstantBufferCsgo_t._m16.w * saturate(1.0 - (_14602 * PerViewConstantBufferCsgo_t._m15.z))) * PerViewConstantBufferCsgo_t._m19.x).xyz, _8892).xyz, vec3(_8892));\n \t                break;\n \t            }\n \t            _19341 = _23944.xyz;\n@@ -1113,22 +1134,6 @@ PS\n \t    output_0 = _6805;\n \t}\n \t\n-\tPS_OUTPUT MainPs(PS_INPUT stage_input)\n-\t{\n-\t    gl_FragCoord = stage_input.gl_FragCoord;\n-\t    gl_FragCoord.w = 1.0 / gl_FragCoord.w;\n-\t    input_0 = stage_input.input_0;\n-\t    input_1 = stage_input.input_1;\n-\t    input_2 = stage_input.input_2;\n-\t    input_3 = stage_input.input_3;\n-\t    input_4 = stage_input.input_4;\n-\t    input_5 = stage_input.input_5;\n-\t    input_6 = stage_input.input_6;\n-\t    MainPs_inner();\n-\t    PS_OUTPUT stage_output;\n-\t    stage_output.output_0 = output_0;\n-\t    return stage_output;\n-\t}\n \t\n \t// ---------  SPIRV -> HLSL end  --------- \n \t\n@@ -1438,8 +1443,8 @@ RTX\n \t    vec2 _567 = vec2(g_MaterialData_1._member0[(_523 + 144u) / 4u], g_MaterialData_1._member0[(_523 + 148u) / 4u]);\n \t    vec3 _566 = vec3(g_MaterialData_1._member0[(_523 + 208u) / 4u], g_MaterialData_1._member0[(_523 + 212u) / 4u], g_MaterialData_1._member0[(_523 + 216u) / 4u]);\n \t    float _565 = g_MaterialData_1._member0[(_523 + 220u) / 4u];\n-\t    uint _564 = g_MaterialData_3._member0[(_523 + 236u) / 4u];\n-\t    uint _563 = g_MaterialData_3._member0[(_523 + 256u) / 4u];\n+\t    uint _564 = g_MaterialData_3._member0[(_523 + 240u) / 4u];\n+\t    uint _563 = g_MaterialData_3._member0[(_523 + 260u) / 4u];\n \t    float _562 = g_MaterialData_1._member0[(_523 + 284u) / 4u];\n \t    float _561 = g_MaterialData_1._member0[(_523 + 288u) / 4u];\n \t    vec2 _560 = vec2(g_MaterialData_1._member0[(_523 + 296u) / 4u], g_MaterialData_1._member0[(_523 + 300u) / 4u]);"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_simple_3layer_parallax.slang",
          "status": "modified",
          "additions": 98,
          "deletions": 87,
          "changes": 185,
          "patch": "@@ -83,7 +83,7 @@ VS\n \tfloat2 g_vTexCoordScrollSpeed < Range2(-10, -10, 10, 10); UiType(VectorText); UiGroup(\"Color/70\"); >;\n \t\n \t// SPIR-V reflection failed for backend HLSL:\n-\t// cbuffer ID 5618 (name: _Globals_), member index 0 (name: g_vTexCoordXform0) cannot be expressed with either HLSL packing layout or packoffset.\n+\t// cbuffer ID 5618 (name: _Globals_), member index 3 (name: g_vColorTint) cannot be expressed with either HLSL packing layout or packoffset.\n \t//\n \t// Re-attempting reflection with the GLSL backend.\n \t\n@@ -298,7 +298,7 @@ PS\n \tTexture2D g_tNormal < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureNormal, TextureRoughness), Linear); OutputFormat(BC7); SrgbRead(false); >;\n \tTexture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;\n \tTexture2D g_tTransmissiveMask < Channel(R, ArtistDefined(TextureTransmissiveMask), Srgb); OutputFormat(ATI1N); SrgbRead(true); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n \t// Ambient Occlusion\n@@ -362,7 +362,7 @@ PS\n \tTexture2D g_tColor < Channel(RGB, ArtistDefined(TextureColor), Srgb); OutputFormat(DXT1); SrgbRead(true); >;\n \t\n \t// SPIR-V reflection failed for backend HLSL:\n-\t// cbuffer ID 5618 (name: _Globals_), member index 11 (name: g_vLayer2EmissiveTint) cannot be expressed with either HLSL packing layout or packoffset.\n+\t// cbuffer ID 5618 (name: _Globals_), member index 5 (name: g_vLayer1EmissiveTint) cannot be expressed with either HLSL packing layout or packoffset.\n \t//\n \t// Re-attempting reflection with the GLSL backend.\n \t\n@@ -384,17 +384,17 @@ PS\n \t#endif\n \t#extension GL_KHR_shader_subgroup_arithmetic : require\n \t\n-\tstruct _2746\n+\tstruct _2998\n \t{\n \t    vec4 _m0[3];\n \t};\n \t\n-\tstruct _2956\n+\tstruct _197\n \t{\n \t    vec4 _m0[4];\n \t};\n \t\n-\tstruct _1581\n+\tstruct _2697\n \t{\n \t    mat4 _m0[4];\n \t};\n@@ -504,10 +504,10 @@ PS\n \t\n \tlayout(set = 1) uniform _1194 PerViewConstantBuffer_t;\n \t\n-\tstruct _2611\n+\tstruct _1373\n \t{\n-\t    _2746 _m0;\n-\t    _2956 _m1;\n+\t    _2998 _m0;\n+\t    _197 _m1;\n \t    vec4 _m2;\n \t    vec4 _m3;\n \t    vec4 _m4;\n@@ -524,13 +524,13 @@ PS\n \t    float _m15;\n \t    float _m16;\n \t    float _m17;\n-\t    _1581 _m18;\n-\t    _2956 _m19;\n+\t    _2697 _m18;\n+\t    _197 _m19;\n \t    uint _m20;\n \t    uint _m21;\n \t};\n \t\n-\tlayout(set = 3) uniform _2611 PerViewLightingConstantBufferGpu_t;\n+\tlayout(set = 3) uniform _1373 PerViewLightingConstantBufferGpu_t;\n \t\n \tlayout(set = 3, binding = 30, std430) readonly buffer g_CullBits\n \t{\n@@ -707,99 +707,110 @@ PS\n \t    {\n \t        _21710 = 1.0;\n \t    }\n-\t    float _21711;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _24735);\n+\t    float _12320;\n \t    SPIRV_CROSS_BRANCH\n-\t    if (PerViewLightingConstantBufferGpu_t._m11 != 0)\n+\t    if (_8634 > 0.0)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13136;\n-\t        vec3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n+\t        float _12503;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m11 != 0)\n \t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t._m11))\n-\t            {\n-\t                _13136 = 1.0;\n-\t                _14975 = vec3(0.0);\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_13039];\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m13[_13039])\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13136;\n+\t            vec3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                vec3 _19470 = vec3(_12779, _18322.yz);\n-\t                vec2 _24804 = _19470.xy;\n-\t                vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m15)) + vec2(PerViewLightingConstantBufferGpu_t._m14));\n-\t                vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_13039].xy;\n-\t                vec3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13136 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20488;\n-\t                _10191 = _13039;\n-\t                break;\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t._m11))\n+\t                {\n+\t                    _13136 = 1.0;\n+\t                    _14975 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n+\t                }\n+\t                vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_13039];\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m13[_13039])\n+\t                {\n+\t                    vec3 _19470 = vec3(_12779, _18322.yz);\n+\t                    vec2 _24804 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m15)) + vec2(PerViewLightingConstantBufferGpu_t._m14));\n+\t                    vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_13039].xy;\n+\t                    vec3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13136 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20488;\n+\t                    _10191 = _13039;\n+\t                    break;\n+\t                }\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n \t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _18423;\n-\t        if (_10191 >= 0)\n-\t        {\n-\t            float _18270 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);\n-\t            float _12501;\n-\t            SPIRV_CROSS_BRANCH\n-\t            if (_13136 < 1.0)\n+\t            float _18423;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t._m11 - 1))\n+\t                float _18270 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);\n+\t                float _12501;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13136 < 1.0)\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_15335];\n-\t                    vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_15335].xy;\n-\t                    vec3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    _7934 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m11 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_15335];\n+\t                        vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_15335].xy;\n+\t                        vec3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        _7934 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0;\n+\t                    }\n+\t                    _12501 = mix(_7934, _18270, _13136);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0;\n+\t                    _12501 = _18270;\n \t                }\n-\t                _12501 = mix(_7934, _18270, _13136);\n+\t                _18423 = _12501;\n \t            }\n \t            else\n \t            {\n-\t                _12501 = _18270;\n+\t                _18423 = 1.0;\n \t            }\n-\t            _18423 = _12501;\n-\t        }\n-\t        else\n-\t        {\n-\t            _18423 = 1.0;\n-\t        }\n-\t        float _13279 = mix(_18423, 1.0, saturate((distance(_10061.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m17) + PerViewLightingConstantBufferGpu_t._m16));\n-\t        float _12502;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12502 = min(_13279, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m6], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            float _13279 = mix(_18423, 1.0, saturate((distance(_10061.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m17) + PerViewLightingConstantBufferGpu_t._m16));\n+\t            float _12502;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12502 = min(_13279, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m6], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12502 = _13279;\n+\t            }\n+\t            _12503 = _12502;\n \t        }\n \t        else\n \t        {\n-\t            _12502 = _13279;\n+\t            _12503 = 1.0;\n \t        }\n-\t        _21711 = _12502;\n+\t        _12320 = _12503;\n \t    }\n \t    else\n \t    {\n-\t        _21711 = 1.0;\n+\t        _12320 = 1.0;\n \t    }\n \t    vec3 _9716;\n \t    vec3 _24878;\n \t    SPIRV_CROSS_BRANCH\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _24735) * _21711) > 0.0)\n+\t    if ((_8634 * _12320) > 0.0)\n \t    {\n \t        float _11797 = max(0.0, dot(_13532.xyz, PerViewLightingConstantBufferGpu_t._m9.xyz));\n \t        vec2 _9840 = max(_21813, vec2(PerViewLightingConstantBufferGpu_t._m9.w));\n@@ -810,7 +821,7 @@ PS\n \t        float _25211 = _9850 * _9850;\n \t        float _19095 = _25211 * _25211;\n \t        float _15346 = ((_12386 * _12386) * (_19095 - 1.0)) + 1.0;\n-\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m10.xyz * _21711).xyz;\n+\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m10.xyz * _12320).xyz;\n \t        _9716 = ((_12351.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0) + 2.0)))).xyz * _11797).xyz * _16808;\n \t        _24878 = PerViewLightingConstantBufferGpu_t._m4.xyz + (vec3(_11797).xyz * _16808);\n \t    }\n@@ -1010,7 +1021,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    vec3 _12503;\n+\t                    vec3 _12504;\n \t                    if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)\n \t                    {\n \t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);\n@@ -1026,7 +1037,7 @@ PS\n \t                        vec3 _20493 = _14081;\n \t                        _20493.x = _20564.x;\n \t                        _20493.y = _20564.y;\n-\t                        _12503 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _20493.xyz, 0.0).xyz;\n+\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _20493.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -1035,9 +1046,9 @@ PS\n \t                        vec3 _20492 = _13791;\n \t                        _20492.x = _20563.x;\n \t                        _20492.y = _20563.y;\n-\t                        _12503 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _20492.xyz, 0.0).xyz;\n+\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _20492.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12503;\n+\t                    _21548 = _12504;\n \t                }\n \t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n@@ -1081,9 +1092,9 @@ PS\n \t                float _19211 = max(0.0, dot(_11179.xyz, _12282));\n \t                float _9851 = _9841.x;\n \t                float _25212 = _9851 * _9851;\n-\t                float _19097 = _25212 * _25212;\n-\t                float _15348 = ((_12387 * _12387) * (_19097 - 1.0)) + 1.0;\n-\t                _13212 = _13138.xyz + (((_12351.xyz * (_19097 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0) + 2.0)))).xyz * _11798).xyz * _22671.xyz);\n+\t                float _19096 = _25212 * _25212;\n+\t                float _15348 = ((_12387 * _12387) * (_19096 - 1.0)) + 1.0;\n+\t                _13212 = _13138.xyz + (((_12351.xyz * (_19096 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0) + 2.0)))).xyz * _11798).xyz * _22671.xyz);\n \t                _15670 = _16326.xyz + (vec3(_11798).xyz * _22671.xyz);\n \t                break;\n \t            } while(false);"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_simple_liquid.slang",
          "status": "modified",
          "additions": 840,
          "deletions": 603,
          "changes": 1443,
          "patch": null
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_static_overlay.slang",
          "status": "modified",
          "additions": 125,
          "deletions": 79,
          "changes": 204,
          "patch": "@@ -123,20 +123,16 @@ VS\n \tint g_nScaleTexCoordUByModelScaleAxis < Range4(0, 0, 0, 0, 3, 3, 3, 3); UiOptions(\"0=None,1=UV.u * model.x,2=UV.u * model.y,3=UV.u * model.z\"); UiType(Enum); UiGroup(\"Color/80\"); >;\n \tint g_nScaleTexCoordVByModelScaleAxis < Range4(0, 0, 0, 0, 3, 3, 3, 3); UiOptions(\"0=None,1=UV.v * model.x,2=UV.v * model.y,3=UV.v * model.z\"); UiType(Enum); UiGroup(\"Color/90\"); >;\n \t\n+\t// Overlay\n+\tfloat g_flOverlayLift < Range(0, 2); UiType(Slider); UiGroup(\"Overlay,90/Lift,10/10\"); >;\n+\t\n \t// Material1\n \tint g_nUVSet1 < Default(1); Range4(0, 0, 0, 0, 2, 2, 2, 2); UiOptions(\"0=Biplanar,1=UV1,2=UV2\"); UiType(Enum); UiGroup(\"Material1/Texture Coordinates,34/1\"); >;\n \tfloat2 g_vTexCoordScale1 < Default2(1, 1); Range2(0, 0, 100, 100); Attribute(\"0=X,1=Y\"); UiType(VectorText); UiGroup(\"Material1/Texture Transform,35/2\"); >;\n \tfloat g_flTexCoordRotation1 < Range(-360, 360); UiType(Slider); UiGroup(\"Material1/Texture Transform,35/13\"); UiVisibility(1); >;\n \t\n-\t// SPIR-V reflection failed for backend HLSL:\n-\t// cbuffer ID 5618 (name: _Globals_), member index 0 (name: g_vTexCoordXform0) cannot be expressed with either HLSL packing layout or packoffset.\n-\t//\n-\t// Re-attempting reflection with the GLSL backend.\n-\t\n \t// Source 2 Viewer - https://valveresourceformat.github.io\n-\t// SPIR-V source, GLSL reflection with SPIRV-Cross by KhronosGroup\n-\t\n-\t#version 460\n+\t// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup\n \t\n \tstruct _1125\n \t{\n@@ -152,88 +148,101 @@ VS\n \t\n \tstruct _1119\n \t{\n-\t    mat3x4 _m0;\n+\t    row_major float3x4 _m0;\n \t};\n \t\n-\tlayout(set = 4, binding = 32, std430) readonly buffer g_instanceBuffer\n+\tByteAddressBuffer g_instanceBuffer : register(t32, space4);\n+\tByteAddressBuffer g_transformBuffer : register(t30, space4);\n+\tcbuffer PerViewConstantBuffer_t : register(b1, space0)\n \t{\n-\t    _1125 _m0[];\n-\t} g_instanceBuffer_1;\n+\t    column_major float4x4 PerViewConstantBuffer_t_1_m0 : packoffset(c0);\n+\t    float PerViewConstantBuffer_t_1_m1 : packoffset(c18.w);\n+\t    float4 PerViewConstantBuffer_t_1_m2 : packoffset(c24);\n+\t    float3 PerViewConstantBuffer_t_1_m3 : packoffset(c26);\n+\t};\n \t\n-\tlayout(set = 4, binding = 30, std430) readonly buffer g_transformBuffer\n+\tcbuffer _Globals_ : register(b0, space0)\n \t{\n-\t    _1119 _m0[];\n-\t} g_transformBuffer_1;\n+\t    float4 _Globals_1_g_vTexCoordXform0 : packoffset(c31);\n+\t    float4 _Globals_1_g_vTexCoordXform1 : packoffset(c32);\n+\t    float2 _Globals_1_g_vTexCoordScrollSpeed : packoffset(c33);\n+\t    float3 _Globals_1_g_vColorTint : packoffset(c36.y);\n+\t    float _Globals_1_g_flModelTintAmount : packoffset(c37);\n+\t    float _Globals_1_g_flOverlayLift : packoffset(c37.z);\n+\t};\n \t\n-\tstruct _1340\n+\tcbuffer PerViewConstantBufferCsgo_t : register(b3, space0)\n \t{\n-\t    mat4 _m0;\n-\t    float _m1;\n-\t    vec4 _m2;\n-\t    vec3 _m3;\n+\t    float4 PerViewConstantBufferCsgo_t_1_m0 : packoffset(c35);\n \t};\n \t\n-\tlayout(set = 0) uniform _1340 PerViewConstantBuffer_t;\n \t\n-\tstruct _1234\n+\tstatic float4 gl_Position;\n+\tstatic float3 vPositionOs;\n+\tstatic float2 vTexCoord;\n+\tstatic float3 vNormalOs;\n+\tstatic uint4 vBlendIndices;\n+\tstatic uint nInstanceIdx;\n+\tstatic float3 output_0;\n+\tstatic float3 output_1;\n+\tstatic float4 output_2;\n+\tstatic float3 output_3;\n+\tstatic float3 output_4;\n+\tstatic float4 output_5;\n+\tstatic float4 output_6;\n+\tstatic uint output_7;\n+\t\n+\tstruct VS_INPUT\n \t{\n-\t    vec4 g_vTexCoordXform0;\n-\t    vec4 g_vTexCoordXform1;\n-\t    vec2 g_vTexCoordScrollSpeed;\n-\t    vec3 g_vColorTint;\n-\t    float g_flModelTintAmount;\n+\t    float3 vPositionOs : POSITION0;\n+\t    float2 vTexCoord : TEXCOORD0;\n+\t    float3 vNormalOs : NORMAL0;\n+\t    uint4 vBlendIndices : BLENDINDICES0;\n+\t    uint nInstanceIdx : TEXCOORD13;\n \t};\n \t\n-\tlayout(set = 0) uniform _1234 _Globals_;\n-\t\n-\tstruct _1017\n+\tstruct PS_INPUT\n \t{\n-\t    vec4 _m0;\n+\t    float3 output_0 : TEXCOORD0;\n+\t    float3 output_1 : TEXCOORD1;\n+\t    float4 output_2 : TEXCOORD2;\n+\t    float3 output_3 : TEXCOORD3;\n+\t    float3 output_4 : TEXCOORD4;\n+\t    float4 output_5 : TEXCOORD5;\n+\t    centroid float4 output_6 : TEXCOORD6;\n+\t    nointerpolation uint output_7 : TEXCOORD7;\n+\t    float4 gl_Position : SV_Position;\n \t};\n \t\n-\tlayout(set = 0) uniform _1017 PerViewConstantBufferCsgo_t;\n-\t\n-\tlayout(location = 0) in vec3 vPositionOs;\n-\tlayout(location = 1) in vec2 vTexCoord;\n-\tlayout(location = 2) in vec3 vNormalOs;\n-\tlayout(location = 3) in uvec4 vBlendIndices;\n-\tlayout(location = 4) in uint nInstanceIdx;\n-\tlayout(location = 0) out vec3 output_0;\n-\tlayout(location = 1) out vec3 output_1;\n-\tlayout(location = 2) out vec4 output_2;\n-\tlayout(location = 3) out vec3 output_3;\n-\tlayout(location = 4) out vec3 output_4;\n-\tlayout(location = 5) out vec4 output_5;\n-\tlayout(location = 6) centroid out vec4 output_6;\n-\tlayout(location = 7) flat out uint output_7;\n-\t\n-\tvoid main()\n+\tvoid MainVs_inner()\n \t{\n-\t    uint _13771 = (g_instanceBuffer_1._m0[nInstanceIdx]._m5 >> uint(16)) & 15u;\n+\t    uint _13771 = (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 20) >> uint(16)) & 15u;\n \t    uint _21785;\n \t    if (_13771 == 1u)\n \t    {\n-\t        _21785 = g_instanceBuffer_1._m0[nInstanceIdx]._m1 + (2u + vBlendIndices.x);\n+\t        _21785 = g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) + (2u + vBlendIndices.x);\n \t    }\n \t    else\n \t    {\n-\t        _21785 = g_instanceBuffer_1._m0[nInstanceIdx]._m1;\n+\t        _21785 = g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4);\n \t    }\n-\t    vec3 _21709;\n+\t    float3x4 _12618 = float3x4(g_transformBuffer.Load<float4>(_21785 * 48 + 0), g_transformBuffer.Load<float4>(_21785 * 48 + 16), g_transformBuffer.Load<float4>(_21785 * 48 + 32));\n+\t    float3 _21709;\n \t    if (_13771 > 0u)\n \t    {\n-\t        _21709 = vec3(g_transformBuffer_1._m0[g_instanceBuffer_1._m0[nInstanceIdx]._m1]._m0[0].z);\n+\t        float3x4 _25207 = float3x4(g_transformBuffer.Load<float4>(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) * 48 + 0), g_transformBuffer.Load<float4>(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) * 48 + 16), g_transformBuffer.Load<float4>(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) * 48 + 32));\n+\t        _21709 = _25207[0].z.xxx;\n \t    }\n \t    else\n \t    {\n-\t        _21709 = vec3(1.0);\n+\t        _21709 = 1.0f.xxx;\n \t    }\n-\t    vec4 _23812 = vec4(uvec4(g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 255u, (g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 65280u) >> uint(8), (g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 16711680u) >> uint(16), (g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 4278190080u) >> uint(24))) * vec4(0.0039215688593685626983642578125);\n-\t    vec3 _6253 = _23812.xyz;\n-\t    vec3 _17828 = _6253 * vec3(0.077399380505084991455078125);\n-\t    vec3 _7676 = pow((_6253 * vec3(0.947867333889007568359375)) + vec3(0.052132703363895416259765625), vec3(2.400000095367431640625));\n+\t    float4 _23812 = float4(uint4(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 255u, (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 65280u) >> uint(8), (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 16711680u) >> uint(16), (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 4278190080u) >> uint(24))) * 0.0039215688593685626983642578125f.xxxx;\n+\t    float3 _6253 = _23812.xyz;\n+\t    float3 _17828 = _6253 * 0.077399380505084991455078125f.xxx;\n+\t    float3 _7676 = pow((_6253 * 0.947867333889007568359375f.xxx) + 0.052132703363895416259765625f.xxx, 2.400000095367431640625f.xxx);\n \t    float _21354;\n-\t    if (_23812.x <= 0.040449999272823333740234375)\n+\t    if (_23812.x <= 0.040449999272823333740234375f)\n \t    {\n \t        _21354 = _17828.x;\n \t    }\n@@ -242,7 +251,7 @@ VS\n \t        _21354 = _7676.x;\n \t    }\n \t    float _21355;\n-\t    if (_23812.y <= 0.040449999272823333740234375)\n+\t    if (_23812.y <= 0.040449999272823333740234375f)\n \t    {\n \t        _21355 = _17828.y;\n \t    }\n@@ -251,7 +260,7 @@ VS\n \t        _21355 = _7676.y;\n \t    }\n \t    float _17978;\n-\t    if (_23812.z <= 0.040449999272823333740234375)\n+\t    if (_23812.z <= 0.040449999272823333740234375f)\n \t    {\n \t        _17978 = _17828.z;\n \t    }\n@@ -260,33 +269,69 @@ VS\n \t        _17978 = _7676.z;\n \t    }\n \t    float _7654 = _23812.w;\n-\t    vec3 _12151 = vec4(vPositionOs.xyz * _21709.xyz, 1.0) * g_transformBuffer_1._m0[_21785]._m0;\n-\t    vec4 _18237 = (vec4(_12151.xyz, 1.0) + (PerViewConstantBuffer_t._m2 * 1.0)).xyzw * PerViewConstantBuffer_t._m0;\n-\t    vec4 _9360 = vTexCoord.xyxy;\n-\t    _9360.x = dot(vTexCoord.xy, _Globals_.g_vTexCoordXform0.xy) + _Globals_.g_vTexCoordXform0.w;\n-\t    _9360.y = dot(vTexCoord.xy, _Globals_.g_vTexCoordXform1.xy) + _Globals_.g_vTexCoordXform1.w;\n-\t    vec2 _22490 = _9360.xy + (_Globals_.g_vTexCoordScrollSpeed.xy * PerViewConstantBuffer_t._m1);\n-\t    vec4 _20488 = _9360;\n+\t    float3 _11179 = normalize(mul(_12618, float4(vNormalOs.xyz, 0.0f)));\n+\t    float3 _12151 = mul(_12618, float4(vPositionOs.xyz * _21709.xyz, 1.0f));\n+\t    float4 _21447 = PerViewConstantBuffer_t_1_m2 * 1.0f;\n+\t    float4 _13706 = vTexCoord.xyxy;\n+\t    _13706.x = dot(vTexCoord.xy, _Globals_1_g_vTexCoordXform0.xy) + _Globals_1_g_vTexCoordXform0.w;\n+\t    _13706.y = dot(vTexCoord.xy, _Globals_1_g_vTexCoordXform1.xy) + _Globals_1_g_vTexCoordXform1.w;\n+\t    float2 _22490 = _13706.xy + (_Globals_1_g_vTexCoordScrollSpeed.xy * PerViewConstantBuffer_t_1_m1);\n+\t    float4 _20488 = _13706;\n \t    _20488.x = _22490.x;\n \t    _20488.y = _22490.y;\n-\t    vec4 _11399 = vec4(mix(vec3(1.0), vec4(_21354, _21355, _17978, _7654).xyz, vec3(_Globals_.g_flModelTintAmount)), _7654 * g_instanceBuffer_1._m0[nInstanceIdx]._m7);\n-\t    vec3 _13062 = _11399.xyz * _Globals_.g_vColorTint.xyz;\n-\t    vec4 _23714 = _11399;\n+\t    float4 _11399 = float4(lerp(1.0f.xxx, float4(_21354, _21355, _17978, _7654).xyz, _Globals_1_g_flModelTintAmount.xxx), _7654 * g_instanceBuffer.Load<float>(nInstanceIdx * 32 + 28));\n+\t    float3 _13062 = _11399.xyz * _Globals_1_g_vColorTint.xyz;\n+\t    float4 _23714 = _11399;\n \t    _23714.x = _13062.x;\n \t    _23714.y = _13062.y;\n \t    _23714.z = _13062.z;\n+\t    float4 _19363;\n+\t    if (_Globals_1_g_flOverlayLift > 0.0f)\n+\t    {\n+\t        float3 _6847 = _12151.xyz;\n+\t        float3 _18449 = normalize(PerViewConstantBuffer_t_1_m3.xyz - _6847);\n+\t        float4 _18277 = mul(PerViewConstantBuffer_t_1_m0, (float4(_6847, 1.0f) + _21447).xyzw);\n+\t        float4 _8847 = mul(PerViewConstantBuffer_t_1_m0, (float4((_6847 + (_18449 * ((_Globals_1_g_flOverlayLift * 1.5f) / max(dot(_11179.xyz, _18449), 0.300000011920928955078125f)))).xyz, 1.0f) + _21447).xyzw);\n+\t        _18277.z = (_8847.z / _8847.w) * _18277.w;\n+\t        _19363 = _18277;\n+\t    }\n+\t    else\n+\t    {\n+\t        _19363 = mul(PerViewConstantBuffer_t_1_m0, (float4(_12151.xyz, 1.0f) + _21447).xyzw);\n+\t    }\n \t    output_0 = _12151;\n-\t    output_1 = _12151 - PerViewConstantBuffer_t._m3.xyz;\n+\t    output_1 = _12151 - PerViewConstantBuffer_t_1_m3.xyz;\n \t    output_2 = _20488;\n-\t    output_3 = _12151.xyz - PerViewConstantBufferCsgo_t._m0.xyz;\n-\t    output_4 = normalize(vec4(vNormalOs.xyz, 0.0) * g_transformBuffer_1._m0[_21785]._m0);\n+\t    output_3 = _12151.xyz - PerViewConstantBufferCsgo_t_1_m0.xyz;\n+\t    output_4 = _11179;\n \t    output_5 = _20488;\n \t    output_6 = _23714;\n-\t    output_7 = g_instanceBuffer_1._m0[nInstanceIdx]._m5 & 65535u;\n-\t    _18237.y = -_18237.y;\n-\t    gl_Position = _18237;\n+\t    output_7 = g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 20) & 65535u;\n+\t    float4 _20857 = _19363;\n+\t    _20857.y = -_19363.y;\n+\t    gl_Position = _20857;\n \t}\n \t\n+\tPS_INPUT MainVs(VS_INPUT stage_input)\n+\t{\n+\t    vPositionOs = stage_input.vPositionOs;\n+\t    vTexCoord = stage_input.vTexCoord;\n+\t    vNormalOs = stage_input.vNormalOs;\n+\t    vBlendIndices = stage_input.vBlendIndices;\n+\t    nInstanceIdx = stage_input.nInstanceIdx;\n+\t    MainVs_inner();\n+\t    PS_INPUT stage_output;\n+\t    stage_output.gl_Position = gl_Position;\n+\t    stage_output.output_0 = output_0;\n+\t    stage_output.output_1 = output_1;\n+\t    stage_output.output_2 = output_2;\n+\t    stage_output.output_3 = output_3;\n+\t    stage_output.output_4 = output_4;\n+\t    stage_output.output_5 = output_5;\n+\t    stage_output.output_6 = output_6;\n+\t    stage_output.output_7 = output_7;\n+\t    return stage_output;\n+\t}\n \t\n \t// ---------  SPIRV -> HLSL end  --------- \n \t\n@@ -397,7 +442,7 @@ PS\n \tfloat3 g_vAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.045,.4,1.15).x,-1.4427*log(max(.0001,1-float3(-.045,.4,1.15).y)),2-float3(-.045,.4,1.15).z)); >;\n \tfloat3 g_vBiplanarTexCoordScale < UiType(VectorText); Expression(1/64*float3(-1,1,-1)); >;\n \tfloat3 g_vDarkMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.1,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.1,.4,1.08).y)),2-float3(-.1,.4,1.08).z)); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat3 g_vMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.45,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.45,.4,1.08).y)),2-float3(-.45,.4,1.08).z)); >;\n \tfloat4 g_vNormalXform_1 < UiType(VectorText); Expression(v0 = g_flTexCoordRotation1*3.1415927/180;\n \t\tv1 = cos(v0);\n@@ -430,7 +475,7 @@ PS\n \tCreateInputTexture2D(TextureAmbientOcclusion1, Linear, 8, \"\", \"_ao\", \"Material1/Lighting,20/20\", Default4(1, 1, 1, 0));\n \tfloat g_fTextureColorContrast1 < Default(1); Range(0, 4); UiType(Slider); UiGroup(\"Material1/Color Correction/20\"); >;\n \tfloat g_flHeightMapScale1 < Default(1); Range(-4, 4); UiType(Slider); UiGroup(\"Material1/Height/20\"); >;\n-\tfloat3 g_vAmbientOcclusionLevels1 < Default2(0, 0.5); Range(-1, 1); Attribute(\"0=Option 1,1=Option 2,2=Option 3\"); UiType(VectorText); UiGroup(\"Material1/Lighting/21\"); Expression(float3(-this.x,-1.4427*log(max(.0001,1-this.y)),2-this.z)); >;\n+\tfloat3 g_vAmbientOcclusionLevels1 < Default3(0, 0.5, 1); Range(-1, 1); Attribute(\"0=Option 1,1=Option 2,2=Option 3\"); UiType(VectorText); UiGroup(\"Material1/Lighting/21\"); Expression(float3(-this.x,-1.4427*log(max(.0001,1-this.y)),2-this.z)); >;\n \tCreateInputTexture2D(TextureMetalness1, Linear, 8, \"\", \"_metal\", \"Material1/Lighting/30\", Default4(0, 0, 0, 0));\n \tfloat g_fTextureColorSaturation1 < Default(1); Range(0, 4); UiType(Slider); UiGroup(\"Material1/Color Correction/30\"); >;\n \tfloat g_flHeightMapZeroPoint1 < Default(0.5); UiType(Slider); UiGroup(\"Material1/Height/30\"); >;\n@@ -451,6 +496,7 @@ PS\n \t// Lighting\n \tCreateInputTexture2D(TextureMetalness, Linear, 8, \"\", \"_metal\", \"Lighting,30/Metalness,30/10\", Default4(0, 0, 0, 0));\n \tCreateInputTexture2D(TextureRoughness, Linear, 8, \"Inverse\", \"_rough\", \"Lighting,30/Roughness,20/10\", Default4(0.5, 0.5, 0.5, 0));\n+\tbool g_bSnow < UiType(CheckBox); UiGroup(\"Lighting/Snow,90/10\"); >;\n \tfloat g_fTextureRoughnessContrast < Default(1); Range(0, 4); UiType(Slider); UiGroup(\"Lighting/Roughness/11\"); >;\n \tfloat g_fTextureRoughnessBrightness < Default(1); Range(0, 4); UiType(Slider); UiGroup(\"Lighting/Roughness/12\"); >;\n \tbool g_bMaskRoughnessAdjustmentsByTintMask < UiType(CheckBox); UiGroup(\"Lighting/Roughness/13\"); UiVisibility(F_TINT_MASK==1); >;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_textile_layer.slang",
          "status": "modified",
          "additions": 180,
          "deletions": 169,
          "changes": 349,
          "patch": "@@ -334,7 +334,7 @@ PS\n \tTexture2D g_tSurface1 < Channel(RGB, ArtistDefined(TextureSurfaceAlbedo1), Srgb); Channel(A, Box(TextureSurfaceTintMask1), Linear); OutputFormat(BC7); SrgbRead(true); >;\n \tTexture2D g_tSurfaceNormal1 < Channel(RGBA, HemiOctAnisoRoughness(TextureSurfaceNormal1, TextureSurfaceRoughness1), Linear); OutputFormat(BC7); SrgbRead(false); >;\n \tTexture2D g_tSurfaceProperties1 < Channel(R, Box3(TextureSurfaceAmbientOcclusion1), Linear); Channel(G, Box(TextureSurfaceMetalness1), Linear); Channel(B, Box(TextureSurfaceClothMask1), Linear); Channel(A, Box(TextureSurfaceHeight1), Linear); OutputFormat(BC7); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vGrungeTexCoordXform0 < UiType(VectorText); Expression(v0 = g_fGrungeTexCoordRotation*3.14159/180;\n \t\tv1 = cos(v0);\n \t\tv2 = sin(v0);\n@@ -385,7 +385,7 @@ PS\n \tCreateInputTexture2D(TextureGrime1, Srgb, 8, \"\", \"_color\", \"Material1/Grime,6/1\", Default4(0.5, 0.5, 0.5, 0));\n \tCreateInputTexture2D(TextureSubstrateAlbedo1, Srgb, 8, \"\", \"_color\", \"Material1/Substrate Layer,2/1\", Default4(1, 1, 1, 0));\n \tCreateInputTexture2D(TextureSurfaceAlbedo1, Srgb, 8, \"\", \"_color\", \"Material1/Surface Layer,1/1\", Default4(1, 1, 1, 0));\n-\tfloat2 g_vDamageLevels1 < Default(0); UiType(VectorText); UiGroup(\"Material1,1/Detail Damage/1\"); >;\n+\tfloat2 g_vDamageLevels1 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material1,1/Detail Damage/1\"); >;\n \tCreateInputTexture2D(TextureSubstrateTintMask1, Linear, 8, \"\", \"_tintmask\", \"Material1/Substrate Layer/2\", Default4(1, 1, 1, 0));\n \tCreateInputTexture2D(TextureSurfaceTintMask1, Linear, 8, \"\", \"_tintmask\", \"Material1/Surface Layer/2\", Default4(1, 1, 1, 0));\n \tfloat g_fCurvaturePower1 < Default(1); Range(0.5, 6); UiType(Slider); UiGroup(\"Material1/Detail Damage/2\"); >;\n@@ -409,16 +409,16 @@ PS\n \tCreateInputTexture2D(TextureDetailNormal1, Linear, 8, \"\", \"_detailnormal\", \"Material1/Normal/10\", Default4(0.5, 0.5, 0.5, 0.5));\n \tCreateInputTexture2D(TextureGrunge1, Linear, 8, \"\", \"_grunge\", \"Material1/Grunge/10\", Default4(0.5, 0.5, 0.5, 0.5));\n \tfloat g_fDamageMetalness1 < UiType(Slider); UiGroup(\"Material1/Detail Damage/10\"); >;\n-\tfloat2 g_vSurfaceGrimeMinMax1 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material1/Grime/10\"); >;\n+\tfloat2 g_vSurfaceGrimeMinMax1 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material1/Grime/10\"); >;\n \tCreateInputTexture2D(TextureDamageNormal1, Linear, 8, \"\", \"_damagenormal\", \"Material1/Normal/11\", Default4(0.5, 0.5, 0.5, 0.5));\n \tfloat g_fDamageCloth1 < UiType(Slider); UiGroup(\"Material1/Detail Damage/11\"); UiVisibility(F_CLOTH_SHADING); >;\n \tfloat g_fDamageHeightBlendSoftness1 < Default(0.01); UiType(Slider); UiGroup(\"Material1/Damage Height/11\"); Expression(max(this,.001)); >;\n \tfloat g_fDetailGrunge1 < Range(0, 2); UiType(Slider); UiGroup(\"Material1/Grunge/11\"); >;\n \tfloat g_fDetailScale1 < Default(4); Range(-10, 10); UiType(Slider); UiGroup(\"Material1/Detail/11\"); >;\n-\tfloat2 g_vSubstrateGrimeMinMax1 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material1/Grime/11\"); >;\n+\tfloat2 g_vSubstrateGrimeMinMax1 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup(\"Material1/Grime/11\"); >;\n \tfloat g_fDetailNormalContrast1 < Default(1); Range(0, 8); UiType(Slider); UiGroup(\"Material1/Normal/12\"); >;\n \tfloat g_fDetailRoughnessContrast1 < Range(-1, 1); UiType(Slider); UiGroup(\"Material1/Detail/12\"); >;\n-\tfloat2 g_vDamageMinMax1 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material1/Damage Height/12\"); >;\n+\tfloat2 g_vDamageMinMax1 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup(\"Material1/Damage Height/12\"); >;\n \tfloat g_fDetailRoughnessBrightness1 < Default(1); Range(0, 10); UiType(Slider); UiGroup(\"Material1/Detail/13\"); >;\n \tfloat g_fWearBleaching1 < Default(0.25); Range(0, 3); UiType(Slider); UiGroup(\"Material1/Wear Edge/13\"); >;\n \tfloat g_fDetailAnisotropyScalar1 < Range(-1, 1); UiType(Slider); UiGroup(\"Material1/Detail/14\"); >;\n@@ -459,12 +459,12 @@ PS\n \tCreateInputTexture2D(TextureSubstrateMetalness1, Srgb, 8, \"\", \"_metal\", \"Material1/Substrate Layer/40\", Default4(0, 0, 0, 0));\n \tCreateInputTexture2D(TextureSurfaceMetalness1, Linear, 8, \"\", \"_metal\", \"Material1/Surface Layer/40\", Default4(0, 0, 0, 0));\n \tfloat g_fDamageBevelRoughnessBrightness1 < Default(1); Range(0, 2); UiType(Slider); UiGroup(\"Material1/Damage Bevel/40\"); >;\n-\tfloat2 g_vSurfaceBurnishingMinMax1 < Default(0); UiType(VectorText); UiGroup(\"Material1/Burnishing/40\"); >;\n+\tfloat2 g_vSurfaceBurnishingMinMax1 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material1/Burnishing/40\"); >;\n \tCreateInputTexture2D(TextureSubstrateClothMask1, Srgb, 8, \"\", \"_mask\", \"Material1/Substrate Layer/41\", \"materials/default/default_black_mask.tga\");\n \tCreateInputTexture2D(TextureSurfaceClothMask1, Linear, 8, \"\", \"_mask\", \"Material1/Surface Layer/41\", \"materials/default/default_black_mask.tga\");\n \tfloat g_fDamageBevelAnisotropy1 < UiType(Slider); UiGroup(\"Material1/Damage Bevel/41\"); >;\n \tfloat g_fDamageNormalEdgeWidth1 < Default(1); Range(0, 8); UiType(Slider); UiGroup(\"Material1,1/Wear Edge/41\"); >;\n-\tfloat2 g_vSubstrateBurnishingMinMax1 < Default(0); UiType(VectorText); UiGroup(\"Material1/Burnishing/41\"); >;\n+\tfloat2 g_vSubstrateBurnishingMinMax1 < Default2(0, 1); UiType(VectorText); UiGroup(\"Material1/Burnishing/41\"); >;\n \tfloat g_fDamageEdgeRoughness1 < Default(0.8); UiType(Slider); UiGroup(\"Material1/Wear Edge/42\"); >;\n \tfloat g_fDamageEdgeMetalness1 < UiType(Slider); UiGroup(\"Material1/Wear Edge/43\"); >;\n \tfloat g_fDamageBevelMetalness1 < UiType(Slider); UiGroup(\"Material1/Damage Bevel/50\"); >;\n@@ -527,14 +527,14 @@ PS\n \t#endif\n \t#extension GL_KHR_shader_subgroup_arithmetic : require\n \t\n-\tconst vec2 _724[4] = vec2[](vec2(-1.0), vec2(-1.0, 1.0), vec2(1.0), vec2(1.0, -1.0));\n+\tconst vec2 _790[4] = vec2[](vec2(-1.0), vec2(-1.0, 1.0), vec2(1.0), vec2(1.0, -1.0));\n \t\n-\tstruct _1906\n+\tstruct _2158\n \t{\n \t    vec4 _m0[3];\n \t};\n \t\n-\tstruct _2116\n+\tstruct _2368\n \t{\n \t    vec4 _m0[4];\n \t};\n@@ -550,12 +550,12 @@ PS\n \t    vec4 _m6;\n \t};\n \t\n-\tstruct _2033\n+\tstruct _2946\n \t{\n \t    _1677 _m0[128];\n \t};\n \t\n-\tstruct _872\n+\tstruct _1988\n \t{\n \t    mat4 _m0[4];\n \t};\n@@ -659,15 +659,15 @@ PS\n \t\n \tlayout(set = 1) uniform _2806 PerViewConstantBufferCsgo_t;\n \t\n-\tstruct _1552\n+\tstruct _832\n \t{\n \t    vec4 _m0;\n \t    vec4 _m1;\n \t    vec4 _m2;\n \t    vec4 _m3;\n \t    vec4 _m4;\n-\t    _1906 _m5;\n-\t    _2116 _m6;\n+\t    _2158 _m5;\n+\t    _2368 _m6;\n \t    vec4 _m7;\n \t    vec4 _m8;\n \t    vec4 _m9;\n@@ -676,7 +676,7 @@ PS\n \t    uvec4 _m12;\n \t    vec4 _m13;\n \t    vec4 _m14;\n-\t    _2033 _m15;\n+\t    _2946 _m15;\n \t    vec4 _m16;\n \t    vec4 _m17;\n \t    int _m18;\n@@ -686,11 +686,11 @@ PS\n \t    float _m22;\n \t    float _m23;\n \t    float _m24;\n-\t    _872 _m25;\n-\t    _2116 _m26;\n+\t    _1988 _m25;\n+\t    _2368 _m26;\n \t};\n \t\n-\tlayout(set = 3) uniform _1552 PerViewLightingConstantBufferGpu_t;\n+\tlayout(set = 3) uniform _832 PerViewLightingConstantBufferGpu_t;\n \t\n \tstruct _1194\n \t{\n@@ -721,19 +721,19 @@ PS\n \tlayout(set = 1, binding = 55) uniform texture2D g_tDetailNormal1;\n \tlayout(set = 1, binding = 56) uniform texture2D g_tDamageNormal1;\n \tlayout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;\n-\tlayout(set = 1, binding = 22) uniform sampler g_sCookieSampler;\n+\tlayout(set = 1, binding = 23) uniform sampler g_sCookieSampler;\n \tlayout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;\n-\tlayout(set = 1, binding = 18) uniform sampler g_sPointClamp;\n+\tlayout(set = 1, binding = 19) uniform sampler g_sPointClamp;\n \tlayout(set = 1, binding = 39) uniform texture2D g_tSsao;\n-\tlayout(set = 1, binding = 19) uniform sampler g_sUserConfig;\n-\tlayout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n+\tlayout(set = 1, binding = 20) uniform sampler g_sUserConfig;\n+\tlayout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n \tlayout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;\n \tlayout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;\n-\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;\n-\tlayout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;\n+\tlayout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;\n+\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;\n \tlayout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;\n \tlayout(set = 1, binding = 40) uniform textureCubeArray g_tEnvironmentMap;\n-\tlayout(set = 1, binding = 15) uniform sampler g_sBilinearClamp;\n+\tlayout(set = 1, binding = 16) uniform sampler g_sBilinearClamp;\n \tlayout(set = 1, binding = 35) uniform texture2DArray g_tBRDFLookup;\n \tlayout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;\n \t\n@@ -983,8 +983,8 @@ PS\n \t        {\n \t            break;\n \t        }\n-\t        float _24694 = _19034 - smoothstep(_Globals_.g_vDamageLevels1.x, _Globals_.g_vDamageLevels1.y, saturate((texture(sampler2D(g_tGrunge1, g_sAniso), (_15902 + (((_724[_17017] * 0.0009765625) * _Globals_.g_fDamageNormalEdgeWidth1) * 2.0)).xy).w * _21912) + _20765) * _Globals_.g_fWearProgress);\n-\t        _10648 = _13136.xy - (_724[_17017] * _24694);\n+\t        float _24694 = _19034 - smoothstep(_Globals_.g_vDamageLevels1.x, _Globals_.g_vDamageLevels1.y, saturate((texture(sampler2D(g_tGrunge1, g_sAniso), (_15902 + (((_790[_17017] * 0.0009765625) * _Globals_.g_fDamageNormalEdgeWidth1) * 2.0)).xy).w * _21912) + _20765) * _Globals_.g_fWearProgress);\n+\t        _10648 = _13136.xy - (_790[_17017] * _24694);\n \t        _14733 = _16324 + abs(_24694);\n \t        _18386 = _17017 + 1;\n \t        _13136 = _10648;\n@@ -1091,162 +1091,173 @@ PS\n \t    {\n \t        _21711 = _21710;\n \t    }\n-\t    float _21712;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735);\n+\t    float _12320;\n \t    SPIRV_CROSS_BRANCH\n-\t    if (PerViewLightingConstantBufferGpu_t._m18 != 0)\n+\t    if (_8634 > 0.0)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13137;\n-\t        vec3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n-\t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))\n-\t            {\n-\t                _13137 = 1.0;\n-\t                _14975 = vec3(0.0);\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])\n-\t            {\n-\t                vec3 _19470 = vec3(_12779, _18322.yz);\n-\t                vec2 _24804 = _19470.xy;\n-\t                vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));\n-\t                vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;\n-\t                vec3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13137 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20488;\n-\t                _10191 = _13039;\n-\t                break;\n-\t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n+\t        float _12504;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m18 != 0)\n \t        {\n-\t            vec2 _7045;\n-\t            vec2 _7046;\n-\t            vec2 _7735;\n-\t            float _8969;\n-\t            float _8970;\n-\t            float _15996;\n-\t            float _17299;\n-\t            vec2 _18870;\n-\t            vec4 _20581;\n-\t            vec4 _22024;\n-\t            float _23727;\n-\t            do\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13137;\n+\t            vec3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                _20581 = PerViewLightingConstantBufferGpu_t._m0;\n-\t                _22024 = PerViewLightingConstantBufferGpu_t._m1;\n-\t                _17299 = PerViewLightingConstantBufferGpu_t._m2.z;\n-\t                _15996 = PerViewLightingConstantBufferGpu_t._m3.z;\n-\t                _18870 = vec2(_17299, _15996);\n-\t                _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n-\t                _7045 = vec2(_8969, _15996);\n-\t                _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n-\t                _7046 = vec2(_17299, _8970);\n-\t                _7735 = vec2(_8969, _8970);\n-\t                float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));\n-\t                bool _12887;\n-\t                if (_15310 == 0.0)\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))\n \t                {\n-\t                    _12887 = true;\n-\t                }\n-\t                else\n-\t                {\n-\t                    _12887 = _15310 == 1.0;\n+\t                    _13137 = 1.0;\n+\t                    _14975 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n \t                }\n-\t                if (_12887)\n+\t                vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])\n \t                {\n-\t                    _23727 = _15310;\n+\t                    vec3 _19470 = vec3(_12779, _18322.yz);\n+\t                    vec2 _24804 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));\n+\t                    vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;\n+\t                    vec3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13137 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20488;\n+\t                    _10191 = _13039;\n \t                    break;\n \t                }\n-\t                _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22024.y);\n-\t                break;\n-\t            } while(false);\n-\t            float _12502;\n-\t            SPIRV_CROSS_BRANCH\n-\t            if (_13137 < 1.0)\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n+\t            }\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))\n+\t                vec2 _7045;\n+\t                vec2 _7046;\n+\t                vec2 _7735;\n+\t                float _8969;\n+\t                float _8970;\n+\t                float _15996;\n+\t                float _17299;\n+\t                vec2 _18870;\n+\t                vec4 _20581;\n+\t                vec4 _22024;\n+\t                float _23727;\n+\t                do\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];\n-\t                    vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;\n-\t                    vec3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    float _12501;\n-\t                    do\n+\t                    float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);\n+\t                    _20581 = PerViewLightingConstantBufferGpu_t._m0;\n+\t                    _22024 = PerViewLightingConstantBufferGpu_t._m1;\n+\t                    _17299 = PerViewLightingConstantBufferGpu_t._m2.z;\n+\t                    _15996 = PerViewLightingConstantBufferGpu_t._m3.z;\n+\t                    _18870 = vec2(_17299, _15996);\n+\t                    _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n+\t                    _7045 = vec2(_8969, _15996);\n+\t                    _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n+\t                    _7046 = vec2(_17299, _8970);\n+\t                    _7735 = vec2(_8969, _8970);\n+\t                    float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));\n+\t                    bool _12887;\n+\t                    if (_15310 == 0.0)\n \t                    {\n-\t                        float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                        float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));\n-\t                        bool _12888;\n-\t                        if (_15311 == 0.0)\n-\t                        {\n-\t                            _12888 = true;\n-\t                        }\n-\t                        else\n-\t                        {\n-\t                            _12888 = _15311 == 1.0;\n-\t                        }\n-\t                        if (_12888)\n+\t                        _12887 = true;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _12887 = _15310 == 1.0;\n+\t                    }\n+\t                    if (_12887)\n+\t                    {\n+\t                        _23727 = _15310;\n+\t                        break;\n+\t                    }\n+\t                    _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22024.y);\n+\t                    break;\n+\t                } while(false);\n+\t                float _12502;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13137 < 1.0)\n+\t                {\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];\n+\t                        vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;\n+\t                        vec3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        float _12501;\n+\t                        do\n \t                        {\n-\t                            _12501 = _15311;\n+\t                            float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);\n+\t                            float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));\n+\t                            bool _12888;\n+\t                            if (_15311 == 0.0)\n+\t                            {\n+\t                                _12888 = true;\n+\t                            }\n+\t                            else\n+\t                            {\n+\t                                _12888 = _15311 == 1.0;\n+\t                            }\n+\t                            if (_12888)\n+\t                            {\n+\t                                _12501 = _15311;\n+\t                                break;\n+\t                            }\n+\t                            _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22024.y);\n \t                            break;\n-\t                        }\n-\t                        _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22024.y);\n-\t                        break;\n-\t                    } while(false);\n-\t                    _7934 = _12501;\n+\t                        } while(false);\n+\t                        _7934 = _12501;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0;\n+\t                    }\n+\t                    _12502 = mix(_7934, _23727, _13137);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0;\n+\t                    _12502 = _23727;\n \t                }\n-\t                _12502 = mix(_7934, _23727, _13137);\n+\t                _19363 = _12502;\n \t            }\n \t            else\n \t            {\n-\t                _12502 = _23727;\n+\t                _19363 = 1.0;\n \t            }\n-\t            _19363 = _12502;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0;\n-\t        }\n-\t        float _13279 = mix(_19363, 1.0, saturate((distance(_10829.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));\n-\t        float _12503;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            float _13279 = mix(_19363, 1.0, saturate((distance(_10829.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));\n+\t            float _12503;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12503 = _13279;\n+\t            }\n+\t            _12504 = _12503;\n \t        }\n \t        else\n \t        {\n-\t            _12503 = _13279;\n+\t            _12504 = 1.0;\n \t        }\n-\t        _21712 = _12503;\n+\t        _12320 = _12504;\n \t    }\n \t    else\n \t    {\n-\t        _21712 = 1.0;\n+\t        _12320 = 1.0;\n \t    }\n \t    vec3 _9716;\n \t    vec3 _24878;\n \t    SPIRV_CROSS_BRANCH\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735) * _21712) > 0.0)\n+\t    if ((_8634 * _12320) > 0.0)\n \t    {\n \t        float _11797 = max(0.0, dot(_14995.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));\n \t        vec2 _9840 = max(_11004, vec2(PerViewLightingConstantBufferGpu_t._m16.w));\n@@ -1257,8 +1268,8 @@ PS\n \t        float _25073 = max(0.0, dot(_19012, _21889));\n \t        float _9850 = _9840.x;\n \t        float _25211 = _9850 * _9850;\n-\t        float _19097 = _12386 * _12386;\n-\t        float _24198 = _25211 / ((_19097 * ((_25211 * _25211) - 1.0)) + 1.0);\n+\t        float _19096 = _12386 * _12386;\n+\t        float _24198 = _25211 / ((_19096 * ((_25211 * _25211) - 1.0)) + 1.0);\n \t        float _16150 = _9850 + 1.0;\n \t        float _6835 = (_16150 * _16150) * 0.125;\n \t        float _19569 = 1.0 - _6835;\n@@ -1270,13 +1281,13 @@ PS\n \t            float _6597 = dot(_9840.xy, vec2(0.5));\n \t            float _20791 = max(_6597 * _6597, 9.9999997473787516355514526367188e-06);\n \t            float _21401 = saturate(_25073 + 0.001000000047497451305389404296875);\n-\t            _11621 = mix(_21624, ((((2.0 + (1.0 / _20791)) * pow(1.0 - _19097, 0.5 / _20791)) / ((_11797 + _21401) - (_11797 * _21401))) * 0.124999918043613433837890625) * _11797, _11543);\n+\t            _11621 = mix(_21624, ((((2.0 + (1.0 / _20791)) * pow(1.0 - _19096, 0.5 / _20791)) / ((_11797 + _21401) - (_11797 * _21401))) * 0.124999918043613433837890625) * _11797, _11543);\n \t        }\n \t        else\n \t        {\n \t            _11621 = _21624;\n \t        }\n-\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _21712).xyz;\n+\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _12320).xyz;\n \t        _9716 = PerViewLightingConstantBufferGpu_t._m9.xyz + (vec3(_11797).xyz * _16808);\n \t        _24878 = (((_17639.xyz + ((vec3(1.0) - _17639.xyz) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * _11621).xyz * _11797).xyz * _16808;\n \t    }\n@@ -1477,7 +1488,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    vec3 _12504;\n+\t                    vec3 _12505;\n \t                    if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)\n \t                    {\n \t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);\n@@ -1493,7 +1504,7 @@ PS\n \t                        vec3 _20491 = _14081;\n \t                        _20491.x = _20564.x;\n \t                        _20491.y = _20564.y;\n-\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;\n+\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -1502,9 +1513,9 @@ PS\n \t                        vec3 _20490 = _13791;\n \t                        _20490.x = _20563.x;\n \t                        _20490.y = _20563.y;\n-\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;\n+\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12504;\n+\t                    _21548 = _12505;\n \t                }\n \t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n@@ -1532,8 +1543,8 @@ PS\n \t                    do\n \t                    {\n \t                        float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                        vec2 _14616 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;\n-\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));\n+\t                        vec2 _14617 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;\n+\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));\n \t                        bool _12890;\n \t                        if (_15312 == 0.0)\n \t                        {\n@@ -1548,7 +1559,7 @@ PS\n \t                            _24972 = _15312;\n \t                            break;\n \t                        }\n-\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14616, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n+\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14617, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n \t                        break;\n \t                    } while(false);\n \t                    vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12608]._m12);\n@@ -1573,8 +1584,8 @@ PS\n \t                float _25074 = max(0.0, dot(_19014, _21890));\n \t                float _9851 = _9841.x;\n \t                float _25212 = _9851 * _9851;\n-\t                float _19098 = _12387 * _12387;\n-\t                float _24199 = _25212 / ((_19098 * ((_25212 * _25212) - 1.0)) + 1.0);\n+\t                float _19097 = _12387 * _12387;\n+\t                float _24199 = _25212 / ((_19097 * ((_25212 * _25212) - 1.0)) + 1.0);\n \t                float _16151 = _9851 + 1.0;\n \t                float _6836 = (_16151 * _16151) * 0.125;\n \t                float _19571 = 1.0 - _6836;\n@@ -1586,7 +1597,7 @@ PS\n \t                    float _6598 = dot(_9841.xy, vec2(0.5));\n \t                    float _20792 = max(_6598 * _6598, 9.9999997473787516355514526367188e-06);\n \t                    float _21402 = saturate(_25074 + 0.001000000047497451305389404296875);\n-\t                    _11622 = mix(_21625, ((((2.0 + (1.0 / _20792)) * pow(1.0 - _19098, 0.5 / _20792)) / ((_11798 + _21402) - (_11798 * _21402))) * 0.124999918043613433837890625) * _11798, _11543);\n+\t                    _11622 = mix(_21625, ((((2.0 + (1.0 / _20792)) * pow(1.0 - _19097, 0.5 / _20792)) / ((_11798 + _21402) - (_11798 * _21402))) * 0.124999918043613433837890625) * _11798, _11543);\n \t                }\n \t                else\n \t                {\n@@ -1624,12 +1635,12 @@ PS\n \t        _10287 = _22447;\n \t    }\n \t    float _17751 = dot(_11004.xy, vec2(0.5));\n-\t    vec3 _6521 = _17892.xyz;\n+\t    vec3 _6520 = _17892.xyz;\n \t    vec3 _19081 = _17892.xyz;\n \t    float _23572 = PerViewLightingConstantBufferGpu_t._m14.y * sqrt(_17751);\n \t    float _17225 = _17751 * _17751;\n \t    float _20711 = saturate(1.0 - _17225);\n-\t    vec3 _25271 = normalize(mix(_6521, reflect(_10145.xyz, _19081).xyz, vec3(_20711 * (sqrt(_20711) + _17225))));\n+\t    vec3 _25271 = normalize(mix(_6520, reflect(_10145.xyz, _19081).xyz, vec3(_20711 * (sqrt(_20711) + _17225))));\n \t    uvec2 _6814 = uvec2(_18180.xy - PerViewConstantBuffer_t._m0.xy) >> _7663;\n \t    uint _19949 = PerViewLightingConstantBufferGpu_t._m11.y + (((_6814.y * PerViewLightingConstantBufferGpu_t._m12.y) + _6814.x) * PerViewLightingConstantBufferGpu_t._m11.z);\n \t    uint _23394 = PerViewLightingConstantBufferGpu_t._m11.x + (uint(clamp(_6864 * PerViewLightingConstantBufferGpu_t._m13.x, 0.0, PerViewLightingConstantBufferGpu_t._m13.y)) * PerViewLightingConstantBufferGpu_t._m11.z);\n@@ -1734,15 +1745,15 @@ PS\n \t        continue;\n \t    }\n \t    vec3 _20869 = _19257.xyz;\n-\t    float _20784 = max(0.0, dot(_20869, _6521));\n+\t    float _20784 = max(0.0, dot(_20869, _6520));\n \t    vec4 _11487 = textureLod(sampler2DArray(g_tBRDFLookup, g_sBilinearClamp), vec3((vec2(_17751, sqrt(1.0 - _20784)) * 0.984375) + vec2(0.0078125), 1.0).xyz, 0.0);\n \t    vec3 _18985 = mix(_11487.xxx, _11487.yyy, _17639);\n \t    float _10020;\n \t    vec3 _23440;\n \t    SPIRV_CROSS_BRANCH\n \t    if (_14874)\n \t    {\n-\t        float _7173 = dot(normalize(_6521 + _20869).xyz, _6521);\n+\t        float _7173 = dot(normalize(_6520 + _20869).xyz, _6520);\n \t        float _22187 = max(_17225, 9.9999997473787516355514526367188e-06);\n \t        float _21363 = saturate(_20784 + 0.001000000047497451305389404296875);\n \t        _10020 = 1.0 - _11543;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_unlitgeneric.slang",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -382,9 +382,9 @@ PS\n \t};\n \t\n \tTexture2D<float4> g_tColor : register(t51, space1);\n-\tSamplerState g_sUserConfigAllowGlobalMipBias : register(s20, space1);\n+\tSamplerState g_sUserConfigAllowGlobalMipBias : register(s21, space1);\n \tTextureCube<float4> g_tFogCubeTexture : register(t42, space1);\n-\tSamplerState g_sTrilinearClamp : register(s17, space1);\n+\tSamplerState g_sTrilinearClamp : register(s18, space1);\n \t\n \tstatic float4 input_2;\n \tstatic float4 input_3;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_vertexlitgeneric.slang",
          "status": "modified",
          "additions": 122,
          "deletions": 111,
          "changes": 233,
          "patch": "@@ -390,7 +390,7 @@ PS\n \tTexture2D g_tNormal < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureNormal, TextureRoughness), Linear); OutputFormat(BC7); SrgbRead(false); >;\n \tTexture2D g_tSelfIllumMask < Channel(RGB, Box(TextureSelfIllumMask), Srgb); OutputFormat(DXT1); SrgbRead(true); >;\n \tTexture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat3 g_vSelfIllumTintScaled < UiType(VectorText); Expression(pow(2,g_flSelfIllumBrightness).x*g_flSelfIllumScale.x*SrgbGammaToLinear(g_vSelfIllumTint.xyz)); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n@@ -460,17 +460,17 @@ PS\n \t// Source 2 Viewer - https://valveresourceformat.github.io\n \t// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup\n \t\n-\tstruct _2620\n+\tstruct _2872\n \t{\n \t    float4 _m0[3];\n \t};\n \t\n-\tstruct _2830\n+\tstruct _71\n \t{\n \t    float4 _m0[4];\n \t};\n \t\n-\tstruct _1023\n+\tstruct _2139\n \t{\n \t    column_major float4x4 _m0[4];\n \t};\n@@ -508,22 +508,22 @@ PS\n \t\n \tcbuffer _Globals_ : register(b0, space1)\n \t{\n-\t    uint _Globals_1_g_sTrilinearWrap : packoffset(c0.z);\n-\t    uint _Globals_1_g_sTrilinearClamp : packoffset(c0.w);\n-\t    uint _Globals_1_g_sPointClamp : packoffset(c1);\n-\t    uint _Globals_1_g_sUserConfig : packoffset(c1.w);\n-\t    uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c2);\n-\t    uint _Globals_1_g_sCookieSampler : packoffset(c2.z);\n-\t    uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c2.w);\n-\t    int _Globals_1_g_bFogEnabled : packoffset(c3.y);\n-\t    int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c3.z);\n-\t    int _Globals_1_g_bRenderBackfaceNormals : packoffset(c3.w);\n-\t    uint _Globals_1_g_tColor : packoffset(c7.w);\n-\t    uint _Globals_1_g_tNormal : packoffset(c8);\n-\t    uint _Globals_1_g_tAmbientOcclusion : packoffset(c8.w);\n-\t    float _Globals_1_g_flAmbientOcclusionScale : packoffset(c9);\n-\t    uint _Globals_1_g_tMetalness : packoffset(c9.y);\n-\t    float _Globals_1_g_flInverseBlendTint : packoffset(c9.z);\n+\t    uint _Globals_1_g_sTrilinearWrap : packoffset(c0.w);\n+\t    uint _Globals_1_g_sTrilinearClamp : packoffset(c1);\n+\t    uint _Globals_1_g_sPointClamp : packoffset(c1.y);\n+\t    uint _Globals_1_g_sUserConfig : packoffset(c2);\n+\t    uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c2.y);\n+\t    uint _Globals_1_g_sCookieSampler : packoffset(c2.w);\n+\t    uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c3);\n+\t    int _Globals_1_g_bFogEnabled : packoffset(c3.z);\n+\t    int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c3.w);\n+\t    int _Globals_1_g_bRenderBackfaceNormals : packoffset(c4);\n+\t    uint _Globals_1_g_tColor : packoffset(c8);\n+\t    uint _Globals_1_g_tNormal : packoffset(c8.y);\n+\t    uint _Globals_1_g_tAmbientOcclusion : packoffset(c9);\n+\t    float _Globals_1_g_flAmbientOcclusionScale : packoffset(c9.y);\n+\t    uint _Globals_1_g_tMetalness : packoffset(c9.z);\n+\t    float _Globals_1_g_flInverseBlendTint : packoffset(c9.w);\n \t};\n \t\n \tcbuffer PerViewConstantBufferCsgo_t : register(b3, space1)\n@@ -552,8 +552,8 @@ PS\n \t\n \tcbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)\n \t{\n-\t    _2620 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);\n-\t    _2830 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);\n+\t    _2872 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);\n+\t    _71 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c16);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c17);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c18);\n@@ -569,8 +569,8 @@ PS\n \t    float PerViewLightingConstantBufferGpu_t_1_m14 : packoffset(c1955.y);\n \t    float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.z);\n \t    float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.w);\n-\t    _1023 PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1956);\n-\t    _2830 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1988);\n+\t    _2139 PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1956);\n+\t    _71 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1988);\n \t    uint PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1996);\n \t    uint PerViewLightingConstantBufferGpu_t_1_m20 : packoffset(c1996.y);\n \t};\n@@ -748,104 +748,115 @@ PS\n \t    {\n \t        _21710 = 1.0f;\n \t    }\n-\t    float _21711;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t_1_m8.xyz, _24735);\n+\t    float _12320;\n \t    [branch]\n-\t    if (PerViewLightingConstantBufferGpu_t_1_m10 != 0)\n+\t    if (_8634 > 0.0f)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13136;\n-\t        float3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n+\t        float _12503;\n+\t        [branch]\n+\t        if (PerViewLightingConstantBufferGpu_t_1_m10 != 0)\n \t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m10))\n-\t            {\n-\t                _13136 = 1.0f;\n-\t                _14975 = 0.0f.xxx;\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_13039], float4(input_1.xyz, 1.0f));\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m12[_13039])\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13136;\n+\t            float3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                float3 _19470 = float3(_12779, _18322.yz);\n-\t                float2 _24804 = _19470.xy;\n-\t                float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m14.xx) + PerViewLightingConstantBufferGpu_t_1_m13.xx, 0.0f.xx, 1.0f.xx);\n-\t                float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].xy;\n-\t                float3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13136 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20488;\n-\t                _10191 = _13039;\n-\t                break;\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m10))\n+\t                {\n+\t                    _13136 = 1.0f;\n+\t                    _14975 = 0.0f.xxx;\n+\t                    _10191 = -1;\n+\t                    break;\n+\t                }\n+\t                float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_13039], float4(input_1.xyz, 1.0f));\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m12[_13039])\n+\t                {\n+\t                    float3 _19470 = float3(_12779, _18322.yz);\n+\t                    float2 _24804 = _19470.xy;\n+\t                    float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m14.xx) + PerViewLightingConstantBufferGpu_t_1_m13.xx, 0.0f.xx, 1.0f.xx);\n+\t                    float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].xy;\n+\t                    float3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13136 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20488;\n+\t                    _10191 = _13039;\n+\t                    break;\n+\t                }\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n \t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n-\t        {\n-\t            float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m11));\n-\t            float _12501;\n-\t            [branch]\n-\t            if (_13136 < 1.0f)\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m10 - 1))\n+\t                float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m11));\n+\t                float _12501;\n+\t                [branch]\n+\t                if (_13136 < 1.0f)\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_15335], float4(input_1.xyz, 1.0f));\n-\t                    float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].xy;\n-\t                    float3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m11));\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m10 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_15335], float4(input_1.xyz, 1.0f));\n+\t                        float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].xy;\n+\t                        float3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m11));\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0f;\n+\t                    }\n+\t                    _12501 = lerp(_7934, _18270, _13136);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0f;\n+\t                    _12501 = _18270;\n \t                }\n-\t                _12501 = lerp(_7934, _18270, _13136);\n+\t                _19363 = _12501;\n \t            }\n \t            else\n \t            {\n-\t                _12501 = _18270;\n+\t                _19363 = 1.0f;\n \t            }\n-\t            _19363 = _12501;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0f;\n-\t        }\n-\t        float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m16) + PerViewLightingConstantBufferGpu_t_1_m15));\n-\t        float _12502;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);\n+\t            float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m16) + PerViewLightingConstantBufferGpu_t_1_m15));\n+\t            float _12502;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12502 = _13279;\n+\t            }\n+\t            _12503 = _12502;\n \t        }\n \t        else\n \t        {\n-\t            _12502 = _13279;\n+\t            _12503 = 1.0f;\n \t        }\n-\t        _21711 = _12502;\n+\t        _12320 = _12503;\n \t    }\n \t    else\n \t    {\n-\t        _21711 = 1.0f;\n+\t        _12320 = 1.0f;\n \t    }\n-\t    float3 _21712;\n+\t    float3 _21711;\n \t    [branch]\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t_1_m8.xyz, _24735) * _21711) > 0.0f)\n+\t    if ((_8634 * _12320) > 0.0f)\n \t    {\n-\t        _21712 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (max(0.0f, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t_1_m8.xyz)).xxx.xyz * (PerViewLightingConstantBufferGpu_t_1_m9.xyz * _21711).xyz);\n+\t        _21711 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (max(0.0f, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t_1_m8.xyz)).xxx.xyz * (PerViewLightingConstantBufferGpu_t_1_m9.xyz * _12320).xyz);\n \t    }\n \t    else\n \t    {\n-\t        _21712 = PerViewLightingConstantBufferGpu_t_1_m4.xyz;\n+\t        _21711 = PerViewLightingConstantBufferGpu_t_1_m4.xyz;\n \t    }\n \t    bool4 _24466 = bool4(PerViewConstantBufferCsgo_t_1_m1.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m1.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m1.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m1.w != int4(0, 0, 0, 0).w);\n \t    bool _20060 = _24466.x;\n@@ -869,7 +880,7 @@ PS\n \t    uint _10838 = PerViewLightingConstantBufferGpu_t_1_m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t_1_m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t_1_m5.z);\n \t    uint _23393 = PerViewLightingConstantBufferGpu_t_1_m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t_1_m7.x, 0.0f, PerViewLightingConstantBufferGpu_t_1_m7.y)) * PerViewLightingConstantBufferGpu_t_1_m5.z);\n \t    float3 _13155;\n-\t    _13155 = _21712;\n+\t    _13155 = _21711;\n \t    uint _21567;\n \t    float3 _13156;\n \t    uint _16208 = 0u;\n@@ -882,7 +893,7 @@ PS\n \t        uint _14475 = WaveActiveBitOr(g_CullBits.Load<uint>((_10838 + _16208) * 4 + 0) & g_CullBits.Load<uint>((_23393 + _16208) * 4 + 0));\n \t        _13156 = _13155;\n \t        uint _20344;\n-\t        float3 _12504;\n+\t        float3 _12505;\n \t        uint _16209 = _14475;\n \t        for (;;)\n \t        {\n@@ -925,7 +936,7 @@ PS\n \t                }\n \t                if (_12887)\n \t                {\n-\t                    _12504 = _13156;\n+\t                    _12505 = _13156;\n \t                    break;\n \t                }\n \t                float _23571 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;\n@@ -1035,7 +1046,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    float3 _12503;\n+\t                    float3 _12504;\n \t                    if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)\n \t                    {\n \t                        float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);\n@@ -1051,7 +1062,7 @@ PS\n \t                        float3 _20491 = _14081;\n \t                        _20491.x = _20564.x;\n \t                        _20491.y = _20564.y;\n-\t                        _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20491.xyz, 0.0f).xyz;\n+\t                        _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20491.xyz, 0.0f).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -1060,13 +1071,13 @@ PS\n \t                        float3 _20490 = _13791;\n \t                        _20490.x = _20563.x;\n \t                        _20490.y = _20563.y;\n-\t                        _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20490.xyz, 0.0f).xyz;\n+\t                        _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20490.xyz, 0.0f).xyz;\n \t                    }\n-\t                    _21548 = _12503;\n+\t                    _21548 = _12504;\n \t                }\n \t                if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))\n \t                {\n-\t                    _12504 = _13156;\n+\t                    _12505 = _13156;\n \t                    break;\n \t                }\n \t                float3 _19630;\n@@ -1089,7 +1100,7 @@ PS\n \t                    float3 _16449 = _20482.xyz;\n \t                    if (all(bool3(_16449.x == 0.0f.xxx.x, _16449.y == 0.0f.xxx.y, _16449.z == 0.0f.xxx.z)))\n \t                    {\n-\t                        _12504 = _13156;\n+\t                        _12505 = _13156;\n \t                        break;\n \t                    }\n \t                    _19630 = _20482;\n@@ -1098,10 +1109,10 @@ PS\n \t                {\n \t                    _19630 = _21548;\n \t                }\n-\t                _12504 = _13156.xyz + (max(0.0f, dot(_14786.xyz, _11179.xyz)).xxx.xyz * _19630.xyz);\n+\t                _12505 = _13156.xyz + (max(0.0f, dot(_14786.xyz, _11179.xyz)).xxx.xyz * _19630.xyz);\n \t                break;\n \t            } while(false);\n-\t            _13156 = _12504;\n+\t            _13156 = _12505;\n \t            _16209 = _20344;\n \t            continue;\n \t        }\n@@ -1712,12 +1723,12 @@ RTX\n \t    vec4 _509 = vec4(g_MaterialData_1._member0[(_471 + 288u) / 4u], g_MaterialData_1._member0[(_471 + 292u) / 4u], g_MaterialData_1._member0[(_471 + 296u) / 4u], g_MaterialData_1._member0[(_471 + 300u) / 4u]);\n \t    bool _508 = g_MaterialData_3._member0[(_471 + 308u) / 4u] != 0;\n \t    bool _507 = g_MaterialData_3._member0[(_471 + 312u) / 4u] != 0;\n-\t    uint _506 = g_MaterialData_5._member0[(_471 + 348u) / 4u];\n-\t    uint _505 = g_MaterialData_5._member0[(_471 + 352u) / 4u];\n-\t    uint _504 = g_MaterialData_5._member0[(_471 + 356u) / 4u];\n-\t    uint _503 = g_MaterialData_5._member0[(_471 + 360u) / 4u];\n-\t    uint _502 = g_MaterialData_5._member0[(_471 + 380u) / 4u];\n-\t    float _501 = g_MaterialData_1._member0[(_471 + 384u) / 4u];\n+\t    uint _506 = g_MaterialData_5._member0[(_471 + 352u) / 4u];\n+\t    uint _505 = g_MaterialData_5._member0[(_471 + 356u) / 4u];\n+\t    uint _504 = g_MaterialData_5._member0[(_471 + 360u) / 4u];\n+\t    uint _503 = g_MaterialData_5._member0[(_471 + 364u) / 4u];\n+\t    uint _502 = g_MaterialData_5._member0[(_471 + 384u) / 4u];\n+\t    float _501 = g_MaterialData_1._member0[(_471 + 388u) / 4u];\n \t    uvec3 _601;\n \t    do\n \t    {"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_water.slang",
          "status": "modified",
          "additions": 4,
          "deletions": 4,
          "changes": 8,
          "patch": "@@ -344,7 +344,7 @@ PS\n \tTexture2D g_tSceneDepth < Attribute(\"FramebufferDepthTexture\"); SrgbRead(false); >;\n \tTexture2D g_tShadowDepthBufferDepth < Attribute(\"ShadowDepthBuffer\"); SrgbRead(false); >;\n \tTexture2D g_tSsao < Attribute(\"SSAOOcclusionFactor\"); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat2 g_vRoughness < UiType(VectorText); Expression(max(.01,1-g_flGlossiness).x); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n@@ -392,7 +392,7 @@ PS\n \t// Specular\n \tfloat g_flReflectionPower < Default(1); Range(0.01, 10); UiType(Slider); UiGroup(\"Specular\"); >;\n \tfloat3 g_vReflectionColor < Default3(1, 1, 1); UiType(Color); UiGroup(\"Specular\"); Expression(SrgbGammaToLinear(this)); >;\n-\tfloat3 g_vReflectionDir < Default(0); Range3(-1, -1, -1, 1, 1, 1); UiType(VectorText); UiGroup(\"Specular\"); >;\n+\tfloat3 g_vReflectionDir < Default3(0, 0, 1); Range3(-1, -1, -1, 1, 1, 1); UiType(VectorText); UiGroup(\"Specular\"); >;\n \t\n \t// Refractions\n \tfloat g_flRefractionAmount < Default(1); UiType(Slider); UiGroup(\"Refractions\"); >;\n@@ -503,9 +503,9 @@ PS\n \t    uint _m0[];\n \t} g_CullBits_1;\n \t\n-\tlayout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;\n+\tlayout(set = 1, binding = 19) uniform sampler g_sTrilinearClamp;\n \tlayout(set = 1, binding = 53) uniform texture2D g_tNormal;\n-\tlayout(set = 1, binding = 27) uniform sampler DefaultSamplerState_0;\n+\tlayout(set = 1, binding = 28) uniform sampler DefaultSamplerState_0;\n \tlayout(set = 1, binding = 55) uniform texture2D g_tSceneDepth;\n \tlayout(set = 1, binding = 14) uniform sampler AddressU_Clamp_AddressV_Clamp_Filter_MinMagMipPoint;\n \tlayout(set = 1, binding = 41) uniform textureCubeArray g_tFallbackCubemap;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_water_fancy.slang",
          "status": "modified",
          "additions": 116,
          "deletions": 105,
          "changes": 221,
          "patch": "@@ -324,7 +324,7 @@ PS\n \tTexture2D g_tWaterEffectsMap < Attribute(\"WaterEffectsTexture\"); SrgbRead(false); >;\n \tTexture2D g_tWavesNormalHeight < Channel(RG, Box(TextureWavesNormal), Linear); Channel(B, Box(TextureWavesHeight), Linear); OutputFormat(BC7); SrgbRead(false); >;\n \tTexture2D g_tZerothMoment < Attribute(\"zeroth_moment\"); SrgbRead(true); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat2 g_vRoughness < UiType(VectorText); Expression(max(.01,1-g_flGlossiness).x); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \tfloat4 g_vViewportExtentsTs < Attribute(\"ViewportExtents\"); UiType(VectorText); >;\n@@ -646,18 +646,18 @@ PS\n \tlayout(set = 1, binding = 59) uniform texture2D g_tZerothMoment;\n \tlayout(set = 1, binding = 30) uniform texture2D g_tBlueNoise;\n \tlayout(set = 1, binding = 56) uniform texture2D g_tWavesNormalHeight;\n-\tlayout(set = 1, binding = 28) uniform sampler DefaultSamplerState_0;\n+\tlayout(set = 1, binding = 29) uniform sampler DefaultSamplerState_0;\n \tlayout(set = 1, binding = 55) uniform texture2D g_tFoam;\n-\tlayout(set = 1, binding = 19) uniform sampler g_sUserConfig;\n+\tlayout(set = 1, binding = 20) uniform sampler g_sUserConfig;\n \tlayout(set = 1, binding = 53) uniform texture2D g_tDebris;\n-\tlayout(set = 1, binding = 27) uniform sampler DefaultSamplerState_0_1;\n+\tlayout(set = 1, binding = 28) uniform sampler DefaultSamplerState_0_1;\n \tlayout(set = 1, binding = 54) uniform texture2D g_tDebrisNormal;\n-\tlayout(set = 1, binding = 22) uniform sampler g_sCookieSampler;\n-\tlayout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n+\tlayout(set = 1, binding = 23) uniform sampler g_sCookieSampler;\n+\tlayout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n \tlayout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;\n \tlayout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;\n-\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;\n-\tlayout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;\n+\tlayout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;\n+\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;\n \tlayout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;\n \tlayout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;\n \tlayout(set = 1, binding = 60) uniform texture2D g_tMoitFinal;\n@@ -863,7 +863,7 @@ PS\n \t    float _21881 = _20669.z;\n \t    float _12091 = _19338.z;\n \t    float _13724 = _19777.x;\n-\t    float _4812 = max(_12091, _21881) + (sin(_13724) * 0.125);\n+\t    float _20633 = saturate(max(_12091, _21881) + (sin(_13724) * 0.125));\n \t    float _16487 = saturate(_13154 * (1.0 + (_11187 * 0.480000019073486328125)));\n \t    float _8031 = pow(_13151.z, 1.5);\n \t    vec2 _17162 = ((((_13940 / vec2(_Globals_.g_flDebrisScale)) + ((_9431 * _Globals_.g_flDebrisWobble) * (1.0 - _7010))) + ((_5201.xy * ((1.0 + ((sin(_13151.z * 50.0) * 4.0) * saturate(0.100000001490116119384765625 - _8031))) * _8031)) * 0.100000001490116119384765625)) + ((_3085 * (0.100000001490116119384765625 + _13151.z)) * 0.0199999995529651641845703125)).xy;\n@@ -880,7 +880,7 @@ PS\n \t    vec3 _8674;\n \t    _8674.x = _11003.x;\n \t    _8674.y = _11003.y;\n-\t    float _12904 = saturate((((_16487 * _4812) * 0.25) + (saturate(_16487 - (1.0 - _4812)) * 0.75)) - _4500);\n+\t    float _12904 = saturate((((_16487 * _20633) * 0.25) + (saturate(_16487 - (1.0 - _20633)) * 0.75)) - _4500);\n \t    float _11140 = mix(_15224, (_11187 * 30.0) + _3542, _4500);\n \t    bool _10979 = !_20058;\n \t    vec3 _10932;\n@@ -949,101 +949,111 @@ PS\n \t    float _3039 = (saturate((1.0 - _6806) + _19396) * saturate(1.0 - (_12904 * 4.0))) * (1.0 - _9206);\n \t    vec3 _13711 = input_2.xyz + (((-_11306) * (vec3(_11140 * (-1.0)) + (((mix(_19777.xxx, vec3(_19777.xy, 0.0), vec3(0.100000001490116119384765625)) * 90.0) * pow(_3039, 2.0)) + vec3(_Globals_.g_flWaterPlaneOffset)))) * mix(1.0, _6655 * 2.0, 0.75));\n \t    vec4 _23875 = vec4(_9982.xyz, 1.0);\n-\t    vec3 _6606 = _13711.xyz;\n-\t    float _25086;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m5.xyz, _9982.xyz);\n+\t    float _24801;\n \t    SPIRV_CROSS_BRANCH\n-\t    if (PerViewLightingConstantBufferGpu_t._m7 != 0)\n+\t    if (_8634 > 0.0)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13139;\n-\t        vec3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n+\t        float _12504;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m7 != 0)\n \t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t._m7))\n-\t            {\n-\t                _13139 = 1.0;\n-\t                _14975 = vec3(0.0);\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            vec4 _18322 = vec4(_13711.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_13039];\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m9[_13039])\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13139;\n+\t            vec3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                vec3 _19470 = vec3(_12779, _18322.yz);\n-\t                vec2 _24805 = _19470.xy;\n-\t                vec2 _22193 = vec2(1.0) - saturate((abs(_24805) * vec2(PerViewLightingConstantBufferGpu_t._m11)) + vec2(PerViewLightingConstantBufferGpu_t._m10));\n-\t                vec2 _20561 = (_24805 * PerViewLightingConstantBufferGpu_t._m15._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_13039].xy;\n-\t                vec3 _20491 = _19470;\n-\t                _20491.x = _20561.x;\n-\t                _20491.y = _20561.y;\n-\t                _13139 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20491;\n-\t                _10191 = _13039;\n-\t                break;\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t._m7))\n+\t                {\n+\t                    _13139 = 1.0;\n+\t                    _14975 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n+\t                }\n+\t                vec4 _18322 = vec4(_13711.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_13039];\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m9[_13039])\n+\t                {\n+\t                    vec3 _19470 = vec3(_12779, _18322.yz);\n+\t                    vec2 _24805 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24805) * vec2(PerViewLightingConstantBufferGpu_t._m11)) + vec2(PerViewLightingConstantBufferGpu_t._m10));\n+\t                    vec2 _20561 = (_24805 * PerViewLightingConstantBufferGpu_t._m15._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_13039].xy;\n+\t                    vec3 _20491 = _19470;\n+\t                    _20491.x = _20561.x;\n+\t                    _20491.y = _20561.y;\n+\t                    _13139 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20491;\n+\t                    _10191 = _13039;\n+\t                    break;\n+\t                }\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n \t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _7258;\n-\t        if (_10191 >= 0)\n-\t        {\n-\t            float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);\n-\t            float _12501;\n-\t            SPIRV_CROSS_BRANCH\n-\t            if (_13139 < 1.0)\n+\t            float _7258;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t._m7 - 1))\n+\t                float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);\n+\t                float _12501;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13139 < 1.0)\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    vec4 _19672 = vec4(_13711.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_15335];\n-\t                    vec2 _20562 = (_19672.xy * PerViewLightingConstantBufferGpu_t._m15._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_15335].xy;\n-\t                    vec3 _20492;\n-\t                    _20492.x = _20562.x;\n-\t                    _20492.y = _20562.y;\n-\t                    _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20492.xy, saturate(_19672.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m7 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19672 = vec4(_13711.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_15335];\n+\t                        vec2 _20562 = (_19672.xy * PerViewLightingConstantBufferGpu_t._m15._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_15335].xy;\n+\t                        vec3 _20492;\n+\t                        _20492.x = _20562.x;\n+\t                        _20492.y = _20562.y;\n+\t                        _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20492.xy, saturate(_19672.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0;\n+\t                    }\n+\t                    _12501 = mix(_7934, _18270, _13139);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0;\n+\t                    _12501 = _18270;\n \t                }\n-\t                _12501 = mix(_7934, _18270, _13139);\n+\t                _7258 = _12501;\n \t            }\n \t            else\n \t            {\n-\t                _12501 = _18270;\n+\t                _7258 = 1.0;\n \t            }\n-\t            _7258 = _12501;\n-\t        }\n-\t        else\n-\t        {\n-\t            _7258 = 1.0;\n-\t        }\n-\t        float _15295 = mix(_7258, 1.0, saturate((distance(_24633.xyz, PerViewConstantBuffer_t._m5) * PerViewLightingConstantBufferGpu_t._m13) + PerViewLightingConstantBufferGpu_t._m12));\n-\t        float _12503;\n-\t        if (notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0)).y)\n-\t        {\n-\t            _12503 = min(_15295, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_21640.xy * PerViewConstantBuffer_t._m4.xy).xy, 0.0).z);\n+\t            float _15295 = mix(_7258, 1.0, saturate((distance(_24633.xyz, PerViewConstantBuffer_t._m5) * PerViewLightingConstantBufferGpu_t._m13) + PerViewLightingConstantBufferGpu_t._m12));\n+\t            float _12503;\n+\t            if (notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0)).y)\n+\t            {\n+\t                _12503 = min(_15295, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_21640.xy * PerViewConstantBuffer_t._m4.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12503 = _15295;\n+\t            }\n+\t            _12504 = _12503;\n \t        }\n \t        else\n \t        {\n-\t            _12503 = _15295;\n+\t            _12504 = 1.0;\n \t        }\n-\t        _25086 = _12503;\n+\t        _24801 = _12504;\n \t    }\n \t    else\n \t    {\n-\t        _25086 = 1.0;\n+\t        _24801 = 1.0;\n \t    }\n-\t    float _12256 = mix(_25086, 1.0, _3039 * 0.5);\n+\t    float _15858 = mix(_24801, 1.0, _3039 * 0.5);\n \t    vec3 _21709;\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t._m5.xyz, _9982.xyz) * _12256) > 0.0)\n+\t    if ((_8634 * _15858) > 0.0)\n \t    {\n-\t        _21709 = PerViewLightingConstantBufferGpu_t._m1.xyz + (vec3(max(0.0, dot(_9982.xyz, PerViewLightingConstantBufferGpu_t._m5.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m6.xyz * _12256).xyz);\n+\t        _21709 = PerViewLightingConstantBufferGpu_t._m1.xyz + (vec3(max(0.0, dot(_9982.xyz, PerViewLightingConstantBufferGpu_t._m5.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m6.xyz * _15858).xyz);\n \t    }\n \t    else\n \t    {\n@@ -1084,7 +1094,7 @@ PS\n \t        uint _14476 = subgroupOr(g_CullBits_1._m0[_10838 + _16208] & g_CullBits_1._m0[_23393 + _16208]);\n \t        _13156 = _13155;\n \t        uint _20344;\n-\t        vec3 _12505;\n+\t        vec3 _12506;\n \t        uint _16209 = _14476;\n \t        for (;;)\n \t        {\n@@ -1096,6 +1106,7 @@ PS\n \t            _20344 = _16209 & (_16209 - 1u);\n \t            do\n \t            {\n+\t                vec3 _14644 = _13711.xyz;\n \t                vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(_13711.xyz, 1.0);\n \t                vec3 _10521 = _24893.xyz / vec3(_24893.w);\n \t                vec4 _22905;\n@@ -1120,11 +1131,11 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    _12886 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(_6606, 1.0)).xyz), vec3(1.0)));\n+\t                    _12886 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(_14644, 1.0)).xyz), vec3(1.0)));\n \t                }\n \t                if (_12886)\n \t                {\n-\t                    _12505 = _13156;\n+\t                    _12506 = _13156;\n \t                    break;\n \t                }\n \t                float _23571 = 2.0 * g_BarnLights_1._m0[_12608]._m5.y;\n@@ -1156,7 +1167,7 @@ PS\n \t                float _11633;\n \t                if (g_BarnLights_1._m0[_12608]._m2.w != 0.0)\n \t                {\n-\t                    vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - _6606;\n+\t                    vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - _14644;\n \t                    float _18345 = dot(_10017, _10017);\n \t                    float _17648 = sqrt(_18345);\n \t                    vec3 _12302 = _10017 - _16268;\n@@ -1234,7 +1245,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    vec3 _12504;\n+\t                    vec3 _12505;\n \t                    if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)\n \t                    {\n \t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);\n@@ -1250,7 +1261,7 @@ PS\n \t                        vec3 _20494 = _14081;\n \t                        _20494.x = _20564.x;\n \t                        _20494.y = _20564.y;\n-\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20494.xyz, 0.0).xyz;\n+\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20494.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -1259,13 +1270,13 @@ PS\n \t                        vec3 _20493 = _13791;\n \t                        _20493.x = _20563.x;\n \t                        _20493.y = _20563.y;\n-\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20493.xyz, 0.0).xyz;\n+\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20493.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12504;\n+\t                    _21548 = _12505;\n \t                }\n \t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n-\t                    _12505 = _13156;\n+\t                    _12506 = _13156;\n \t                    break;\n \t                }\n \t                vec3 _19630;\n@@ -1287,7 +1298,7 @@ PS\n \t                    vec3 _20482 = _21548.xyz * mix(1.0, textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy, saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0), g_BarnLights_1._m0[_12608]._m12);\n \t                    if (all(equal(_20482.xyz, vec3(0.0))))\n \t                    {\n-\t                        _12505 = _13156;\n+\t                        _12506 = _13156;\n \t                        break;\n \t                    }\n \t                    _19630 = _20482;\n@@ -1296,10 +1307,10 @@ PS\n \t                {\n \t                    _19630 = _21548;\n \t                }\n-\t                _12505 = _13156.xyz + (vec3(max(0.0, dot(_9982.xyz, _11179.xyz))).xyz * _19630.xyz);\n+\t                _12506 = _13156.xyz + (vec3(max(0.0, dot(_9982.xyz, _11179.xyz))).xyz * _19630.xyz);\n \t                break;\n \t            } while(false);\n-\t            _13156 = _12505;\n+\t            _13156 = _12506;\n \t            _16209 = _20344;\n \t            continue;\n \t        }\n@@ -1340,43 +1351,43 @@ PS\n \t    }\n \t    else\n \t    {\n-\t        vec3 _12510;\n+\t        vec3 _12511;\n \t        if (_17518 == 1.0)\n \t        {\n-\t            _12510 = vec3(_9493, 0.75, 0.0);\n+\t            _12511 = vec3(_9493, 0.75, 0.0);\n \t        }\n \t        else\n \t        {\n-\t            vec3 _12509;\n+\t            vec3 _12510;\n \t            if (_17518 == 2.0)\n \t            {\n-\t                _12509 = vec3(0.0, 0.75, _14751);\n+\t                _12510 = vec3(0.0, 0.75, _14751);\n \t            }\n \t            else\n \t            {\n-\t                vec3 _12508;\n+\t                vec3 _12509;\n \t                if (_17518 == 3.0)\n \t                {\n-\t                    _12508 = vec3(0.0, _9493, 0.75);\n+\t                    _12509 = vec3(0.0, _9493, 0.75);\n \t                }\n \t                else\n \t                {\n-\t                    vec3 _12506;\n+\t                    vec3 _12508;\n \t                    if (_17518 == 4.0)\n \t                    {\n-\t                        _12506 = vec3(_14751, 0.0, 0.75);\n+\t                        _12508 = vec3(_14751, 0.0, 0.75);\n \t                    }\n \t                    else\n \t                    {\n-\t                        _12506 = vec3(0.75, 0.0, _9493);\n+\t                        _12508 = vec3(0.75, 0.0, _9493);\n \t                    }\n-\t                    _12508 = _12506;\n+\t                    _12509 = _12508;\n \t                }\n-\t                _12509 = _12508;\n+\t                _12510 = _12509;\n \t            }\n-\t            _12510 = _12509;\n+\t            _12511 = _12510;\n \t        }\n-\t        _21710 = _12510;\n+\t        _21710 = _12511;\n \t    }\n \t    _17843.x = _20158.x;\n \t    _17843.y = _20158.y;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_weapon.slang",
          "status": "modified",
          "additions": 581,
          "deletions": 355,
          "changes": 936,
          "patch": "@@ -76,8 +76,8 @@ struct VS_INPUT\n {\n \tfloat4 vBlendIndices              : BLENDINDICES0  < Semantic( BlendIndices ); >;              // D_CS_VERTEX_ANIMATION=0, S_MODE_TOOLS_VIS=1\n \tfloat4 vPerVertexLighting         : COLOR1         < Semantic( PerVertexLighting ); >;         // D_BAKED_LIGHTING_FROM_VERTEX_STREAM=1\n-\tuint4  nPackedFrame               : NORMAL0        < Semantic( CompressedTangentFrame ); >;   \n-\tfloat4 vNormalOs                  : NORMAL0        < Semantic( Normal ); >;                   \n+\tuint4  nPackedFrame               : NORMAL0        < Semantic( CompressedTangentFrame ); >;    // D_COMPRESSED_NORMALS_AND_TANGENTS=1\n+\tfloat4 vNormalOs                  : NORMAL0        < Semantic( Normal ); >;                    // D_COMPRESSED_NORMALS_AND_TANGENTS=0\n \tfloat3 vPositionOs                : POSITION0      < Semantic( PosXyz ); >;                   \n \tfloat4 vTangentUOs_flTangentVSign : TANGENT0       < Semantic( TangentU_SignV ); >;           \n \tfloat2 vLightmapUV                : TEXCOORD3      < Semantic( LightmapUV ); >;                // D_BAKED_LIGHTING_FROM_LIGHTMAP=1\n@@ -242,11 +242,12 @@ VS\n \tlayout(location = 0) out vec3 output_0;\n \tlayout(location = 1) out vec3 output_1;\n \tlayout(location = 2) out vec3 output_2;\n-\tlayout(location = 3) out vec4 output_3;\n-\tlayout(location = 4) centroid out vec4 output_4;\n-\tlayout(location = 5) centroid out vec3 output_5;\n-\tlayout(location = 6) out vec4 output_6;\n-\tlayout(location = 7) flat out uint output_7;\n+\tlayout(location = 3) out vec3 output_3;\n+\tlayout(location = 4) out vec4 output_4;\n+\tlayout(location = 5) centroid out vec4 output_5;\n+\tlayout(location = 6) centroid out vec3 output_6;\n+\tlayout(location = 7) out vec4 output_7;\n+\tlayout(location = 8) flat out uint output_8;\n \t\n \tvoid main()\n \t{\n@@ -357,13 +358,14 @@ VS\n \t    vec4 _10630 = _22186;\n \t    _10630.z = _22186.z + _Globals_.g_flZBias;\n \t    output_0 = vPositionOs;\n-\t    output_1 = _10020.xyz - PerViewConstantBufferCsgo_t._m0.xyz;\n-\t    output_2 = _11179;\n-\t    output_3 = vec4(_13593.xy + (_Globals_.g_vTexCoordScrollSpeed.xy * PerViewConstantBuffer_t._m1), vTexCoord2);\n-\t    output_4 = _23714;\n-\t    output_5 = _11179;\n-\t    output_6 = vec4(normalize(vec4(vTangentUOs_flTangentVSign.xyz, 0.0) * g_transformBuffer_1._m0[_21785]._m0), vTangentUOs_flTangentVSign.w);\n-\t    output_7 = g_instanceBuffer_1._m0[nInstanceIdx]._m5 & 65535u;\n+\t    output_1 = vNormalOs;\n+\t    output_2 = _10020.xyz - PerViewConstantBufferCsgo_t._m0.xyz;\n+\t    output_3 = _11179;\n+\t    output_4 = vec4(_13593.xy + (_Globals_.g_vTexCoordScrollSpeed.xy * PerViewConstantBuffer_t._m1), vTexCoord2);\n+\t    output_5 = _23714;\n+\t    output_6 = _11179;\n+\t    output_7 = vec4(normalize(vec4(vTangentUOs_flTangentVSign.xyz, 0.0) * g_transformBuffer_1._m0[_21785]._m0), vTangentUOs_flTangentVSign.w);\n+\t    output_8 = g_instanceBuffer_1._m0[nInstanceIdx]._m5 & 65535u;\n \t    _10630.y = -_22186.y;\n \t    gl_Position = _10630;\n \t}\n@@ -497,7 +499,9 @@ PS\n \tTexture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;\n \tfloat3 g_vAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.045,.4,1.15).x,-1.4427*log(max(.0001,1-float3(-.045,.4,1.15).y)),2-float3(-.045,.4,1.15).z)); >;\n \tfloat3 g_vDarkMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.1,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.1,.4,1.08).y)),2-float3(-.1,.4,1.08).z)); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat4 g_vFrostHeatPosOsAndAmount < Attribute(\"FrostHeatPosOsAndAmount\"); UiType(VectorText); >;\n+\tfloat4 g_vFrostState < Attribute(\"FrostState\"); UiType(VectorText); >;\n \tfloat3 g_vHoloAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.05,.35,1.15).x,-1.4427*log(max(.0001,1-float3(-.05,.35,1.15).y)),2-float3(-.05,.35,1.15).z)); >;\n \tfloat4 g_vInvTextureDim < Source(InvTextureDim); SourceArg(g_tBGRefract) UiType(VectorText); >;\n \tfloat4 g_vKeychainGhostHandData < Attribute(\"KeychainGhostHandData\"); UiType(VectorText); >;\n@@ -700,7 +704,7 @@ PS\n \tfloat g_flIridescentStrength < Default(0.75); UiType(Slider); UiGroup(\"Lighting/SFX/Iridescence\"); UiVisibility(F_IRIDESCENCE==1); >;\n \tfloat g_flPearlescentScale < Range(-120, 120); UiType(Slider); UiGroup(\"Lighting/SFX/Perlescence/10\"); UiVisibility(F_IRIDESCENCE==1); >;\n \tfloat g_flMetalnessTransitionBias < Default(2); Range(0.001, 3); UiType(Slider); UiGroup(\"Lighting,30/Metalness,50/10\"); >;\n-\tfloat2 g_vMetalnessRemapRange < Default(0); UiType(VectorText); UiGroup(\"Lighting,30/Metalness,40/10\"); >;\n+\tfloat2 g_vMetalnessRemapRange < Default2(0, 1); UiType(VectorText); UiGroup(\"Lighting,30/Metalness,40/10\"); >;\n \tCreateInputTexture2D(TextureMetalness1, Linear, 8, \"\", \"_metal\", \"Lighting,30/Metalness,30/11\", Default4(0, 0, 0, 0));\n \tCreateInputTexture2D(TextureRoughness1, Linear, 8, \"Inverse\", \"_rough\", \"Lighting,30/Roughness,20/11\", Default4(0.5, 0.5, 0.5, 0));\n \tfloat g_fTextureRoughnessContrast < Default(1); Range(0, 4); UiType(Slider); UiGroup(\"Lighting/Roughness/11\"); >;\n@@ -755,7 +759,7 @@ PS\n \tTexture2D g_tMetalness < Channel(R, BoxInverse(TextureRoughness1), Linear); Channel(G, Box(TextureMetalness1), Linear); Channel(B, Box(TextureSfxMask1), Linear); OutputFormat(BC7); SrgbRead(false); >;\n \t\n \t// SPIR-V reflection failed for backend HLSL:\n-\t// cbuffer ID 5618 (name: _Globals_), member index 26 (name: g_cInvulnerabilityColor) cannot be expressed with either HLSL packing layout or packoffset.\n+\t// cbuffer ID 5618 (name: _Globals_), member index 21 (name: g_vFrostState) cannot be expressed with either HLSL packing layout or packoffset.\n \t//\n \t// Re-attempting reflection with the GLSL backend.\n \t\n@@ -775,16 +779,16 @@ PS\n \t#define SPIRV_CROSS_UNROLL\n \t#define SPIRV_CROSS_LOOP\n \t#endif\n-\t#extension GL_KHR_shader_subgroup_arithmetic : require\n \t#extension GL_EXT_samplerless_texture_functions : require\n+\t#extension GL_KHR_shader_subgroup_arithmetic : require\n \tlayout(early_fragment_tests) in;\n \t\n-\tstruct _1373\n+\tstruct _953\n \t{\n \t    vec4 _m0[3];\n \t};\n \t\n-\tstruct _992\n+\tstruct _2184\n \t{\n \t    vec4 _m0[4];\n \t};\n@@ -801,12 +805,12 @@ PS\n \t    vec4 _m7;\n \t};\n \t\n-\tstruct _920\n+\tstruct _576\n \t{\n \t    _1753 _m0[128];\n \t};\n \t\n-\tstruct _1056\n+\tstruct _743\n \t{\n \t    mat4 _m0[4];\n \t};\n@@ -842,7 +846,7 @@ PS\n \tvec4 _4;\n \tvec3 _5;\n \t\n-\tstruct _856\n+\tstruct _1975\n \t{\n \t    float g_flFogModificationAmount;\n \t    uint g_tColor;\n@@ -865,6 +869,8 @@ PS\n \t    float g_flMetalnessTransitionBias;\n \t    float g_flRainExposureToSkyWetness;\n \t    float g_flRainExposureLocalTimer;\n+\t    vec4 g_vFrostState;\n+\t    vec4 g_vFrostHeatPosOsAndAmount;\n \t    int bIridescence;\n \t    float g_flIridescentScale;\n \t    float g_flIridescentStrength;\n@@ -875,9 +881,9 @@ PS\n \t    float g_flPearlescentScale;\n \t};\n \t\n-\tlayout(set = 1) uniform _856 _Globals_;\n+\tlayout(set = 1) uniform _1975 _Globals_;\n \t\n-\tstruct _2595\n+\tstruct _254\n \t{\n \t    ivec4 _m0;\n \t    ivec4 _m1;\n@@ -891,52 +897,55 @@ PS\n \t    uint _m9;\n \t    uint _m10;\n \t    uint _m11;\n-\t    float _m12;\n+\t    uint _m12;\n \t    float _m13;\n-\t    ivec2 _m14;\n-\t    mat4 _m15;\n-\t    vec2 _m16;\n-\t    float _m17;\n-\t    vec4 _m18;\n+\t    float _m14;\n+\t    ivec2 _m15;\n+\t    mat4 _m16;\n+\t    vec2 _m17;\n+\t    float _m18;\n \t    vec4 _m19;\n \t    vec4 _m20;\n \t    vec4 _m21;\n \t    vec4 _m22;\n \t    vec4 _m23;\n-\t    mat4 _m24;\n-\t    vec4 _m25;\n+\t    vec4 _m24;\n+\t    mat4 _m25;\n \t    vec4 _m26;\n \t    vec4 _m27;\n-\t    float _m28;\n+\t    vec4 _m28;\n \t    float _m29;\n-\t    vec4 _m30;\n+\t    float _m30;\n+\t    float _m31;\n+\t    vec4 _m32;\n \t};\n \t\n-\tlayout(set = 1) uniform _2595 PerViewConstantBufferCsgo_t;\n+\tlayout(set = 1) uniform _254 PerViewConstantBufferCsgo_t;\n \t\n-\tstruct _1616\n+\tstruct _1732\n \t{\n \t    float _m0;\n-\t    vec2 _m1;\n+\t    float _m1;\n \t    vec2 _m2;\n-\t    vec4 _m3;\n-\t    float _m4;\n-\t    vec4 _m5;\n-\t    vec3 _m6;\n+\t    vec2 _m3;\n+\t    vec4 _m4;\n+\t    float _m5;\n+\t    vec4 _m6;\n \t    vec3 _m7;\n+\t    vec3 _m8;\n \t};\n \t\n-\tlayout(set = 1) uniform _1616 PerViewConstantBuffer_t;\n+\tlayout(set = 1) uniform _1732 PerViewConstantBuffer_t;\n \t\n-\tstruct _790\n+\tstruct _2375\n \t{\n \t    vec4 _m0;\n \t    vec4 _m1;\n \t    vec4 _m2;\n \t    vec4 _m3;\n \t    vec4 _m4;\n-\t    _1373 _m5;\n-\t    _992 _m6;\n+\t    _953 _m5;\n+\t    _2184 _m6;\n \t    vec4 _m7;\n \t    vec4 _m8;\n \t    vec4 _m9;\n@@ -945,7 +954,7 @@ PS\n \t    uvec4 _m12;\n \t    vec4 _m13;\n \t    vec4 _m14;\n-\t    _920 _m15;\n+\t    _576 _m15;\n \t    vec4 _m16;\n \t    vec4 _m17;\n \t    int _m18;\n@@ -955,13 +964,13 @@ PS\n \t    float _m22;\n \t    float _m23;\n \t    float _m24;\n-\t    _1056 _m25;\n-\t    _992 _m26;\n+\t    _743 _m25;\n+\t    _2184 _m26;\n \t    uint _m27;\n \t    uint _m28;\n \t};\n \t\n-\tlayout(set = 3) uniform _790 PerViewLightingConstantBufferGpu_t;\n+\tlayout(set = 3) uniform _2375 PerViewLightingConstantBufferGpu_t;\n \t\n \tlayout(set = 3, binding = 30, std430) readonly buffer g_CullBits\n \t{\n@@ -984,17 +993,30 @@ PS\n \tlayout(location = 0) in vec3 input_0;\n \tlayout(location = 1) in vec3 input_1;\n \tlayout(location = 2) in vec3 input_2;\n-\tlayout(location = 3) in vec4 input_3;\n-\tlayout(location = 4) centroid in vec4 input_4;\n-\tlayout(location = 5) centroid in vec3 input_5;\n-\tlayout(location = 6) in vec4 input_6;\n+\tlayout(location = 3) in vec3 input_3;\n+\tlayout(location = 4) in vec4 input_4;\n+\tlayout(location = 5) centroid in vec4 input_5;\n+\tlayout(location = 6) centroid in vec3 input_6;\n+\tlayout(location = 7) in vec4 input_7;\n \tlayout(location = 0) out vec4 output_0;\n \t\n \tvoid main()\n \t{\n \t    vec4 _11408 = gl_FragCoord;\n \t    _11408.w = 1.0 / _11408.w;\n-\t    float _12497 = _Globals_.g_flRainExposureToSkyWetness * PerViewConstantBufferCsgo_t._m13;\n+\t    float _11313;\n+\t    if (PerViewConstantBufferCsgo_t._m31 > 1.9900000095367431640625)\n+\t    {\n+\t        _11313 = step(0.5, fract(PerViewConstantBuffer_t._m0 * 0.5));\n+\t    }\n+\t    else\n+\t    {\n+\t        _11313 = (PerViewConstantBufferCsgo_t._m31 > 0.9900000095367431640625) ? 0.0 : 1.0;\n+\t    }\n+\t    float _23147 = _Globals_.g_vFrostState.x * _11313;\n+\t    float _21267 = _Globals_.g_vFrostState.y * _11313;\n+\t    float _13654 = _Globals_.g_vFrostState.z * _11313;\n+\t    float _12497 = _Globals_.g_flRainExposureToSkyWetness * PerViewConstantBufferCsgo_t._m14;\n \t    bool _15436 = _12497 > 0.0;\n \t    float _13136;\n \t    vec2 _13998;\n@@ -1003,10 +1025,10 @@ PS\n \t    vec4 _23261;\n \t    if (_15436)\n \t    {\n-\t        vec3 _10413 = input_1 + PerViewConstantBufferCsgo_t._m27.xyz;\n-\t        vec2 _18197 = input_3.xy * 2.5;\n+\t        vec3 _10413 = input_2 + PerViewConstantBufferCsgo_t._m28.xyz;\n+\t        vec2 _18197 = input_4.xy * 2.5;\n \t        vec2 _20826;\n-\t        if ((length(cross(vec3(dFdx(input_3.xy), 0.0), vec3(dFdy(input_3.xy), 0.0))) / max(9.9999997473787516355514526367188e-05, length(cross(dFdx(_10413), dFdy(_10413))))) < 0.00200000009499490261077880859375)\n+\t        if ((length(cross(vec3(dFdx(input_4.xy), 0.0), vec3(dFdy(input_4.xy), 0.0))) / max(9.9999997473787516355514526367188e-05, length(cross(dFdx(_10413), dFdy(_10413))))) < 0.00200000009499490261077880859375)\n \t        {\n \t            _20826 = _18197 * 3.0;\n \t        }\n@@ -1019,8 +1041,8 @@ PS\n \t        _8562.y = -_8562.y;\n \t        float _7729 = _20877.w;\n \t        float _12471 = _20877.z + (input_0.x * 0.00999999977648258209228515625);\n-\t        float _10538 = saturate((((_12497 * 0.25) - fract(_12471 + (((_Globals_.g_flRainExposureLocalTimer * 0.100000001490116119384765625) * PerViewConstantBufferCsgo_t._m12) * PerViewConstantBufferCsgo_t._m12))) * 5.0) / (PerViewConstantBufferCsgo_t._m13 + 0.001000000047497451305389404296875)) * saturate((input_2.z + 0.75) * 4.0);\n-\t        vec2 _13861 = input_3.xy + (((_8562.xy * (-0.0199999995529651641845703125)) * _10538) * _7729);\n+\t        float _10538 = saturate((((_12497 * 0.25) - fract(_12471 + (((_Globals_.g_flRainExposureLocalTimer * 0.100000001490116119384765625) * PerViewConstantBufferCsgo_t._m13) * PerViewConstantBufferCsgo_t._m13))) * 5.0) / (PerViewConstantBufferCsgo_t._m14 + 0.001000000047497451305389404296875)) * saturate((input_3.z + 0.75) * 4.0);\n+\t        vec2 _13861 = input_4.xy + (((_8562.xy * (-0.0199999995529651641845703125)) * _10538) * _7729);\n \t        vec4 _20488;\n \t        _20488.x = _13861.x;\n \t        _20488.y = _13861.y;\n@@ -1036,16 +1058,16 @@ PS\n \t        _16305 = 0.0;\n \t        _17114 = 0.0;\n \t        _13998 = vec2(0.0);\n-\t        _23261 = input_3;\n+\t        _23261 = input_4;\n \t    }\n \t    vec3 _21709;\n-\t    if (dot(input_2.xyz, input_2.xyz) >= 1.0099999904632568359375)\n+\t    if (dot(input_3.xyz, input_3.xyz) >= 1.0099999904632568359375)\n \t    {\n-\t        _21709 = input_5.xyz;\n+\t        _21709 = input_6.xyz;\n \t    }\n \t    else\n \t    {\n-\t        _21709 = input_2.xyz;\n+\t        _21709 = input_3.xyz;\n \t    }\n \t    bool _14874 = _Globals_.g_bRenderBackfaceNormals != 0;\n \t    bool _12885;\n@@ -1068,9 +1090,9 @@ PS\n \t        _10251 = _21709;\n \t    }\n \t    vec3 _24347 = normalize(_10251);\n-\t    vec3 _10061 = input_1 + PerViewConstantBufferCsgo_t._m27.xyz;\n+\t    vec3 _10061 = input_2 + PerViewConstantBufferCsgo_t._m28.xyz;\n \t    vec4 _19680 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tColor], g_bindless_Sampler[_Globals_.g_sUserConfigAllowGlobalMipBias]), _23261.xy);\n-\t    vec3 _21103 = _19680.xyz * input_4.xyz;\n+\t    vec3 _21103 = _19680.xyz * input_5.xyz;\n \t    vec4 _19068 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tAmbientOcclusion], g_bindless_Sampler[_Globals_.g_sUserConfig]), vec2(_23261.xy).xy);\n \t    float _17476 = _19068.x;\n \t    vec4 _21760 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tMetalness], g_bindless_Sampler[_Globals_.g_sUserConfig]), _23261.xy);\n@@ -1102,9 +1124,9 @@ PS\n \t    {\n \t        _24327 = false;\n \t    }\n-\t    vec3 _12631 = input_2.xyz * (_24327 ? (-1.0) : 1.0);\n-\t    float _23240 = (input_6.w > 0.0) ? 1.0 : (-1.0);\n-\t    vec3 _14435 = cross(_12631.xyz, input_6.xyz) * _23240;\n+\t    vec3 _12631 = input_3.xyz * (_24327 ? (-1.0) : 1.0);\n+\t    float _23240 = (input_7.w > 0.0) ? 1.0 : (-1.0);\n+\t    vec3 _14435 = cross(_12631.xyz, input_7.xyz) * _23240;\n \t    bvec4 _24464 = notEqual(PerViewConstantBufferCsgo_t._m3, ivec4(0));\n \t    bool _20058 = _24464.w;\n \t    vec3 _7424;\n@@ -1127,7 +1149,7 @@ PS\n \t    {\n \t        _20480 = _8418;\n \t    }\n-\t    vec3 _7054 = normalize((((input_6.xyz * _20480.x).xyz + (_7424.xyz * _20480.y)).xyz + (_12631.xyz * _20480.z)).xyz);\n+\t    vec3 _7054 = normalize((((input_7.xyz * _20480.x).xyz + (_7424.xyz * _20480.y)).xyz + (_12631.xyz * _20480.z)).xyz);\n \t    vec3 _6616;\n \t    vec3 _13137;\n \t    float _13694;\n@@ -1143,7 +1165,7 @@ PS\n \t        float _22907 = _18483 * _16305;\n \t        _13137 = mix(_21103, pow(_21103, vec3(1.60000002384185791015625)) * 0.60000002384185791015625, vec3(_23650));\n \t        _16306 = mix(_13746.xy, vec2(0.100000001490116119384765625), vec2(_17476 * saturate(((_22907 * 4.0) + ((((cos((_17114 + (_Globals_.g_flRainExposureLocalTimer * 0.20000000298023223876953125)) * 6.28318500518798828125) * 0.5) + 0.5) * _20709) * 0.20000000298023223876953125)) + (_12497 * 0.4000000059604644775390625))));\n-\t        _17115 = mix(normalize(mix(_24347, _7054, vec3(1.0 + (_23650 * 1.5)))), normalize((((input_6.xyz * _13998.x).xyz + (_7424.xyz * _13998.y)).xyz + (_24347.xyz * _8927)).xyz), vec3(_18483));\n+\t        _17115 = mix(normalize(mix(_24347, _7054, vec3(1.0 + (_23650 * 1.5)))), normalize((((input_7.xyz * _13998.x).xyz + (_7424.xyz * _13998.y)).xyz + (_24347.xyz * _8927)).xyz), vec3(_18483));\n \t        _13694 = saturate(_22907 * 2.0);\n \t        _6616 = mix(_20480, vec3(_13998.xy, _8927) * vec3(-1.0, -1.0, 1.0), vec3(_18483 * 0.25));\n \t    }\n@@ -1159,7 +1181,7 @@ PS\n \t    SPIRV_CROSS_BRANCH\n \t    if (_Globals_.g_flPearlescentScale != 0.0)\n \t    {\n-\t        float _21433 = (_Globals_.g_flPearlescentScale * (1.0 - dot(normalize(PerViewConstantBuffer_t._m6.xyz - _10061.xyz), _7054))) * _24590;\n+\t        float _21433 = (_Globals_.g_flPearlescentScale * (1.0 - dot(normalize(PerViewConstantBuffer_t._m7.xyz - _10061.xyz), _7054))) * _24590;\n \t        float _15271 = cos(_21433);\n \t        float _12935;\n \t        do\n@@ -1199,8 +1221,8 @@ PS\n \t    {\n \t        _24328 = false;\n \t    }\n-\t    vec3 _9739 = input_2.xyz * (_24328 ? (-1.0) : 1.0);\n-\t    vec3 _24682 = cross(_9739.xyz, input_6.xyz) * _23240;\n+\t    vec3 _9739 = input_3.xyz * (_24328 ? (-1.0) : 1.0);\n+\t    vec3 _24682 = cross(_9739.xyz, input_7.xyz) * _23240;\n \t    vec3 _7425;\n \t    if (_20058)\n \t    {\n@@ -1221,13 +1243,15 @@ PS\n \t    {\n \t        _20481 = _7866;\n \t    }\n-\t    vec3 _14786 = normalize((((input_6.xyz * _20481.x).xyz + (_7425.xyz * _20481.y)).xyz + (_9739.xyz * _20481.z)).xyz);\n+\t    vec3 _14786 = normalize((((input_7.xyz * _20481.x).xyz + (_7425.xyz * _20481.y)).xyz + (_9739.xyz * _20481.z)).xyz);\n+\t    float _18787 = 1.0 - _20079;\n+\t    vec3 _8219 = _20195.xyz * pow(_18787, _Globals_.g_flMetalnessTransitionBias);\n \t    vec3 _17328 = mix(vec3(0.0199999995529651641845703125), _20195.xyz, vec3(_20079));\n-\t    vec3 _22671;\n+\t    vec3 _12904;\n \t    SPIRV_CROSS_BRANCH\n \t    if (_Globals_.bIridescence != 0)\n \t    {\n-\t        vec3 _24006 = normalize(PerViewConstantBuffer_t._m6.xyz - _10061.xyz);\n+\t        vec3 _24006 = normalize(PerViewConstantBuffer_t._m7.xyz - _10061.xyz);\n \t        float _22128 = fract(((dot(_24006, _24347) + dot(_24006, PerViewLightingConstantBufferGpu_t._m16.xyz)) * _Globals_.g_flIridescentScale) + _Globals_.g_flIridescentHueShift) * 6.0;\n \t        float _17518 = floor(_22128);\n \t        float _18832 = _22128 - _17518;\n@@ -1280,37 +1304,212 @@ PS\n \t        vec4 _22046 = vec4(_17328.xyz, 1.0);\n \t        float _24323 = dot(_22046.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125));\n \t        vec3 _9577 = normalize(max(_19648.xyz, vec3(0.001000000047497451305389404296875)));\n-\t        _22671 = saturate(mix(_22046.xyz, (_9577 * min(_24323 / dot(_9577.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125)), (3.0 * _24323) * max(_19648.x, max(_19648.y, _19648.z)))).xyz, vec3(_Globals_.g_flIridescentStrength * _24590)));\n+\t        _12904 = saturate(mix(_22046.xyz, (_9577 * min(_24323 / dot(_9577.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125)), (3.0 * _24323) * max(_19648.x, max(_19648.y, _19648.z)))).xyz, vec3(_Globals_.g_flIridescentStrength * _24590)));\n \t    }\n \t    else\n \t    {\n-\t        _22671 = _17328;\n+\t        _12904 = _17328;\n \t    }\n-\t    vec3 _17892 = mix(_17115, _14786, bvec3(all(equal(_17115, vec3(1.0)))));\n+\t    vec3 _9737;\n+\t    float _7578;\n+\t    float _13141;\n+\t    vec3 _15879;\n+\t    vec3 _16308;\n+\t    vec3 _17116;\n+\t    vec3 _17117;\n+\t    vec2 _17118;\n+\t    do\n+\t    {\n+\t        _9737 = _10061.xyz;\n+\t        vec3 _18130 = dFdx(_9737);\n+\t        vec3 _7243 = dFdy(_9737);\n+\t        vec2 _8396 = dFdx(_23261.xy);\n+\t        vec2 _9068 = dFdy(_23261.xy);\n+\t        bool _12888;\n+\t        if (_23147 <= 0.0)\n+\t        {\n+\t            _12888 = _13654 <= 0.0;\n+\t        }\n+\t        else\n+\t        {\n+\t            _12888 = false;\n+\t        }\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (_12888)\n+\t        {\n+\t            _13141 = 0.0;\n+\t            _16308 = _8219;\n+\t            _17116 = _12904;\n+\t            _17117 = _14786;\n+\t            _17118 = _16306;\n+\t            _15879 = _17115;\n+\t            _7578 = 0.0;\n+\t            break;\n+\t        }\n+\t        vec3 _13995 = -normalize(_10061.xyz - PerViewConstantBuffer_t._m7.xyz);\n+\t        float _19347 = saturate(max((_16306.y - 0.75) * 4.0, 0.0));\n+\t        float _12353 = sqrt(abs((_8396.x * _9068.y) - (_8396.y * _9068.x)) / max(length(cross(_18130, _7243)), 9.9999999392252902907785028219223e-09));\n+\t        float _12407 = exp2(round(log2(0.25 / max(_12353, 9.9999999747524270787835121154785e-07))));\n+\t        float _21040 = _12407 * 0.125;\n+\t        vec4 _13138 = textureGrad(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m12], g_bindless_Sampler[_Globals_.g_sAniso]), (_23261.xy * _21040) + vec2(0.37000000476837158203125), _8396 * _21040, _9068 * _21040);\n+\t        float _19245 = _13138.z;\n+\t        float _13139;\n+\t        float _13151;\n+\t        float _23341;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (_23147 < _21267)\n+\t        {\n+\t            float _6204 = saturate((_19245 * 0.699999988079071044921875) + (_18787 * 0.300000011920928955078125));\n+\t            float _9730 = saturate((saturate(1.0 - (_23147 / max(_21267, 9.9999997473787516355514526367188e-05))) - (_6204 * 0.60000002384185791015625)) * 2.5000002384185791015625);\n+\t            float _10372 = _21267 * (1.0 - _9730);\n+\t            _13139 = (1.0 - saturate(((1.0 - saturate(_13654 / max(_21267 - _23147, 0.001000000047497451305389404296875))) - (saturate(_6204 + (_19347 * 0.4000000059604644775390625)) * 0.60000002384185791015625)) * 2.5000002384185791015625)) * (_21267 - _10372);\n+\t            _13151 = saturate(_9730 * 3.0);\n+\t            _23341 = _10372;\n+\t        }\n+\t        else\n+\t        {\n+\t            _13139 = _13654;\n+\t            _13151 = _Globals_.g_vFrostState.w;\n+\t            _23341 = _23147;\n+\t        }\n+\t        float _23381;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (_Globals_.g_vFrostHeatPosOsAndAmount.w > 0.0)\n+\t        {\n+\t            _23381 = (_Globals_.g_vFrostHeatPosOsAndAmount.w * (1.0 - smoothstep(0.0, 20.0 * mix(0.25, 1.0, _Globals_.g_vFrostHeatPosOsAndAmount.w), distance(input_0.xyz, _Globals_.g_vFrostHeatPosOsAndAmount.xyz)))) * mix(0.5, 1.0, _20079);\n+\t        }\n+\t        else\n+\t        {\n+\t            _23381 = 0.0;\n+\t        }\n+\t        bool _12889;\n+\t        if (_23381 > 0.0)\n+\t        {\n+\t            _12889 = _21267 > 0.0;\n+\t        }\n+\t        else\n+\t        {\n+\t            _12889 = false;\n+\t        }\n+\t        float _11921;\n+\t        float _13140;\n+\t        float _19857;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (_12889)\n+\t        {\n+\t            float _13023 = saturate(_23381 * 20.0);\n+\t            float _20747 = min(_23341, _21267 * (1.0 - _13023));\n+\t            _13140 = max(_13151, saturate(_13023 * 3.0));\n+\t            _11921 = max(_13139, _21267 - _20747) * (1.0 - smoothstep(0.20000000298023223876953125, 0.4000000059604644775390625, _23381));\n+\t            _19857 = _20747;\n+\t        }\n+\t        else\n+\t        {\n+\t            _13140 = _13151;\n+\t            _11921 = _13139;\n+\t            _19857 = _23341;\n+\t        }\n+\t        float _17489 = saturate(1.0 - (_19857 / max(_21267, 9.9999997473787516355514526367188e-05)));\n+\t        float _8688 = saturate(_11921 / max(_21267 - _19857, 0.001000000047497451305389404296875));\n+\t        float _23533 = _12407 * exp2((-0.25) + ((_17489 * mix(0.60000002384185791015625, 1.0, 1.0 - _8688)) * 3.0));\n+\t        vec3 _12420 = _24347.xyz;\n+\t        vec4 _12684 = textureGrad(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m12], g_bindless_Sampler[_Globals_.g_sAniso]), ((_23261.xy + ((vec2(dot(_13995, input_7.xyz), dot(_13995, _7425.xyz)) / vec2(max(dot(_13995, _12420), 0.25))) * ((-0.00999999977648258209228515625) * _12353))) * _12407) * mat2(vec2(0.798635542392730712890625, -0.6018149852752685546875), vec2(0.6018149852752685546875, 0.798635542392730712890625)), (_8396 * _23533) * mat2(vec2(0.798635542392730712890625, -0.6018149852752685546875), vec2(0.6018149852752685546875, 0.798635542392730712890625)), (_9068 * _23533) * mat2(vec2(0.798635542392730712890625, -0.6018149852752685546875), vec2(0.6018149852752685546875, 0.798635542392730712890625)));\n+\t        vec2 _12795 = mat2(vec2(0.798635542392730712890625, -0.6018149852752685546875), vec2(0.6018149852752685546875, 0.798635542392730712890625)) * ((_12684.xy * 2.0) - vec2(1.0));\n+\t        vec3 _22529 = _14786.xyz;\n+\t        float _22007 = saturate(length(_22529 - _12420));\n+\t        float _10634 = saturate(((mix(1.0, _22007, 0.4000000059604644775390625) * pow(_17476, 16.0)) * mix(1.0, saturate(normalize(input_1.xyz).z), 0.20000000298023223876953125)) + 0.199999988079071044921875);\n+\t        float _23701 = (_17476 * _17476) * (1.0 - _22007);\n+\t        float _12211 = mix(saturate(mix(_10634, _10634 * _12684.z, 0.60000002384185791015625) + ((_19245 - 0.5) * 0.300000011920928955078125)), saturate((_10634 * mix(1.0, _19245, 0.20000000298023223876953125)) * mix(0.699999988079071044921875, 1.0, _23701)), _19347) - 1.0;\n+\t        float _18331 = _12211 + (_19857 * 0.4600000083446502685546875);\n+\t        float _7308 = saturate(_18331 * mix(8.0, 2.5, _19347));\n+\t        float _23574 = _12211 + (_21267 * 0.4600000083446502685546875);\n+\t        float _12274 = mix(_7308, max(_7308, saturate(_23574 * 2.5)), _19347);\n+\t        float _19452 = saturate(_18331 * 2.5);\n+\t        float _16589;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (_11921 > 0.0)\n+\t        {\n+\t            _16589 = saturate(saturate(_23574 * 4.0) - saturate(_18331 * 4.0));\n+\t        }\n+\t        else\n+\t        {\n+\t            _16589 = 0.0;\n+\t        }\n+\t        uvec2 _10892 = uvec2(textureSize(g_bindless_Texture2D_float4[_Globals_.g_tColor], int(0u)));\n+\t        vec2 _19999 = vec2(ivec2(int(_10892.x), int(_10892.y)));\n+\t        float _11189 = log2(max(max(length(_8396 * _19999), length(_9068 * _19999)), 9.9999999747524270787835121154785e-07));\n+\t        float _19321 = dot(textureLod(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tColor], g_bindless_Sampler[_Globals_.g_sAniso]), _23261.xy, max(log2(max(_19999.x, _19999.y) * 0.015625), _11189 + 2.0)).xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125));\n+\t        float _6721 = (mix(0.800000011920928955078125, 1.0, _20079) * 0.5) + (1.7999999523162841796875 * saturate((abs(_19321 - dot(textureLod(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tColor], g_bindless_Sampler[_Globals_.g_sAniso]), _23261.xy, _11189).xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125))) / max(_19321, 0.001000000047497451305389404296875)) * 2.0));\n+\t        float _20622 = 1.0 - _19347;\n+\t        float _14198 = _12274 * _6721;\n+\t        float _25171 = smoothstep(0.0, 0.100000001490116119384765625, _17489);\n+\t        float _17785 = ((max(_16589, _14198 * _13140) * _8688) * _6721) * _25171;\n+\t        vec2 _14970 = mix(_16306.xy, vec2(0.07999999821186065673828125), vec2(_17785 * (1.0 - (_19347 * 0.60000002384185791015625))));\n+\t        vec3 _8752;\n+\t        vec2 _13945;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (_17785 > 0.0)\n+\t        {\n+\t            vec3 _11314;\n+\t            if (all(equal(_17115, vec3(1.0))))\n+\t            {\n+\t                _11314 = _22529;\n+\t            }\n+\t            else\n+\t            {\n+\t                _11314 = _17115.xyz;\n+\t            }\n+\t            float _19765 = ((saturate(((_12684.z - 1.0) + _8688) * 6.0) * _17785) * _20622) * _25171;\n+\t            vec3 _15199 = normalize(vec3(_12795 * 2.5, 1.0));\n+\t            _8752 = normalize(mix(normalize(mix(_11314, _12420, vec3((_17785 * 0.5) * _20622))), normalize((((input_7.xyz * _15199.x).xyz + (_7425.xyz * _15199.y)).xyz + (_24347.xyz * _15199.z)).xyz), vec3(_19765)));\n+\t            _13945 = mix(_14970.xy, vec2(0.0500000007450580596923828125), vec2(_19765));\n+\t        }\n+\t        else\n+\t        {\n+\t            _8752 = _17115;\n+\t            _13945 = _14970;\n+\t        }\n+\t        float _13876 = saturate((((((_12274 * mix(mix(0.0199999995529651641845703125, 0.0, _19347), 1.0, max(_19452 * _19452, mix(saturate(length(_12795) * 3.0), _12684.w, _19347)))) * mix(0.300000011920928955078125, 2.7000000476837158203125 * mix(0.5, 1.0, _23701), _19347)) * (0.75 + pow(1.0 - saturate(dot(_22529, _13995)), 3.0))) * mix(1.0, saturate(((_12684.w * 0.5) + 0.5) - _17489), _19347)) * _6721) * mix(1.0, 0.3499999940395355224609375, _13140 * _20622));\n+\t        float _14683 = _13876 * mix(0.00999999977648258209228515625, 0.0500000007450580596923828125, _19347);\n+\t        vec3 _15522 = dFdxFine(_9737);\n+\t        vec3 _20236 = cross(dFdyFine(_9737), _22529);\n+\t        float _23342 = dot(_15522, _20236);\n+\t        vec3 _24600 = normalize((_22529 * abs(_23342)) - (((_20236 * dFdxFine(_14683)) + (cross(_22529, _15522) * dFdyFine(_14683))) * float(int(sign(_23342)))));\n+\t        vec3 _10798 = normalize(vec3(_12795, 1.0));\n+\t        float _10451 = max(0.0, (_13876 * _19452) * 0.5);\n+\t        _13141 = (_10451 > 0.0) ? (-0.20000000298023223876953125) : 0.0;\n+\t        _16308 = mix((_8219.xyz * mix(1.0, mix(0.800000011920928955078125, 0.550000011920928955078125, _19347), _17785)).xyz, vec3(0.800000011920928955078125, 0.86000001430511474609375, 0.920000016689300537109375), vec3(_13876));\n+\t        _17116 = mix(_12904.xyz, vec3(0.0199999995529651641845703125), vec3(_13876 * 0.60000002384185791015625));\n+\t        _17117 = normalize(mix(_24600.xyz, normalize((((input_7.xyz * _10798.x).xyz + (_7425.xyz * _10798.y)).xyz + (_24600.xyz * _10798.z)).xyz), vec3(_14198 * (1.0 - (_19347 * 0.89999997615814208984375)))));\n+\t        _17118 = mix(_13945.xy, vec2(mix(0.4000000059604644775390625, 0.119999997317790985107421875, _13140)), vec2(_14198 * mix(0.5, 1.0, _19452)));\n+\t        _15879 = _8752;\n+\t        _7578 = _10451;\n+\t        break;\n+\t    } while(false);\n+\t    vec3 _17892 = mix(_15879, _17117, bvec3(all(equal(_15879, vec3(1.0)))));\n \t    vec3 _10560 = _24347.xyz;\n \t    vec3 _11099 = dFdx(_10560);\n \t    vec3 _9175 = dFdy(_10560);\n \t    vec3 _10347 = _11099.xyz;\n-\t    vec3 _12420 = _9175.xyz;\n-\t    vec2 _11004 = max(_16306.xy, vec2(pow(saturate(max(dot(_10347, _10347), dot(_12420, _12420))), 0.333000004291534423828125)));\n+\t    vec3 _12422 = _9175.xyz;\n+\t    vec2 _11004 = max(_17118.xy, vec2(pow(saturate(max(dot(_10347, _10347), dot(_12422, _12422))), 0.333000004291534423828125)));\n \t    vec3 _10170 = -_24347;\n-\t    vec3 _24735 = _14786.xyz;\n-\t    vec4 _23875 = vec4(_24735, 1.0);\n+\t    vec4 _23875 = vec4(_17117.xyz, 1.0);\n \t    vec3 _18708 = vec3(dot(PerViewLightingConstantBufferGpu_t._m5._m0[0].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t._m5._m0[1].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t._m5._m0[2].xyzw, _23875));\n \t    bvec4 _24465 = notEqual(PerViewConstantBufferCsgo_t._m1, ivec4(0));\n \t    float _21710;\n \t    if (_24465.x)\n \t    {\n \t        vec3 _11394 = _24347.xyz;\n-\t        vec2 _11087 = ((floor(_11408.xy * PerViewConstantBufferCsgo_t._m17) * PerViewConstantBufferCsgo_t._m16.xy) + (PerViewConstantBufferCsgo_t._m16.xy * 0.5)).xy;\n+\t        vec2 _11087 = ((floor(_11408.xy * PerViewConstantBufferCsgo_t._m18) * PerViewConstantBufferCsgo_t._m17.xy) + (PerViewConstantBufferCsgo_t._m17.xy * 0.5)).xy;\n \t        vec4 _18418 = textureGather(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m8], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _11087).xyzw - _11408.zzzz;\n \t        float _18579 = _18418.w;\n \t        float _12013 = _18418.z;\n \t        bool _12285 = abs(_12013) < _18579;\n \t        vec2 _23168;\n \t        if (_12285)\n \t        {\n-\t            _23168 = vec2(PerViewConstantBufferCsgo_t._m16.x, 0.0);\n+\t            _23168 = vec2(PerViewConstantBufferCsgo_t._m17.x, 0.0);\n \t        }\n \t        else\n \t        {\n@@ -1322,15 +1521,15 @@ PS\n \t        vec2 _23169;\n \t        if (_12286)\n \t        {\n-\t            _23169 = vec2(0.0, PerViewConstantBufferCsgo_t._m16.y);\n+\t            _23169 = vec2(0.0, PerViewConstantBufferCsgo_t._m17.y);\n \t        }\n \t        else\n \t        {\n \t            _23169 = _23168;\n \t        }\n \t        vec4 _10010 = normalize(vec4(PerViewLightingConstantBufferGpu_t._m7.x * fma(dot(_10170, normalize(vec3(PerViewLightingConstantBufferGpu_t._m6._m0[0].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m7.y * fma(dot(_10170, normalize(vec3(PerViewLightingConstantBufferGpu_t._m6._m0[1].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m7.z * fma(dot(_10170, normalize(vec3(PerViewLightingConstantBufferGpu_t._m6._m0[2].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m7.w * fma(dot(_10170, normalize(vec3(PerViewLightingConstantBufferGpu_t._m6._m0[3].xy, 0.25))), 0.5, 0.5)));\n \t        vec4 _13232 = max(vec4(dot(PerViewLightingConstantBufferGpu_t._m6._m0[0].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m6._m0[1].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m6._m0[2].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m6._m0[3].xyz, _11394)).xyzw, vec4(0.0)) * normalize(saturate(((_10010 - vec4(max(max(_10010.x, _10010.y), max(_10010.z, _10010.w)))) + vec4(0.20000000298023223876953125)) * vec4(5.0)));\n-\t        _21710 = (1.0 / (dot(_13232, vec4(1.0)) + PerViewLightingConstantBufferGpu_t._m8.x)) * (PerViewLightingConstantBufferGpu_t._m8.x + dot(_13232, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m7], g_bindless_Sampler[_Globals_.g_sPointClamp]), (_11087 + mix(_23169, PerViewConstantBufferCsgo_t._m16.xy, bvec2(abs(_18418.y) < (_12286 ? _15372 : _20965))).xy).xy, 0.0)));\n+\t        _21710 = (1.0 / (dot(_13232, vec4(1.0)) + PerViewLightingConstantBufferGpu_t._m8.x)) * (PerViewLightingConstantBufferGpu_t._m8.x + dot(_13232, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m7], g_bindless_Sampler[_Globals_.g_sPointClamp]), (_11087 + mix(_23169, PerViewConstantBufferCsgo_t._m17.xy, bvec2(abs(_18418.y) < (_12286 ? _15372 : _20965))).xy).xy, 0.0)));\n \t    }\n \t    else\n \t    {\n@@ -1339,187 +1538,198 @@ PS\n \t    float _21711;\n \t    if (notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0)).w)\n \t    {\n-\t        _21711 = _21710 * textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m9], g_bindless_Sampler[_Globals_.g_sUserConfig]), (_11408.xy * PerViewConstantBuffer_t._m3.xy).xy, 0.0).x;\n+\t        _21711 = _21710 * textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m9], g_bindless_Sampler[_Globals_.g_sUserConfig]), (_11408.xy * PerViewConstantBuffer_t._m4.xy).xy, 0.0).x;\n \t    }\n \t    else\n \t    {\n \t        _21711 = _21710;\n \t    }\n-\t    float _21712;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _17117.xyz);\n+\t    float _12320;\n \t    SPIRV_CROSS_BRANCH\n-\t    if (PerViewLightingConstantBufferGpu_t._m18 != 0)\n+\t    if (_8634 > _13141)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13138;\n-\t        vec3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n+\t        float _12508;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m18 != 0)\n \t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))\n-\t            {\n-\t                _13138 = 1.0;\n-\t                _14975 = vec3(0.0);\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            vec4 _18322 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13142;\n+\t            vec3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                vec3 _19470 = vec3(_12779, _18322.yz);\n-\t                vec2 _24804 = _19470.xy;\n-\t                vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));\n-\t                vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;\n-\t                vec3 _20489 = _19470;\n-\t                _20489.x = _20561.x;\n-\t                _20489.y = _20561.y;\n-\t                _13138 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20489;\n-\t                _10191 = _13039;\n-\t                break;\n-\t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n-\t        {\n-\t            vec2 _7045;\n-\t            vec2 _7046;\n-\t            vec2 _7735;\n-\t            float _8969;\n-\t            float _8970;\n-\t            float _15996;\n-\t            float _17299;\n-\t            vec2 _18870;\n-\t            vec4 _20581;\n-\t            vec4 _24370;\n-\t            uint _24711;\n-\t            float _23727;\n-\t            do\n-\t            {\n-\t                float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                _20581 = PerViewLightingConstantBufferGpu_t._m0;\n-\t                _24370 = PerViewLightingConstantBufferGpu_t._m1;\n-\t                _24711 = _Globals_.g_tShadowDepthBufferCmpSampler;\n-\t                _17299 = PerViewLightingConstantBufferGpu_t._m2.z;\n-\t                _15996 = PerViewLightingConstantBufferGpu_t._m3.z;\n-\t                _18870 = vec2(_17299, _15996);\n-\t                _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n-\t                _7045 = vec2(_8969, _15996);\n-\t                _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n-\t                _7046 = vec2(_17299, _8970);\n-\t                _7735 = vec2(_8969, _8970);\n-\t                float _15310 = dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));\n-\t                bool _12888;\n-\t                if (_15310 == 0.0)\n-\t                {\n-\t                    _12888 = true;\n-\t                }\n-\t                else\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))\n \t                {\n-\t                    _12888 = _15310 == 1.0;\n+\t                    _13142 = 1.0;\n+\t                    _14975 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n \t                }\n-\t                if (_12888)\n+\t                vec4 _18322 = vec4(input_2.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])\n \t                {\n-\t                    _23727 = _15310;\n+\t                    vec3 _19470 = vec3(_12779, _18322.yz);\n+\t                    vec2 _24804 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));\n+\t                    vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;\n+\t                    vec3 _20489 = _19470;\n+\t                    _20489.x = _20561.x;\n+\t                    _20489.y = _20561.y;\n+\t                    _13142 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20489;\n+\t                    _10191 = _13039;\n \t                    break;\n \t                }\n-\t                _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _24370.xxxx)) + (textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3(_14975.xy, _21452), 0.0) * _24370.y);\n-\t                break;\n-\t            } while(false);\n-\t            float _12506;\n-\t            SPIRV_CROSS_BRANCH\n-\t            if (_13138 < 1.0)\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n+\t            }\n+\t            float _21712;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))\n+\t                vec2 _7045;\n+\t                vec2 _7046;\n+\t                vec2 _7735;\n+\t                float _8969;\n+\t                float _8970;\n+\t                float _15996;\n+\t                float _17299;\n+\t                vec2 _18870;\n+\t                vec4 _20581;\n+\t                vec4 _24369;\n+\t                uint _24711;\n+\t                float _23727;\n+\t                do\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    vec4 _19671 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];\n-\t                    vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;\n-\t                    vec3 _20490;\n-\t                    _20490.x = _20562.x;\n-\t                    _20490.y = _20562.y;\n-\t                    float _12505;\n-\t                    do\n+\t                    float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);\n+\t                    _20581 = PerViewLightingConstantBufferGpu_t._m0;\n+\t                    _24369 = PerViewLightingConstantBufferGpu_t._m1;\n+\t                    _24711 = _Globals_.g_tShadowDepthBufferCmpSampler;\n+\t                    _17299 = PerViewLightingConstantBufferGpu_t._m2.z;\n+\t                    _15996 = PerViewLightingConstantBufferGpu_t._m3.z;\n+\t                    _18870 = vec2(_17299, _15996);\n+\t                    _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n+\t                    _7045 = vec2(_8969, _15996);\n+\t                    _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n+\t                    _7046 = vec2(_17299, _8970);\n+\t                    _7735 = vec2(_8969, _8970);\n+\t                    float _15310 = dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));\n+\t                    bool _12890;\n+\t                    if (_15310 == 0.0)\n \t                    {\n-\t                        float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                        float _15311 = dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));\n-\t                        bool _12889;\n-\t                        if (_15311 == 0.0)\n-\t                        {\n-\t                            _12889 = true;\n-\t                        }\n-\t                        else\n-\t                        {\n-\t                            _12889 = _15311 == 1.0;\n-\t                        }\n-\t                        if (_12889)\n+\t                        _12890 = true;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _12890 = _15310 == 1.0;\n+\t                    }\n+\t                    if (_12890)\n+\t                    {\n+\t                        _23727 = _15310;\n+\t                        break;\n+\t                    }\n+\t                    _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _24369.xxxx)) + (textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3(_14975.xy, _21452), 0.0) * _24369.y);\n+\t                    break;\n+\t                } while(false);\n+\t                float _12506;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13142 < 1.0)\n+\t                {\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19671 = vec4(input_2.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];\n+\t                        vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;\n+\t                        vec3 _20490;\n+\t                        _20490.x = _20562.x;\n+\t                        _20490.y = _20562.y;\n+\t                        float _12505;\n+\t                        do\n \t                        {\n-\t                            _12505 = _15311;\n+\t                            float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);\n+\t                            float _15311 = dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));\n+\t                            bool _12891;\n+\t                            if (_15311 == 0.0)\n+\t                            {\n+\t                                _12891 = true;\n+\t                            }\n+\t                            else\n+\t                            {\n+\t                                _12891 = _15311 == 1.0;\n+\t                            }\n+\t                            if (_12891)\n+\t                            {\n+\t                                _12505 = _15311;\n+\t                                break;\n+\t                            }\n+\t                            _12505 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _24369.xxxx)) + (textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3(_20490.xy, _20322), 0.0) * _24369.y);\n \t                            break;\n-\t                        }\n-\t                        _12505 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _24370.xxxx)) + (textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3(_20490.xy, _20322), 0.0) * _24370.y);\n-\t                        break;\n-\t                    } while(false);\n-\t                    _7934 = _12505;\n+\t                        } while(false);\n+\t                        _7934 = _12505;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0;\n+\t                    }\n+\t                    _12506 = mix(_7934, _23727, _13142);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0;\n+\t                    _12506 = _23727;\n \t                }\n-\t                _12506 = mix(_7934, _23727, _13138);\n+\t                _21712 = _12506;\n \t            }\n \t            else\n \t            {\n-\t                _12506 = _23727;\n+\t                _21712 = 1.0;\n \t            }\n-\t            _19363 = _12506;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0;\n-\t        }\n-\t        float _13279 = mix(_19363, 1.0, saturate((distance(_10061.xyz, PerViewConstantBuffer_t._m6) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));\n-\t        float _12507;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12507 = min(_13279, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m10], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), (_11408.xy * PerViewConstantBuffer_t._m3.xy).xy, 0.0).z);\n+\t            float _13279 = mix(_21712, 1.0, saturate((distance(_9737, PerViewConstantBuffer_t._m7) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));\n+\t            float _12507;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12507 = min(_13279, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m10], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), (_11408.xy * PerViewConstantBuffer_t._m4.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12507 = _13279;\n+\t            }\n+\t            _12508 = _12507;\n \t        }\n \t        else\n \t        {\n-\t            _12507 = _13279;\n+\t            _12508 = 1.0;\n \t        }\n-\t        _21712 = _12507;\n+\t        _12320 = _12508;\n \t    }\n \t    else\n \t    {\n-\t        _21712 = 1.0;\n+\t        _12320 = 1.0;\n \t    }\n \t    vec3 _9716;\n \t    vec3 _24878;\n \t    SPIRV_CROSS_BRANCH\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735) * _21712) > 0.0)\n+\t    if ((_8634 * _12320) > 0.0)\n \t    {\n-\t        vec3 _15460 = mix(_17892, _24735, bvec3(all(equal(_17892, vec3(1.0)))));\n-\t        float _13811 = max(0.0, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));\n+\t        vec3 _15460 = mix(_17892, _17117.xyz, bvec3(all(equal(_17892, vec3(1.0)))));\n+\t        float _13811 = max(0.0, dot(_17117.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));\n \t        vec3 _17874 = vec3(_13811);\n \t        vec3 _18223;\n \t        if (_13694 > 0.0)\n \t        {\n \t            float _8780 = dot(_15460, PerViewLightingConstantBufferGpu_t._m16.xyz);\n \t            float _8124 = saturate(_13694);\n-\t            _18223 = mix(_17874.xyz, vec3((((0.5 + (_13811 * 0.5)) + pow(1.0 - saturate(_8780), 4.0)) * saturate((_8780 + 0.20000000298023223876953125) * 4.0)) * saturate(mix(dot(mix(_24735, _15460, vec3(10.0)), PerViewLightingConstantBufferGpu_t._m16.xyz), 1.0, _8124))), vec3(_8124));\n+\t            _18223 = mix(_17874.xyz, vec3((((0.5 + (_13811 * 0.5)) + pow(1.0 - saturate(_8780), 4.0)) * saturate((_8780 + 0.20000000298023223876953125) * 4.0)) * saturate(mix(dot(mix(_17117.xyz, _15460, vec3(10.0)), PerViewLightingConstantBufferGpu_t._m16.xyz), 1.0, _8124))), vec3(_8124));\n \t        }\n \t        else\n \t        {\n \t            _18223 = _17874;\n \t        }\n \t        vec2 _17301 = max(_11004, vec2(PerViewLightingConstantBufferGpu_t._m16.w));\n-\t        vec3 _21889 = (-normalize(_10061.xyz - PerViewConstantBuffer_t._m6.xyz)).xyz;\n+\t        vec3 _21889 = (-normalize(_10061.xyz - PerViewConstantBuffer_t._m7.xyz)).xyz;\n \t        vec3 _12281 = normalize(PerViewLightingConstantBufferGpu_t._m16.xyz + _21889).xyz;\n \t        vec3 _19012 = _15460.xyz;\n \t        float _12386 = dot(_12281, _19012);\n@@ -1529,9 +1739,9 @@ PS\n \t        float _16150 = _9850 + 1.0;\n \t        float _6835 = (_16150 * _16150) * 0.125;\n \t        float _19569 = 1.0 - _6835;\n-\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _21712).xyz;\n+\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _12320).xyz;\n \t        _9716 = PerViewLightingConstantBufferGpu_t._m9.xyz + (_18223.xyz * _16808);\n-\t        _24878 = (((_22671.xyz + ((vec3(1.0) - _22671.xyz) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * ((_24198 * _24198) / ((4.0 * ((_13811 * _19569) + _6835)) * ((max(0.0, dot(_19012, _21889)) * _19569) + _6835)))).xyz * _13811).xyz * _16808;\n+\t        _24878 = (((_17116.xyz + ((vec3(1.0) - _17116.xyz) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * ((_24198 * _24198) / ((4.0 * ((_13811 * _19569) + _6835)) * ((max(0.0, dot(_19012, _21889)) * _19569) + _6835)))).xyz * _13811).xyz * _16808;\n \t    }\n \t    else\n \t    {\n@@ -1540,32 +1750,32 @@ PS\n \t    }\n \t    bvec4 _24467 = notEqual(PerViewConstantBufferCsgo_t._m2, ivec4(0));\n \t    bool _20061 = _24467.x;\n-\t    vec4 _19364;\n+\t    vec4 _19363;\n \t    if (_20061)\n \t    {\n-\t        vec4 _18621 = vec4(_10061.xyz, 1.0).xyzw * PerViewConstantBufferCsgo_t._m15;\n+\t        vec4 _18621 = vec4(_9737, 1.0).xyzw * PerViewConstantBufferCsgo_t._m16;\n \t        float _20176 = _18621.w;\n \t        vec2 _11414 = _18621.xy / vec2(_20176);\n \t        vec4 _6651;\n-\t        _6651.x = clamp(((_11414.x + 1.0) * PerViewConstantBuffer_t._m2.x) * 0.5, 0.0, PerViewConstantBuffer_t._m2.x - 1.0);\n-\t        _6651.y = clamp(((1.0 - _11414.y) * PerViewConstantBuffer_t._m2.y) * 0.5, 0.0, PerViewConstantBuffer_t._m2.y - 1.0);\n+\t        _6651.x = clamp(((_11414.x + 1.0) * PerViewConstantBuffer_t._m3.x) * 0.5, 0.0, PerViewConstantBuffer_t._m3.x - 1.0);\n+\t        _6651.y = clamp(((1.0 - _11414.y) * PerViewConstantBuffer_t._m3.y) * 0.5, 0.0, PerViewConstantBuffer_t._m3.y - 1.0);\n \t        _6651.w = _20176;\n-\t        _19364 = _6651;\n+\t        _19363 = _6651;\n \t    }\n \t    else\n \t    {\n-\t        _19364 = _11408;\n+\t        _19363 = _11408;\n \t    }\n \t    uvec2 _7663 = uvec2(PerViewLightingConstantBufferGpu_t._m12.x);\n-\t    uvec2 _12083 = uvec2(_19364.xy - PerViewConstantBuffer_t._m1.xy) >> _7663;\n+\t    uvec2 _12083 = uvec2(_19363.xy - PerViewConstantBuffer_t._m2.xy) >> _7663;\n \t    uint _10838 = PerViewLightingConstantBufferGpu_t._m10.y + (((_12083.y * PerViewLightingConstantBufferGpu_t._m12.y) + _12083.x) * PerViewLightingConstantBufferGpu_t._m10.z);\n-\t    uint _23393 = PerViewLightingConstantBufferGpu_t._m10.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t._m13.x, 0.0, PerViewLightingConstantBufferGpu_t._m13.y)) * PerViewLightingConstantBufferGpu_t._m10.z);\n-\t    vec3 _13139;\n+\t    uint _23393 = PerViewLightingConstantBufferGpu_t._m10.x + (uint(clamp(_19363.w * PerViewLightingConstantBufferGpu_t._m13.x, 0.0, PerViewLightingConstantBufferGpu_t._m13.y)) * PerViewLightingConstantBufferGpu_t._m10.z);\n+\t    vec3 _13143;\n \t    vec3 _16324;\n-\t    _13139 = _9716;\n+\t    _13143 = _9716;\n \t    _16324 = _24878;\n \t    uint _21567;\n-\t    vec3 _13140;\n+\t    vec3 _13144;\n \t    vec3 _16325;\n \t    uint _17017 = 0u;\n \t    for (;;)\n@@ -1575,8 +1785,8 @@ PS\n \t            break;\n \t        }\n \t        uint _14475 = subgroupOr(g_CullBits_1._m0[_10838 + _17017] & g_CullBits_1._m0[_23393 + _17017]);\n-\t        _13140 = _16324;\n-\t        _16325 = _13139;\n+\t        _13144 = _16324;\n+\t        _16325 = _13143;\n \t        uint _20344;\n \t        vec3 _13212;\n \t        vec3 _15670;\n@@ -1591,7 +1801,7 @@ PS\n \t            _20344 = _17018 & (_17018 - 1u);\n \t            do\n \t            {\n-\t                vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(input_1.xyz, 1.0);\n+\t                vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(input_2.xyz, 1.0);\n \t                vec3 _10521 = _24893.xyz / vec3(_24893.w);\n \t                vec4 _22905;\n \t                _22905.x = _10521.x;\n@@ -1608,18 +1818,18 @@ PS\n \t                {\n \t                    _7426 = false;\n \t                }\n-\t                bool _12890;\n+\t                bool _12892;\n \t                if (!_7426)\n \t                {\n-\t                    _12890 = true;\n+\t                    _12892 = true;\n \t                }\n \t                else\n \t                {\n-\t                    _12890 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(input_1.xyz, 1.0)).xyz), vec3(1.0)));\n+\t                    _12892 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(input_2.xyz, 1.0)).xyz), vec3(1.0)));\n \t                }\n-\t                if (_12890)\n+\t                if (_12892)\n \t                {\n-\t                    _13212 = _13140;\n+\t                    _13212 = _13144;\n \t                    _15670 = _16325;\n \t                    break;\n \t                }\n@@ -1652,7 +1862,7 @@ PS\n \t                float _11633;\n \t                if (g_BarnLights_1._m0[_12608]._m2.w != 0.0)\n \t                {\n-\t                    vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - input_1.xyz;\n+\t                    vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - input_2.xyz;\n \t                    float _18345 = dot(_10017, _10017);\n \t                    float _17647 = sqrt(_18345);\n \t                    vec3 _20958 = _10017 - _16268;\n@@ -1730,7 +1940,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    vec3 _12508;\n+\t                    vec3 _12509;\n \t                    if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)\n \t                    {\n \t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);\n@@ -1746,7 +1956,7 @@ PS\n \t                        vec3 _20492 = _14081;\n \t                        _20492.x = _20564.x;\n \t                        _20492.y = _20564.y;\n-\t                        _12508 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m28], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _20492.xyz, 0.0).xyz;\n+\t                        _12509 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m28], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _20492.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -1755,13 +1965,13 @@ PS\n \t                        vec3 _20491 = _13791;\n \t                        _20491.x = _20563.x;\n \t                        _20491.y = _20563.y;\n-\t                        _12508 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m28], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _20491.xyz, 0.0).xyz;\n+\t                        _12509 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m28], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _20491.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12508;\n+\t                    _21548 = _12509;\n \t                }\n \t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n-\t                    _13212 = _13140;\n+\t                    _13212 = _13144;\n \t                    _15670 = _16325;\n \t                    break;\n \t                }\n@@ -1772,10 +1982,10 @@ PS\n \t                    if ((g_BarnLights_1._m0[_12608]._m13 & 4u) != 0u)\n \t                    {\n \t                        vec2 _6281 = _22905.yx * vec2(1.0, -1.0);\n-\t                        vec3 _23714 = _21642;\n-\t                        _23714.x = _6281.x;\n-\t                        _23714.y = _6281.y;\n-\t                        _19629 = _23714;\n+\t                        vec3 _23715 = _21642;\n+\t                        _23715.x = _6281.x;\n+\t                        _23715.y = _6281.y;\n+\t                        _19629 = _23715;\n \t                    }\n \t                    else\n \t                    {\n@@ -1784,30 +1994,30 @@ PS\n \t                    float _24972;\n \t                    do\n \t                    {\n-\t                        float _21462 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);\n+\t                        float _21464 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);\n \t                        vec2 _10393 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;\n-\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _21462), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _21462), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _21462), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _21462), 0.0)).xyzw, vec4(0.25));\n-\t                        bool _12891;\n+\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _21464), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _21464), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _21464), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _21464), 0.0)).xyzw, vec4(0.25));\n+\t                        bool _12893;\n \t                        if (_15312 == 0.0)\n \t                        {\n-\t                            _12891 = true;\n+\t                            _12893 = true;\n \t                        }\n \t                        else\n \t                        {\n-\t                            _12891 = _15312 == 1.0;\n+\t                            _12893 = _15312 == 1.0;\n \t                        }\n-\t                        if (_12891)\n+\t                        if (_12893)\n \t                        {\n \t                            _24972 = _15312;\n \t                            break;\n \t                        }\n-\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _21462), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _21462), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _21462), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _21462), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_10393, _21462), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n+\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _21464), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _21464), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _21464), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _21464), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_10393, _21464), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n \t                        break;\n \t                    } while(false);\n \t                    vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12608]._m12);\n \t                    if (all(equal(_19878.xyz, vec3(0.0))))\n \t                    {\n-\t                        _13212 = _13140;\n+\t                        _13212 = _13144;\n \t                        _15670 = _16325;\n \t                        break;\n \t                    }\n@@ -1817,22 +2027,22 @@ PS\n \t                {\n \t                    _21549 = _21548;\n \t                }\n-\t                vec3 _15462 = mix(_17892, _24735, bvec3(all(equal(_17892, vec3(1.0)))));\n-\t                float _13812 = max(0.0, dot(_14786.xyz, _11179.xyz));\n+\t                vec3 _15462 = mix(_17892, _17117.xyz, bvec3(all(equal(_17892, vec3(1.0)))));\n+\t                float _13812 = max(0.0, dot(_17117.xyz, _11179.xyz));\n \t                vec3 _17875 = vec3(_13812);\n \t                vec3 _18224;\n \t                if (_13694 > 0.0)\n \t                {\n \t                    float _8781 = dot(_15462, _11179.xyz);\n \t                    float _8125 = saturate(_13694);\n-\t                    _18224 = mix(_17875.xyz, vec3((((0.5 + (_13812 * 0.5)) + pow(1.0 - saturate(_8781), 4.0)) * saturate((_8781 + 0.20000000298023223876953125) * 4.0)) * saturate(mix(dot(mix(_24735, _15462, vec3(10.0)), _11179.xyz), 1.0, _8125))), vec3(_8125));\n+\t                    _18224 = mix(_17875.xyz, vec3((((0.5 + (_13812 * 0.5)) + pow(1.0 - saturate(_8781), 4.0)) * saturate((_8781 + 0.20000000298023223876953125) * 4.0)) * saturate(mix(dot(mix(_17117.xyz, _15462, vec3(10.0)), _11179.xyz), 1.0, _8125))), vec3(_8125));\n \t                }\n \t                else\n \t                {\n \t                    _18224 = _17875;\n \t                }\n \t                vec2 _17302 = max(_11004, vec2(g_BarnLights_1._m0[_12608]._m11));\n-\t                vec3 _21890 = (-normalize(_10061.xyz - PerViewConstantBuffer_t._m6.xyz)).xyz;\n+\t                vec3 _21890 = (-normalize(_10061.xyz - PerViewConstantBuffer_t._m7.xyz)).xyz;\n \t                vec3 _12282 = normalize(_11179.xyz + _21890).xyz;\n \t                vec3 _19014 = _15462.xyz;\n \t                float _12387 = dot(_12282, _19014);\n@@ -1842,190 +2052,206 @@ PS\n \t                float _16151 = _9851 + 1.0;\n \t                float _6836 = (_16151 * _16151) * 0.125;\n \t                float _19571 = 1.0 - _6836;\n-\t                _13212 = _13140.xyz + ((((_22671.xyz + ((vec3(1.0) - _22671.xyz) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(_11179.xyz, _12282))), 5.0))) * ((_24199 * _24199) / ((4.0 * ((_13812 * _19571) + _6836)) * ((max(0.0, dot(_19014, _21890)) * _19571) + _6836)))).xyz * _13812).xyz * _21549.xyz);\n+\t                _13212 = _13144.xyz + ((((_17116.xyz + ((vec3(1.0) - _17116.xyz) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(_11179.xyz, _12282))), 5.0))) * ((_24199 * _24199) / ((4.0 * ((_13812 * _19571) + _6836)) * ((max(0.0, dot(_19014, _21890)) * _19571) + _6836)))).xyz * _13812).xyz * _21549.xyz);\n \t                _15670 = _16325.xyz + (_18224.xyz * _21549.xyz);\n \t                break;\n \t            } while(false);\n-\t            _13140 = _13212;\n+\t            _13144 = _13212;\n \t            _16325 = _15670;\n \t            _17018 = _20344;\n \t            continue;\n \t        }\n \t        _21567 = _17017 + 1u;\n-\t        _13139 = _16325;\n-\t        _16324 = _13140;\n+\t        _13143 = _16325;\n+\t        _16324 = _13144;\n \t        _17017 = _21567;\n \t        continue;\n \t    }\n-\t    vec3 _10145 = normalize(_10061.xyz - PerViewConstantBuffer_t._m6.xyz);\n+\t    vec3 _10145 = normalize(_10061.xyz - PerViewConstantBuffer_t._m7.xyz);\n \t    vec3 _19257 = -_10145;\n \t    float _17138 = _11004.x + _11004.y;\n \t    float _19582 = _17138 * _17138;\n \t    float _17751 = dot(_11004.xy, vec2(0.5));\n \t    vec3 _6520 = _17892.xyz;\n \t    vec3 _19081 = _17892.xyz;\n-\t    float _12853 = PerViewLightingConstantBufferGpu_t._m14.y * sqrt(_17751);\n-\t    vec3 _11901 = _10061.xyz;\n+\t    float _12587 = PerViewLightingConstantBufferGpu_t._m14.y * sqrt(_17751);\n \t    vec3 _11008;\n \t    vec4 _14444;\n-\t    if (PerViewConstantBufferCsgo_t._m29 != 0.0)\n+\t    if (PerViewConstantBufferCsgo_t._m30 != 0.0)\n \t    {\n-\t        float _9642 = dot(vec4(((_11901 + PerViewConstantBuffer_t._m5.xyz) + ((-PerViewConstantBuffer_t._m7) * PerViewConstantBufferCsgo_t._m29)).xyz, 1.0), vec4(PerViewConstantBuffer_t._m7.xyz, dot((PerViewConstantBuffer_t._m5.xyz + PerViewConstantBuffer_t._m6.xyz).xyz + (PerViewConstantBuffer_t._m7.xyz * PerViewConstantBuffer_t._m4), PerViewConstantBuffer_t._m7.xyz)));\n+\t        float _9642 = dot(vec4(((_9737 + PerViewConstantBuffer_t._m6.xyz) + ((-PerViewConstantBuffer_t._m8) * PerViewConstantBufferCsgo_t._m30)).xyz, 1.0), vec4(PerViewConstantBuffer_t._m8.xyz, dot((PerViewConstantBuffer_t._m6.xyz + PerViewConstantBuffer_t._m7.xyz).xyz + (PerViewConstantBuffer_t._m8.xyz * PerViewConstantBuffer_t._m5), PerViewConstantBuffer_t._m8.xyz)));\n \t        vec3 _21713;\n \t        if (_9642 <= 0.0)\n \t        {\n \t            _21713 = _10061;\n \t        }\n \t        else\n \t        {\n-\t            _21713 = _11901 + ((-PerViewConstantBuffer_t._m7.xyz) * _9642);\n+\t            _21713 = _9737 + ((-PerViewConstantBuffer_t._m8.xyz) * _9642);\n \t        }\n-\t        vec4 _19975 = vec4(_21713.xyz, 1.0) * PerViewConstantBufferCsgo_t._m15;\n+\t        vec4 _19975 = vec4(_21713.xyz, 1.0) * PerViewConstantBufferCsgo_t._m16;\n \t        float _20177 = _19975.w;\n \t        vec2 _11415 = _19975.xy / vec2(_20177);\n \t        vec4 _6652;\n-\t        _6652.x = clamp(((_11415.x + 1.0) * PerViewConstantBuffer_t._m2.x) * 0.5, 0.0, PerViewConstantBuffer_t._m2.x - 1.0);\n-\t        _6652.y = clamp(((1.0 - _11415.y) * PerViewConstantBuffer_t._m2.y) * 0.5, 0.0, PerViewConstantBuffer_t._m2.y - 1.0);\n+\t        _6652.x = clamp(((_11415.x + 1.0) * PerViewConstantBuffer_t._m3.x) * 0.5, 0.0, PerViewConstantBuffer_t._m3.x - 1.0);\n+\t        _6652.y = clamp(((1.0 - _11415.y) * PerViewConstantBuffer_t._m3.y) * 0.5, 0.0, PerViewConstantBuffer_t._m3.y - 1.0);\n \t        _6652.w = _20177;\n \t        _11008 = _21713;\n \t        _14444 = _6652;\n \t    }\n \t    else\n \t    {\n-\t        _11008 = _11901;\n+\t        _11008 = _9737;\n \t        _14444 = _11408.xyzw;\n \t    }\n \t    float _22047 = _17751 * _17751;\n \t    float _20711 = saturate(1.0 - _22047);\n \t    vec3 _25271 = normalize(mix(_6520, reflect(_10145.xyz, _19081).xyz, vec3(_20711 * (sqrt(_20711) + _22047))));\n-\t    uvec2 _6815 = uvec2(_14444.xy - PerViewConstantBuffer_t._m1.xy) >> _7663;\n+\t    uvec2 _6815 = uvec2(_14444.xy - PerViewConstantBuffer_t._m2.xy) >> _7663;\n \t    uint _12130 = PerViewLightingConstantBufferGpu_t._m11.y + (((_6815.y * PerViewLightingConstantBufferGpu_t._m12.y) + _6815.x) * PerViewLightingConstantBufferGpu_t._m11.z);\n \t    uint _23394 = PerViewLightingConstantBufferGpu_t._m11.x + (uint(clamp(_14444.w * PerViewLightingConstantBufferGpu_t._m13.x, 0.0, PerViewLightingConstantBufferGpu_t._m13.y)) * PerViewLightingConstantBufferGpu_t._m11.z);\n-\t    vec4 _13141;\n-\t    float _16308;\n-\t    vec3 _17116;\n-\t    _13141 = vec4(0.0);\n-\t    _16308 = 0.00999999977648258209228515625;\n-\t    _17116 = vec3(0.0);\n+\t    vec4 _13145;\n+\t    float _16309;\n+\t    vec3 _17119;\n+\t    _13145 = vec4(0.0);\n+\t    _16309 = 0.00999999977648258209228515625;\n+\t    _17119 = vec3(0.0);\n \t    uint _8896;\n-\t    vec4 _13144;\n+\t    vec4 _13148;\n \t    vec3 _14891;\n-\t    float _16310;\n+\t    float _16311;\n \t    bool _18360;\n \t    uint _17020 = 0u;\n \t    bool _17133 = false;\n \t    for (;;)\n \t    {\n-\t        bool _12892;\n+\t        bool _12894;\n \t        if (_17020 < PerViewLightingConstantBufferGpu_t._m11.z)\n \t        {\n-\t            _12892 = !_17133;\n+\t            _12894 = !_17133;\n \t        }\n \t        else\n \t        {\n-\t            _12892 = false;\n+\t            _12894 = false;\n \t        }\n-\t        if (!_12892)\n+\t        if (!_12894)\n \t        {\n \t            break;\n \t        }\n \t        uint _14476 = subgroupOr(g_CullBits_1._m0[_12130 + _17020] & g_CullBits_1._m0[_23394 + _17020]);\n-\t        vec3 _13142;\n-\t        vec4 _16309;\n-\t        _13142 = _17116;\n-\t        _16309 = _13141;\n+\t        vec3 _13146;\n+\t        vec4 _16310;\n+\t        _13146 = _17119;\n+\t        _16310 = _13145;\n \t        uint _10156;\n-\t        vec3 _13143;\n+\t        vec3 _13147;\n \t        vec4 _16381;\n \t        float _16479;\n \t        uint _17021 = _14476;\n-\t        float _17134 = _16308;\n+\t        float _17134 = _16309;\n \t        for (;;)\n \t        {\n \t            if (!(_17021 != 0u))\n \t            {\n-\t                _13144 = _16309;\n-\t                _16310 = _17134;\n-\t                _14891 = _13142;\n+\t                _13148 = _16310;\n+\t                _16311 = _17134;\n+\t                _14891 = _13146;\n \t                _18360 = _17133;\n \t                break;\n \t            }\n \t            uint _18154 = uint(findLSB(_17021));\n \t            int _12609 = int(_18154 + (_17020 * 32u));\n \t            _10156 = _17021 & (_17021 - 1u);\n-\t            vec3 _7748 = (PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m0 * vec4(_11008.xyz, 1.0)).xyz;\n-\t            vec3 _8793 = saturate((_7748 - PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m1) * PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m5.xyz);\n-\t            vec3 _19651 = saturate((PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m3 - _7748) * PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m5.xyz);\n+\t            vec3 _7750 = (PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m0 * vec4(_11008.xyz, 1.0)).xyz;\n+\t            vec3 _8793 = saturate((_7750 - PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m1) * PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m5.xyz);\n+\t            vec3 _19651 = saturate((PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m3 - _7750) * PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m5.xyz);\n \t            float _17265 = min(min(_8793.x, min(_8793.y, _8793.z)), min(_19651.x, min(_19651.y, _19651.z)));\n \t            if (_17265 == 0.0)\n \t            {\n-\t                _13143 = _13142;\n-\t                _16381 = _16309;\n+\t                _13147 = _13146;\n+\t                _16381 = _16310;\n \t                _16479 = _17134;\n-\t                _13142 = _13143;\n-\t                _16309 = _16381;\n+\t                _13146 = _13147;\n+\t                _16310 = _16381;\n \t                _17134 = _16479;\n \t                _17021 = _10156;\n \t                continue;\n \t            }\n \t            vec3 _19630;\n-\t            if (PerViewConstantBufferCsgo_t._m28 != 0.0)\n+\t            if (PerViewConstantBufferCsgo_t._m29 != 0.0)\n \t            {\n \t                vec3 _19779 = PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m1 + ((PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m3 - PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m1) * 0.5);\n-\t                _19630 = ((_7748 - _19779) * PerViewConstantBufferCsgo_t._m28) + _19779;\n+\t                _19630 = ((_7750 - _19779) * PerViewConstantBufferCsgo_t._m29) + _19779;\n \t            }\n \t            else\n \t            {\n-\t                _19630 = _7748;\n+\t                _19630 = _7750;\n \t            }\n \t            vec3 _7648 = (PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m0 * vec4(_25271.xyz, 0.0)).xyz;\n \t            vec3 _11253 = max(((PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m3.xyz - _19630.xyz) / _7648).xyz, ((PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m1.xyz - _19630.xyz) / _7648).xyz);\n \t            float _11076 = ((_17265 * _17265) * (((-2.0) * _17265) + 3.0)) * (1.0 - _17134);\n \t            float _13713 = _17134 + _11076;\n-\t            vec3 _15431 = _13142 + ((textureLod(samplerCubeArray(g_bindless_TextureCubeArray[PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m4], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), vec4(mix(_19630.xyz + (_7648 * abs(min(_11253.x, min(_11253.y, _11253.z)))), _7648, vec3(_17751)).xyz, float(PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m2)), _12853).xyz * PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m6) * _11076);\n-\t            vec4 _7460 = _16309 + (PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m7 * _11076);\n+\t            vec3 _15431 = _13146 + ((textureLod(samplerCubeArray(g_bindless_TextureCubeArray[PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m4], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), vec4(mix(_19630.xyz + (_7648 * abs(min(_11253.x, min(_11253.y, _11253.z)))), _7648, vec3(_17751)).xyz, float(PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m2)), _12587).xyz * PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m6) * _11076);\n+\t            vec4 _7460 = _16310 + (PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m7 * _11076);\n \t            if (_13713 > 0.9900000095367431640625)\n \t            {\n-\t                _13144 = _7460;\n-\t                _16310 = _13713;\n+\t                _13148 = _7460;\n+\t                _16311 = _13713;\n \t                _14891 = _15431;\n \t                _18360 = true;\n \t                break;\n \t            }\n-\t            _13143 = _15431;\n+\t            _13147 = _15431;\n \t            _16381 = _7460;\n \t            _16479 = _13713;\n-\t            _13142 = _13143;\n-\t            _16309 = _16381;\n+\t            _13146 = _13147;\n+\t            _16310 = _16381;\n \t            _17134 = _16479;\n \t            _17021 = _10156;\n \t            continue;\n \t        }\n \t        _8896 = _17020 + 1u;\n-\t        _13141 = _13144;\n-\t        _16308 = _16310;\n-\t        _17116 = _14891;\n+\t        _13145 = _13148;\n+\t        _16309 = _16311;\n+\t        _17119 = _14891;\n \t        _17133 = _18360;\n \t        _17020 = _8896;\n \t        continue;\n \t    }\n \t    vec4 _11487 = textureLod(sampler2DArray(g_bindless_Texture2DArray_float4[PerViewConstantBufferCsgo_t._m5], g_bindless_Sampler[_Globals_.g_sBilinearClamp]), vec3((vec2(_17751, sqrt(1.0 - max(0.0, dot(_19257.xyz, _6520)))) * 0.984375) + vec2(0.0078125), 1.0).xyz, 0.0);\n-\t    vec3 _7300 = mix(_11487.xxx, _11487.yyy, _22671);\n+\t    vec3 _7300 = mix(_11487.xxx, _11487.yyy, _17116);\n \t    float _21809 = 1.0 - _11487.y;\n-\t    vec3 _15517 = _22671 + ((vec3(1.0) - _22671) * vec3(0.0476190485060214996337890625));\n+\t    vec3 _15517 = _17116 + ((vec3(1.0) - _17116) * vec3(0.0476190485060214996337890625));\n \t    vec3 _23208 = ((_7300 * _15517) / (vec3(1.0) - (_15517 * _21809))) * _21809;\n \t    vec3 _13436 = vec3(_21711 * _17476).xyz;\n-\t    vec3 _22686 = (_13139.xyz + ((_18708 * (vec3(1.0) - (_7300 + _23208))).xyz * _13436).xyz) * (_20195.xyz * pow(1.0 - _20079, _Globals_.g_flMetalnessTransitionBias)).xyz;\n-\t    vec4 _11205 = vec4(_22686, input_4.w);\n-\t    _11205.x = _22686.x;\n+\t    vec3 _22437 = (_18708 * (vec3(1.0) - (_7300 + _23208))).xyz * _13436;\n+\t    vec3 _9982;\n+\t    vec3 _22798;\n+\t    SPIRV_CROSS_BRANCH\n+\t    if (_7578 > 0.0)\n+\t    {\n+\t        float _17864 = saturate(_8634);\n+\t        float _10543 = saturate((_8634 + 0.20000000298023223876953125) * 0.833333313465118408203125) * 0.833333313465118408203125;\n+\t        _9982 = mix(_22437, mix(pow(_22437, vec3(1.39999997615814208984375, 0.60000002384185791015625, 0.449999988079071044921875)), _22437, vec3(saturate(_17476 * 0.75))), vec3(_7578));\n+\t        _22798 = _13143 + ((PerViewLightingConstantBufferGpu_t._m17.xyz * (_12320 * _7578)) * (((vec3(min(_10543, _17864)) + (vec3(0.5, 0.75, 1.0) * max(_10543 - _17864, 0.0))) * mix(1.0, (0.63999998569488525390625 * pow(1.36000001430511474609375 + (1.2000000476837158203125 * dot(_19257, PerViewLightingConstantBufferGpu_t._m16.xyz)), -1.5)) * (1.32679998874664306640625 + (_17864 * (2.138000011444091796875 + (_17864 * (1.677700042724609375 + (_17864 * (-0.361699998378753662109375))))))), 0.300000011920928955078125)) - vec3(_17864)));\n+\t    }\n+\t    else\n+\t    {\n+\t        _9982 = _22437;\n+\t        _22798 = _13143;\n+\t    }\n+\t    vec3 _22686 = (_22798.xyz + _9982.xyz) * _16308.xyz;\n+\t    float _12931 = _22686.x;\n+\t    vec4 _11205 = vec4(_12931, _22686.yz, input_5.w);\n+\t    _11205.x = _12931;\n \t    _11205.y = _22686.y;\n \t    _11205.z = _22686.z;\n-\t    vec3 _15752 = _11205.xyz + ((_16324 * (vec3(1.0) + (_22671 * ((0.125 * (_19582 * _19582)) * saturate(dot(_17892, _19257)))))).xyz * _13436).xyz;\n+\t    vec3 _15752 = _11205.xyz + ((_16324 * (vec3(1.0) + (_17116 * ((0.125 * (_19582 * _19582)) * saturate(dot(_17892, _19257)))))).xyz * _13436).xyz;\n \t    vec4 _20493 = _11205;\n \t    _20493.x = _15752.x;\n \t    _20493.y = _15752.y;\n \t    _20493.z = _15752.z;\n-\t    vec3 _15733 = _20493.xyz + ((((_17116 / vec3(_16308)).xyz * min(dot(_18708.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125)) / dot(vec4(_19081, 1.0), (_13141 / vec4(_16308)).xyzw), max((_17751 * PerViewLightingConstantBufferGpu_t._m4.x) + PerViewLightingConstantBufferGpu_t._m4.y, 1.0))).xyz * (_7300 + _23208)).xyz * _13436).xyz;\n+\t    vec3 _15733 = _20493.xyz + ((((_17119 / vec3(_16309)).xyz * min(dot(_18708.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125)) / dot(vec4(_19081, 1.0), (_13145 / vec4(_16309)).xyzw), max((_17751 * PerViewLightingConstantBufferGpu_t._m4.x) + PerViewLightingConstantBufferGpu_t._m4.y, 1.0))).xyz * (_7300 + _23208)).xyz * _13436).xyz;\n \t    vec4 _13888 = _20493;\n \t    _13888.x = _15733.x;\n \t    _13888.y = _15733.y;\n@@ -2034,29 +2260,29 @@ PS\n \t    if (_Globals_.g_bFogEnabled != 0)\n \t    {\n \t        vec3 _21493;\n-\t        vec3 _6538 = _11901 - PerViewConstantBuffer_t._m6.xyz;\n-\t        vec3 _9057 = _6538.xyz;\n+\t        vec3 _23187 = _9737 - PerViewConstantBuffer_t._m7.xyz;\n+\t        vec3 _9057 = _23187.xyz;\n \t        vec3 _19340;\n \t        do\n \t        {\n-\t            _21493 = _6538.xyz;\n-\t            bool _12893;\n-\t            if (dot(_21493, _21493) > PerViewConstantBufferCsgo_t._m21.x)\n+\t            _21493 = _23187.xyz;\n+\t            bool _12895;\n+\t            if (dot(_21493, _21493) > PerViewConstantBufferCsgo_t._m22.x)\n \t            {\n-\t                _12893 = (_10061.z * PerViewConstantBufferCsgo_t._m21.z) < PerViewConstantBufferCsgo_t._m21.y;\n+\t                _12895 = (_10061.z * PerViewConstantBufferCsgo_t._m22.z) < PerViewConstantBufferCsgo_t._m22.y;\n \t            }\n \t            else\n \t            {\n-\t                _12893 = false;\n+\t                _12895 = false;\n \t            }\n \t            SPIRV_CROSS_BRANCH\n-\t            if (_12893)\n+\t            if (_12895)\n \t            {\n \t                float _17979 = length(_21493);\n-\t                vec2 _9342 = saturate(PerViewConstantBufferCsgo_t._m18.xy + (PerViewConstantBufferCsgo_t._m18.zw * vec2(mix(_17979, _17979 * PerViewConstantBufferCsgo_t._m30.y, _Globals_.g_flFogModificationAmount), _10061.z)));\n-\t                float _13533 = (pow(_9342.x, PerViewConstantBufferCsgo_t._m19.x) * pow(_9342.y, PerViewConstantBufferCsgo_t._m19.y)) * PerViewConstantBufferCsgo_t._m20.w;\n-\t                float _12715 = mix(_13533, _13533 * PerViewConstantBufferCsgo_t._m30.z, _Globals_.g_flFogModificationAmount);\n-\t                _19340 = mix(_13888.xyz, vec4(PerViewConstantBufferCsgo_t._m20.xyz, _12715).xyz, vec3(_12715));\n+\t                vec2 _9342 = saturate(PerViewConstantBufferCsgo_t._m19.xy + (PerViewConstantBufferCsgo_t._m19.zw * vec2(mix(_17979, _17979 * PerViewConstantBufferCsgo_t._m32.y, _Globals_.g_flFogModificationAmount), _10061.z)));\n+\t                float _13533 = (pow(_9342.x, PerViewConstantBufferCsgo_t._m20.x) * pow(_9342.y, PerViewConstantBufferCsgo_t._m20.y)) * PerViewConstantBufferCsgo_t._m21.w;\n+\t                float _12715 = mix(_13533, _13533 * PerViewConstantBufferCsgo_t._m32.z, _Globals_.g_flFogModificationAmount);\n+\t                _19340 = mix(_13888.xyz, vec4(PerViewConstantBufferCsgo_t._m21.xyz, _12715).xyz, vec3(_12715));\n \t                break;\n \t            }\n \t            _19340 = _13888.xyz;\n@@ -2069,21 +2295,21 @@ PS\n \t        vec3 _19341;\n \t        do\n \t        {\n-\t            bool _12894;\n-\t            if (dot(_9057, _9057) > PerViewConstantBufferCsgo_t._m25.x)\n+\t            bool _12896;\n+\t            if (dot(_9057, _9057) > PerViewConstantBufferCsgo_t._m26.x)\n \t            {\n-\t                _12894 = (PerViewConstantBufferCsgo_t._m25.z * _10061.z) < PerViewConstantBufferCsgo_t._m25.y;\n+\t                _12896 = (PerViewConstantBufferCsgo_t._m26.z * _10061.z) < PerViewConstantBufferCsgo_t._m26.y;\n \t            }\n \t            else\n \t            {\n-\t                _12894 = false;\n+\t                _12896 = false;\n \t            }\n-\t            if (_12894)\n+\t            if (_12896)\n \t            {\n \t                float _17980 = length(_21493);\n-\t                float _14602 = saturate(pow(max(0.0, (mix(_17980, _17980 * PerViewConstantBufferCsgo_t._m30.y, _Globals_.g_flFogModificationAmount) * PerViewConstantBufferCsgo_t._m22.y) + PerViewConstantBufferCsgo_t._m22.x), PerViewConstantBufferCsgo_t._m22.w)) * saturate(pow(max(0.0, (_10061.z * PerViewConstantBufferCsgo_t._m23.y) + PerViewConstantBufferCsgo_t._m23.x), PerViewConstantBufferCsgo_t._m23.z));\n-\t                float _16973 = saturate(_14602) * mix(PerViewConstantBufferCsgo_t._m25.w, PerViewConstantBufferCsgo_t._m25.w * PerViewConstantBufferCsgo_t._m30.z, _Globals_.g_flFogModificationAmount);\n-\t                _19341 = mix(_23944.xyz, vec4((textureLod(samplerCube(g_bindless_TextureCube_float4[PerViewConstantBufferCsgo_t._m6], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), normalize((PerViewConstantBufferCsgo_t._m24 * vec4(_9057, 0.0)).xyz).xyz, PerViewConstantBufferCsgo_t._m23.w * saturate(1.0 - (_14602 * PerViewConstantBufferCsgo_t._m22.z))) * PerViewConstantBufferCsgo_t._m26.x).xyz, _16973).xyz, vec3(_16973));\n+\t                float _14602 = saturate(pow(max(0.0, (mix(_17980, _17980 * PerViewConstantBufferCsgo_t._m32.y, _Globals_.g_flFogModificationAmount) * PerViewConstantBufferCsgo_t._m23.y) + PerViewConstantBufferCsgo_t._m23.x), PerViewConstantBufferCsgo_t._m23.w)) * saturate(pow(max(0.0, (_10061.z * PerViewConstantBufferCsgo_t._m24.y) + PerViewConstantBufferCsgo_t._m24.x), PerViewConstantBufferCsgo_t._m24.z));\n+\t                float _16973 = saturate(_14602) * mix(PerViewConstantBufferCsgo_t._m26.w, PerViewConstantBufferCsgo_t._m26.w * PerViewConstantBufferCsgo_t._m32.z, _Globals_.g_flFogModificationAmount);\n+\t                _19341 = mix(_23944.xyz, vec4((textureLod(samplerCube(g_bindless_TextureCube_float4[PerViewConstantBufferCsgo_t._m6], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), normalize((PerViewConstantBufferCsgo_t._m25 * vec4(_9057, 0.0)).xyz).xyz, PerViewConstantBufferCsgo_t._m24.w * saturate(1.0 - (_14602 * PerViewConstantBufferCsgo_t._m23.z))) * PerViewConstantBufferCsgo_t._m27.x).xyz, _16973).xyz, vec3(_16973));\n \t                break;\n \t            }\n \t            _19341 = _23944.xyz;\n@@ -2101,34 +2327,34 @@ PS\n \t    vec3 _19342;\n \t    if (_Globals_.g_flSpawnInvulnerability > 0.0)\n \t    {\n-\t        float _11148 = 1.0 - saturate(dot(_19257, _24735));\n-\t        _19342 = mix(_19366.xyz, _Globals_.g_cInvulnerabilityColor * (mix(dot(_19366.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125)), 0.5, 0.5) + (4.0 * pow(mix(_11148 * texelFetch(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], ivec3(ivec2(_11408.xy) & PerViewConstantBufferCsgo_t._m14, 0).xy, 0).y, 1.0, _11148), mix(3.0, 6.0, 1.0 + (sin(PerViewConstantBuffer_t._m0 * 20.0) * 0.5))))), vec3(_Globals_.g_flSpawnInvulnerability));\n+\t        float _11148 = 1.0 - saturate(dot(_19257, _17117.xyz));\n+\t        _19342 = mix(_19366.xyz, _Globals_.g_cInvulnerabilityColor * (mix(dot(_19366.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125)), 0.5, 0.5) + (4.0 * pow(mix(_11148 * texelFetch(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], ivec3(ivec2(_11408.xy) & PerViewConstantBufferCsgo_t._m15, 0).xy, 0).y, 1.0, _11148), mix(3.0, 6.0, 1.0 + (sin(PerViewConstantBuffer_t._m1 * 20.0) * 0.5))))), vec3(_Globals_.g_flSpawnInvulnerability));\n \t    }\n \t    else\n \t    {\n \t        _19342 = _19366.xyz;\n \t    }\n-\t    vec4 _23946 = _19366;\n-\t    _23946.x = _19342.x;\n-\t    _23946.y = _19342.y;\n-\t    _23946.z = _19342.z;\n+\t    vec4 _23947 = _19366;\n+\t    _23947.x = _19342.x;\n+\t    _23947.y = _19342.y;\n+\t    _23947.z = _19342.z;\n \t    SPIRV_CROSS_BRANCH\n \t    if (_Globals_.g_vKeychainGhostHandData.w > 0.0)\n \t    {\n-\t        float _11567 = saturate((smoothstep(6.0, 2.0, distance(_Globals_.g_vKeychainGhostHandData.xyz, _11901)) - 1.0) * (-1.0));\n-\t        if ((texelFetch(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], ivec3(ivec2(_11408.xy) & PerViewConstantBufferCsgo_t._m14, 0).xy, 0).y - mix((_11567 * 0.5099999904632568359375) + 0.5, (_11567 * 0.90999996662139892578125) + 0.100000001490116119384765625, smoothstep(0.100000001490116119384765625, 1.0, _Globals_.g_vKeychainGhostHandData.w))) < 0.0)\n+\t        float _11567 = saturate((smoothstep(6.0, 2.0, distance(_Globals_.g_vKeychainGhostHandData.xyz, _9737)) - 1.0) * (-1.0));\n+\t        if ((texelFetch(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], ivec3(ivec2(_11408.xy) & PerViewConstantBufferCsgo_t._m15, 0).xy, 0).y - mix((_11567 * 0.5099999904632568359375) + 0.5, (_11567 * 0.90999996662139892578125) + 0.100000001490116119384765625, smoothstep(0.100000001490116119384765625, 1.0, _Globals_.g_vKeychainGhostHandData.w))) < 0.0)\n \t        {\n \t            discard;\n \t        }\n \t    }\n-\t    if (input_4.w < 1.0)\n+\t    if (input_5.w < 1.0)\n \t    {\n-\t        if ((fma(input_4.w, 2.0, -1.5) + texelFetch(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], ivec3(ivec2(_11408.xy) & PerViewConstantBufferCsgo_t._m14, 0).xy, 0).y) < 0.0)\n+\t        if ((fma(input_5.w, 2.0, -1.5) + texelFetch(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], ivec3(ivec2(_11408.xy) & PerViewConstantBufferCsgo_t._m15, 0).xy, 0).y) < 0.0)\n \t        {\n \t            discard;\n \t        }\n \t    }\n-\t    output_0 = _23946;\n+\t    output_0 = _23947;\n \t}\n \t\n \t"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_weapon_sticker.slang",
          "status": "modified",
          "additions": 164,
          "deletions": 153,
          "changes": 317,
          "patch": "@@ -300,7 +300,7 @@ PS\n \tTexture2D g_tStickerScratches < Channel(R, Box(TextureStickerScratches), Linear); OutputFormat(BC7); SrgbRead(false); >;\n \tfloat3 g_vAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.045,.4,1.15).x,-1.4427*log(max(.0001,1-float3(-.045,.4,1.15).y)),2-float3(-.045,.4,1.15).z)); >;\n \tfloat3 g_vDarkMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.1,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.1,.4,1.08).y)),2-float3(-.1,.4,1.08).z)); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat3 g_vHoloAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.05,.35,1.15).x,-1.4427*log(max(.0001,1-float3(-.05,.35,1.15).y)),2-float3(-.05,.35,1.15).z)); >;\n \tfloat3 g_vMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.45,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.45,.4,1.08).y)),2-float3(-.45,.4,1.08).z)); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n@@ -390,12 +390,12 @@ PS\n \t#extension GL_EXT_samplerless_texture_functions : require\n \t#extension GL_KHR_shader_subgroup_arithmetic : require\n \t\n-\tstruct _701\n+\tstruct _953\n \t{\n \t    vec4 _m0[3];\n \t};\n \t\n-\tstruct _911\n+\tstruct _1163\n \t{\n \t    vec4 _m0[4];\n \t};\n@@ -411,12 +411,12 @@ PS\n \t    vec4 _m6;\n \t};\n \t\n-\tstruct _1269\n+\tstruct _2904\n \t{\n \t    _1677 _m0[128];\n \t};\n \t\n-\tstruct _2848\n+\tstruct _954\n \t{\n \t    mat4 _m0[4];\n \t};\n@@ -527,15 +527,15 @@ PS\n \t\n \tlayout(set = 1) uniform _1503 PerViewConstantBuffer_t;\n \t\n-\tstruct _2145\n+\tstruct _1655\n \t{\n \t    vec4 _m0;\n \t    vec4 _m1;\n \t    vec4 _m2;\n \t    vec4 _m3;\n \t    vec4 _m4;\n-\t    _701 _m5;\n-\t    _911 _m6;\n+\t    _953 _m5;\n+\t    _1163 _m6;\n \t    vec4 _m7;\n \t    vec4 _m8;\n \t    vec4 _m9;\n@@ -544,7 +544,7 @@ PS\n \t    uvec4 _m12;\n \t    vec4 _m13;\n \t    vec4 _m14;\n-\t    _1269 _m15;\n+\t    _2904 _m15;\n \t    vec4 _m16;\n \t    vec4 _m17;\n \t    int _m18;\n@@ -554,11 +554,11 @@ PS\n \t    float _m22;\n \t    float _m23;\n \t    float _m24;\n-\t    _2848 _m25;\n-\t    _911 _m26;\n+\t    _954 _m25;\n+\t    _1163 _m26;\n \t};\n \t\n-\tlayout(set = 3) uniform _2145 PerViewLightingConstantBufferGpu_t;\n+\tlayout(set = 3) uniform _1655 PerViewLightingConstantBufferGpu_t;\n \t\n \tlayout(set = 3, binding = 30, std430) readonly buffer g_CullBits\n \t{\n@@ -571,33 +571,33 @@ PS\n \t} g_BarnLights_1;\n \t\n \tlayout(set = 1, binding = 51) uniform texture2D g_tColor;\n-\tlayout(set = 1, binding = 20) uniform sampler g_sUserConfigAllowGlobalMipBias;\n+\tlayout(set = 1, binding = 21) uniform sampler g_sUserConfigAllowGlobalMipBias;\n \tlayout(set = 1, binding = 54) uniform texture2D g_tAmbientOcclusion;\n-\tlayout(set = 1, binding = 19) uniform sampler g_sUserConfig;\n+\tlayout(set = 1, binding = 20) uniform sampler g_sUserConfig;\n \tlayout(set = 1, binding = 55) uniform texture2D g_tMetalness;\n \tlayout(set = 1, binding = 52) uniform texture2D g_tNormal;\n \tlayout(set = 1, binding = 14) uniform sampler g_sAniso;\n \tlayout(set = 1, binding = 57) uniform texture2D g_tSticker0;\n \tlayout(set = 1, binding = 59) uniform texture2D g_tNormalRoughnessSticker0;\n \tlayout(set = 1, binding = 61) uniform texture2D g_tSfxMaskSticker0;\n-\tlayout(set = 1, binding = 25) uniform sampler g_sPoint;\n+\tlayout(set = 1, binding = 26) uniform sampler g_sPoint;\n \tlayout(set = 1, binding = 60) uniform texture2D g_tGlitterNormalSticker0;\n-\tlayout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;\n+\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;\n \tlayout(set = 1, binding = 58) uniform texture2D g_tHoloSpectrumSticker0;\n-\tlayout(set = 1, binding = 26) uniform sampler g_sAnisoClampV;\n+\tlayout(set = 1, binding = 27) uniform sampler g_sAnisoClampV;\n \tlayout(set = 1, binding = 56) uniform texture2D g_tStickerScratches;\n \tlayout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;\n-\tlayout(set = 1, binding = 22) uniform sampler g_sCookieSampler;\n+\tlayout(set = 1, binding = 23) uniform sampler g_sCookieSampler;\n \tlayout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;\n-\tlayout(set = 1, binding = 18) uniform sampler g_sPointClamp;\n+\tlayout(set = 1, binding = 19) uniform sampler g_sPointClamp;\n \tlayout(set = 1, binding = 39) uniform texture2D g_tSsao;\n-\tlayout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n+\tlayout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n \tlayout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;\n \tlayout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;\n-\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;\n+\tlayout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;\n \tlayout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;\n \tlayout(set = 1, binding = 40) uniform textureCubeArray g_tEnvironmentMap;\n-\tlayout(set = 1, binding = 15) uniform sampler g_sBilinearClamp;\n+\tlayout(set = 1, binding = 16) uniform sampler g_sBilinearClamp;\n \tlayout(set = 1, binding = 35) uniform texture2DArray g_tBRDFLookup;\n \tlayout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;\n \t\n@@ -1451,162 +1451,173 @@ PS\n \t    {\n \t        _21712 = _21711;\n \t    }\n-\t    float _21713;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735);\n+\t    float _12320;\n \t    SPIRV_CROSS_BRANCH\n-\t    if (PerViewLightingConstantBufferGpu_t._m18 != 0)\n+\t    if (_8634 > 0.0)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13147;\n-\t        vec3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n-\t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))\n-\t            {\n-\t                _13147 = 1.0;\n-\t                _14975 = vec3(0.0);\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])\n-\t            {\n-\t                vec3 _19470 = vec3(_12779, _18322.yz);\n-\t                vec2 _24804 = _19470.xy;\n-\t                vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));\n-\t                vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;\n-\t                vec3 _20493 = _19470;\n-\t                _20493.x = _20561.x;\n-\t                _20493.y = _20561.y;\n-\t                _13147 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20493;\n-\t                _10191 = _13039;\n-\t                break;\n-\t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n+\t        float _12508;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m18 != 0)\n \t        {\n-\t            vec2 _7045;\n-\t            vec2 _7046;\n-\t            vec2 _7735;\n-\t            float _8969;\n-\t            float _8970;\n-\t            float _15996;\n-\t            float _17302;\n-\t            vec2 _18870;\n-\t            vec4 _20581;\n-\t            vec4 _22024;\n-\t            float _23728;\n-\t            do\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13147;\n+\t            vec3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                _20581 = PerViewLightingConstantBufferGpu_t._m0;\n-\t                _22024 = PerViewLightingConstantBufferGpu_t._m1;\n-\t                _17302 = PerViewLightingConstantBufferGpu_t._m2.z;\n-\t                _15996 = PerViewLightingConstantBufferGpu_t._m3.z;\n-\t                _18870 = vec2(_17302, _15996);\n-\t                _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n-\t                _7045 = vec2(_8969, _15996);\n-\t                _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n-\t                _7046 = vec2(_17302, _8970);\n-\t                _7735 = vec2(_8969, _8970);\n-\t                float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));\n-\t                bool _12892;\n-\t                if (_15310 == 0.0)\n-\t                {\n-\t                    _12892 = true;\n-\t                }\n-\t                else\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))\n \t                {\n-\t                    _12892 = _15310 == 1.0;\n+\t                    _13147 = 1.0;\n+\t                    _14975 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n \t                }\n-\t                if (_12892)\n+\t                vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])\n \t                {\n-\t                    _23728 = _15310;\n+\t                    vec3 _19470 = vec3(_12779, _18322.yz);\n+\t                    vec2 _24804 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));\n+\t                    vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;\n+\t                    vec3 _20493 = _19470;\n+\t                    _20493.x = _20561.x;\n+\t                    _20493.y = _20561.y;\n+\t                    _13147 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20493;\n+\t                    _10191 = _13039;\n \t                    break;\n \t                }\n-\t                _23728 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17302, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22024.y);\n-\t                break;\n-\t            } while(false);\n-\t            float _12506;\n-\t            SPIRV_CROSS_BRANCH\n-\t            if (_13147 < 1.0)\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n+\t            }\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))\n+\t                vec2 _7045;\n+\t                vec2 _7046;\n+\t                vec2 _7735;\n+\t                float _8969;\n+\t                float _8970;\n+\t                float _15996;\n+\t                float _17302;\n+\t                vec2 _18870;\n+\t                vec4 _20581;\n+\t                vec4 _22024;\n+\t                float _23728;\n+\t                do\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];\n-\t                    vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;\n-\t                    vec3 _20494;\n-\t                    _20494.x = _20562.x;\n-\t                    _20494.y = _20562.y;\n-\t                    float _12505;\n-\t                    do\n+\t                    float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);\n+\t                    _20581 = PerViewLightingConstantBufferGpu_t._m0;\n+\t                    _22024 = PerViewLightingConstantBufferGpu_t._m1;\n+\t                    _17302 = PerViewLightingConstantBufferGpu_t._m2.z;\n+\t                    _15996 = PerViewLightingConstantBufferGpu_t._m3.z;\n+\t                    _18870 = vec2(_17302, _15996);\n+\t                    _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n+\t                    _7045 = vec2(_8969, _15996);\n+\t                    _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n+\t                    _7046 = vec2(_17302, _8970);\n+\t                    _7735 = vec2(_8969, _8970);\n+\t                    float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));\n+\t                    bool _12892;\n+\t                    if (_15310 == 0.0)\n \t                    {\n-\t                        float _20324 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                        float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _18870).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _7045).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _7046).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _7735).xy, _20324), 0.0)).xyzw, vec4(0.25));\n-\t                        bool _12893;\n-\t                        if (_15311 == 0.0)\n-\t                        {\n-\t                            _12893 = true;\n-\t                        }\n-\t                        else\n-\t                        {\n-\t                            _12893 = _15311 == 1.0;\n-\t                        }\n-\t                        if (_12893)\n+\t                        _12892 = true;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _12892 = _15310 == 1.0;\n+\t                    }\n+\t                    if (_12892)\n+\t                    {\n+\t                        _23728 = _15310;\n+\t                        break;\n+\t                    }\n+\t                    _23728 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17302, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22024.y);\n+\t                    break;\n+\t                } while(false);\n+\t                float _12506;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13147 < 1.0)\n+\t                {\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];\n+\t                        vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;\n+\t                        vec3 _20494;\n+\t                        _20494.x = _20562.x;\n+\t                        _20494.y = _20562.y;\n+\t                        float _12505;\n+\t                        do\n \t                        {\n-\t                            _12505 = _15311;\n+\t                            float _20324 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);\n+\t                            float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _18870).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _7045).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _7046).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _7735).xy, _20324), 0.0)).xyzw, vec4(0.25));\n+\t                            bool _12893;\n+\t                            if (_15311 == 0.0)\n+\t                            {\n+\t                                _12893 = true;\n+\t                            }\n+\t                            else\n+\t                            {\n+\t                                _12893 = _15311 == 1.0;\n+\t                            }\n+\t                            if (_12893)\n+\t                            {\n+\t                                _12505 = _15311;\n+\t                                break;\n+\t                            }\n+\t                            _12505 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(_17302, 0.0)).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(_8969, 0.0)).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(0.0, _8970)).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(0.0, _15996)).xy, _20324), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20494.xy, _20324), 0.0) * _22024.y);\n \t                            break;\n-\t                        }\n-\t                        _12505 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(_17302, 0.0)).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(_8969, 0.0)).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(0.0, _8970)).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(0.0, _15996)).xy, _20324), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20494.xy, _20324), 0.0) * _22024.y);\n-\t                        break;\n-\t                    } while(false);\n-\t                    _7934 = _12505;\n+\t                        } while(false);\n+\t                        _7934 = _12505;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0;\n+\t                    }\n+\t                    _12506 = mix(_7934, _23728, _13147);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0;\n+\t                    _12506 = _23728;\n \t                }\n-\t                _12506 = mix(_7934, _23728, _13147);\n+\t                _19363 = _12506;\n \t            }\n \t            else\n \t            {\n-\t                _12506 = _23728;\n+\t                _19363 = 1.0;\n \t            }\n-\t            _19363 = _12506;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0;\n-\t        }\n-\t        float _13279 = mix(_19363, 1.0, saturate((distance(_7639.xyz, PerViewConstantBuffer_t._m4) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));\n-\t        float _12507;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12507 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_21678.xy * PerViewConstantBuffer_t._m3.xy).xy, 0.0).z);\n+\t            float _13279 = mix(_19363, 1.0, saturate((distance(_7639.xyz, PerViewConstantBuffer_t._m4) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));\n+\t            float _12507;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12507 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_21678.xy * PerViewConstantBuffer_t._m3.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12507 = _13279;\n+\t            }\n+\t            _12508 = _12507;\n \t        }\n \t        else\n \t        {\n-\t            _12507 = _13279;\n+\t            _12508 = 1.0;\n \t        }\n-\t        _21713 = _12507;\n+\t        _12320 = _12508;\n \t    }\n \t    else\n \t    {\n-\t        _21713 = 1.0;\n+\t        _12320 = 1.0;\n \t    }\n \t    vec3 _9716;\n \t    vec3 _24878;\n \t    SPIRV_CROSS_BRANCH\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735) * _21713) > 0.0)\n+\t    if ((_8634 * _12320) > 0.0)\n \t    {\n \t        float _11797 = max(0.0, dot(_14788.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));\n \t        vec2 _9840 = max(_11004, vec2(PerViewLightingConstantBufferGpu_t._m16.w));\n@@ -1621,7 +1632,7 @@ PS\n \t        float _16150 = _9850 + 1.0;\n \t        float _6835 = (_16150 * _16150) * 0.125;\n \t        float _19569 = 1.0 - _6835;\n-\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _21713).xyz;\n+\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _12320).xyz;\n \t        _9716 = PerViewLightingConstantBufferGpu_t._m9.xyz + (vec3(_11797).xyz * _16808);\n \t        _24878 = (((_22995 + ((vec3(1.0) - _22995) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * ((_24198 * _24198) / ((4.0 * ((_11797 * _19569) + _6835)) * ((max(0.0, dot(_19012, _21889)) * _19569) + _6835)))).xyz * _11797).xyz * _16808;\n \t    }\n@@ -1822,7 +1833,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    vec3 _12508;\n+\t                    vec3 _12509;\n \t                    if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)\n \t                    {\n \t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);\n@@ -1838,7 +1849,7 @@ PS\n \t                        vec3 _20497 = _14081;\n \t                        _20497.x = _20564.x;\n \t                        _20497.y = _20564.y;\n-\t                        _12508 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20497.xyz, 0.0).xyz;\n+\t                        _12509 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20497.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -1847,9 +1858,9 @@ PS\n \t                        vec3 _20496 = _13791;\n \t                        _20496.x = _20563.x;\n \t                        _20496.y = _20563.y;\n-\t                        _12508 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20496.xyz, 0.0).xyz;\n+\t                        _12509 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20496.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12508;\n+\t                    _21548 = _12509;\n \t                }\n \t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n@@ -1877,8 +1888,8 @@ PS\n \t                    do\n \t                    {\n \t                        float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);\n-\t                        vec2 _14615 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;\n-\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));\n+\t                        vec2 _14616 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;\n+\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));\n \t                        bool _12895;\n \t                        if (_15312 == 0.0)\n \t                        {\n@@ -1893,7 +1904,7 @@ PS\n \t                            _24972 = _15312;\n \t                            break;\n \t                        }\n-\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14615, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n+\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14616, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n \t                        break;\n \t                    } while(false);\n \t                    vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12608]._m12);"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/generic.slang",
          "status": "modified",
          "additions": 170,
          "deletions": 159,
          "changes": 329,
          "patch": "@@ -330,7 +330,7 @@ PS\n \tTexture2D g_tSsao < Attribute(\"SSAOOcclusionFactor\"); SrgbRead(false); >;\n \tTexture2D g_tTintMask < Channel(G, Box(TextureTintMask), Linear); OutputFormat(DXT1); SrgbRead(false); >;\n \tTexture2D g_tZeroth_Moment < Attribute(\"zeroth_moment\"); SrgbRead(true); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat2 g_vMetalnessScaleAndBias < UiType(VectorText); Expression(float2(max(g_vMetalnessRange.x,g_vMetalnessRange.y)-g_vMetalnessRange.x,g_vMetalnessRange.x)); >;\n \tfloat2 g_vReflectanceScaleAndBias < UiType(VectorText); Expression(float2(max(g_vReflectanceRange.x,g_vReflectanceRange.y)-g_vReflectanceRange.x,g_vReflectanceRange.x)); >;\n \tfloat2 g_vRoughnessScaleAndBias < UiType(VectorText); Expression(float2(max(1-g_vGlossinessRange.x,1-g_vGlossinessRange.y)-(1-g_vGlossinessRange.y),1-g_vGlossinessRange.y)); >;\n@@ -346,9 +346,9 @@ PS\n \tCreateInputTexture2D(TextureGlossiness, Linear, 8, \"\", \"_gloss\", \"Lighting,30/Gloss,20/10\", Default4(0.5, 0.5, 0.5, 0));\n \tCreateInputTexture2D(TextureMetalness, Linear, 8, \"\", \"_metal\", \"Lighting,30/Metalness,30/10\", Default4(0, 0, 0, 0));\n \tCreateInputTexture2D(TextureReflectance, Linear, 8, \"\", \"_refl\", \"Lighting,30/Reflectance,10/10\", Default4(0.1, 0.1, 0.1, 0));\n-\tfloat2 g_vGlossinessRange < Default(0); UiType(VectorText); UiGroup(\"Lighting,30/Gloss/20\"); >;\n-\tfloat2 g_vMetalnessRange < Default(0); UiType(VectorText); UiGroup(\"Lighting,30/Metalness/20\"); >;\n-\tfloat2 g_vReflectanceRange < Default(0); UiType(VectorText); UiGroup(\"Lighting,30/Reflectance/20\"); >;\n+\tfloat2 g_vGlossinessRange < Default2(0, 1); UiType(VectorText); UiGroup(\"Lighting,30/Gloss/20\"); >;\n+\tfloat2 g_vMetalnessRange < Default2(0, 1); UiType(VectorText); UiGroup(\"Lighting,30/Metalness/20\"); >;\n+\tfloat2 g_vReflectanceRange < Default2(0, 1); UiType(VectorText); UiGroup(\"Lighting,30/Reflectance/20\"); >;\n \t\n \t// Normal Map\n \tCreateInputTexture2D(TextureNormal, Linear, 8, \"NormalizeNormals\", \"_normal\", \"Normal Map,20\", Default4(0.5, 0.5, 1, 0));\n@@ -407,17 +407,17 @@ PS\n \t#endif\n \t#extension GL_KHR_shader_subgroup_arithmetic : require\n \t\n-\tstruct _2116\n+\tstruct _2368\n \t{\n \t    vec4 _m0[3];\n \t};\n \t\n-\tstruct _2326\n+\tstruct _2578\n \t{\n \t    vec4 _m0[4];\n \t};\n \t\n-\tstruct _1802\n+\tstruct _2918\n \t{\n \t    mat4 _m0[4];\n \t};\n@@ -487,14 +487,14 @@ PS\n \t\n \tlayout(set = 1) uniform _2806 PerViewConstantBufferCsgo_t;\n \t\n-\tstruct _295\n+\tstruct _2166\n \t{\n \t    vec4 _m0;\n \t    vec4 _m1;\n \t    vec4 _m2;\n \t    vec4 _m3;\n-\t    _2116 _m4;\n-\t    _2326 _m5;\n+\t    _2368 _m4;\n+\t    _2578 _m5;\n \t    vec4 _m6;\n \t    vec4 _m7;\n \t    vec4 _m8;\n@@ -510,11 +510,11 @@ PS\n \t    float _m18;\n \t    float _m19;\n \t    float _m20;\n-\t    _1802 _m21;\n-\t    _2326 _m22;\n+\t    _2918 _m21;\n+\t    _2578 _m22;\n \t};\n \t\n-\tlayout(set = 3) uniform _295 PerViewLightingConstantBufferGpu_t;\n+\tlayout(set = 3) uniform _2166 PerViewLightingConstantBufferGpu_t;\n \t\n \tstruct _1194\n \t{\n@@ -537,18 +537,18 @@ PS\n \t} g_BarnLights_1;\n \t\n \tlayout(set = 1, binding = 51) uniform texture2D g_tColor;\n-\tlayout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;\n+\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;\n \tlayout(set = 1, binding = 52) uniform texture2D g_tNormal;\n \tlayout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;\n-\tlayout(set = 1, binding = 22) uniform sampler g_sCookieSampler;\n+\tlayout(set = 1, binding = 23) uniform sampler g_sCookieSampler;\n \tlayout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;\n-\tlayout(set = 1, binding = 18) uniform sampler g_sPointClamp;\n+\tlayout(set = 1, binding = 19) uniform sampler g_sPointClamp;\n \tlayout(set = 1, binding = 39) uniform texture2D g_tSsao;\n-\tlayout(set = 1, binding = 19) uniform sampler g_sUserConfig;\n-\tlayout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n+\tlayout(set = 1, binding = 20) uniform sampler g_sUserConfig;\n+\tlayout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n \tlayout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;\n \tlayout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;\n-\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;\n+\tlayout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;\n \tlayout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;\n \tlayout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;\n \t\n@@ -691,167 +691,178 @@ PS\n \t    {\n \t        _21710 = _21709;\n \t    }\n-\t    float _21711;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m12.xyz, _24735);\n+\t    float _12320;\n \t    SPIRV_CROSS_BRANCH\n-\t    if (PerViewLightingConstantBufferGpu_t._m14 != 0)\n+\t    if (_8634 > 0.0)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13136;\n-\t        vec3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n-\t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t._m14))\n-\t            {\n-\t                _13136 = 1.0;\n-\t                _14975 = vec3(0.0);\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m21._m0[_13039];\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m16[_13039])\n-\t            {\n-\t                vec3 _19470 = vec3(_12779, _18322.yz);\n-\t                vec2 _24804 = _19470.xy;\n-\t                vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m18)) + vec2(PerViewLightingConstantBufferGpu_t._m17));\n-\t                vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m22._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m22._m0[_13039].xy;\n-\t                vec3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13136 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20488;\n-\t                _10191 = _13039;\n-\t                break;\n-\t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n+\t        float _12504;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m14 != 0)\n \t        {\n-\t            vec2 _7045;\n-\t            vec2 _7046;\n-\t            vec2 _7735;\n-\t            float _8969;\n-\t            float _8970;\n-\t            float _15996;\n-\t            float _17299;\n-\t            vec2 _18870;\n-\t            vec4 _20581;\n-\t            vec4 _22023;\n-\t            float _23727;\n-\t            do\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13136;\n+\t            vec3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m15);\n-\t                _20581 = PerViewLightingConstantBufferGpu_t._m0;\n-\t                _22023 = PerViewLightingConstantBufferGpu_t._m1;\n-\t                _17299 = PerViewLightingConstantBufferGpu_t._m2.z;\n-\t                _15996 = PerViewLightingConstantBufferGpu_t._m3.z;\n-\t                _18870 = vec2(_17299, _15996);\n-\t                _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n-\t                _7045 = vec2(_8969, _15996);\n-\t                _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n-\t                _7046 = vec2(_17299, _8970);\n-\t                _7735 = vec2(_8969, _8970);\n-\t                float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));\n-\t                bool _12887;\n-\t                if (_15310 == 0.0)\n-\t                {\n-\t                    _12887 = true;\n-\t                }\n-\t                else\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t._m14))\n \t                {\n-\t                    _12887 = _15310 == 1.0;\n+\t                    _13136 = 1.0;\n+\t                    _14975 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n \t                }\n-\t                if (_12887)\n+\t                vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m21._m0[_13039];\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m16[_13039])\n \t                {\n-\t                    _23727 = _15310;\n+\t                    vec3 _19470 = vec3(_12779, _18322.yz);\n+\t                    vec2 _24804 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m18)) + vec2(PerViewLightingConstantBufferGpu_t._m17));\n+\t                    vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m22._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m22._m0[_13039].xy;\n+\t                    vec3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13136 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20488;\n+\t                    _10191 = _13039;\n \t                    break;\n \t                }\n-\t                _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22023.y);\n-\t                break;\n-\t            } while(false);\n-\t            float _12502;\n-\t            SPIRV_CROSS_BRANCH\n-\t            if (_13136 < 1.0)\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n+\t            }\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t._m14 - 1))\n+\t                vec2 _7045;\n+\t                vec2 _7046;\n+\t                vec2 _7735;\n+\t                float _8969;\n+\t                float _8970;\n+\t                float _15996;\n+\t                float _17299;\n+\t                vec2 _18870;\n+\t                vec4 _20581;\n+\t                vec4 _22023;\n+\t                float _23727;\n+\t                do\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m21._m0[_15335];\n-\t                    vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m22._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m22._m0[_15335].xy;\n-\t                    vec3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    float _12501;\n-\t                    do\n+\t                    float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m15);\n+\t                    _20581 = PerViewLightingConstantBufferGpu_t._m0;\n+\t                    _22023 = PerViewLightingConstantBufferGpu_t._m1;\n+\t                    _17299 = PerViewLightingConstantBufferGpu_t._m2.z;\n+\t                    _15996 = PerViewLightingConstantBufferGpu_t._m3.z;\n+\t                    _18870 = vec2(_17299, _15996);\n+\t                    _8969 = PerViewLightingConstantBufferGpu_t._m2.y;\n+\t                    _7045 = vec2(_8969, _15996);\n+\t                    _8970 = PerViewLightingConstantBufferGpu_t._m3.y;\n+\t                    _7046 = vec2(_17299, _8970);\n+\t                    _7735 = vec2(_8969, _8970);\n+\t                    float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));\n+\t                    bool _12887;\n+\t                    if (_15310 == 0.0)\n \t                    {\n-\t                        float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m15);\n-\t                        float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));\n-\t                        bool _12888;\n-\t                        if (_15311 == 0.0)\n-\t                        {\n-\t                            _12888 = true;\n-\t                        }\n-\t                        else\n-\t                        {\n-\t                            _12888 = _15311 == 1.0;\n-\t                        }\n-\t                        if (_12888)\n+\t                        _12887 = true;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _12887 = _15310 == 1.0;\n+\t                    }\n+\t                    if (_12887)\n+\t                    {\n+\t                        _23727 = _15310;\n+\t                        break;\n+\t                    }\n+\t                    _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22023.y);\n+\t                    break;\n+\t                } while(false);\n+\t                float _12502;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13136 < 1.0)\n+\t                {\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m14 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m21._m0[_15335];\n+\t                        vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m22._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m22._m0[_15335].xy;\n+\t                        vec3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        float _12501;\n+\t                        do\n \t                        {\n-\t                            _12501 = _15311;\n+\t                            float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m15);\n+\t                            float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));\n+\t                            bool _12888;\n+\t                            if (_15311 == 0.0)\n+\t                            {\n+\t                                _12888 = true;\n+\t                            }\n+\t                            else\n+\t                            {\n+\t                                _12888 = _15311 == 1.0;\n+\t                            }\n+\t                            if (_12888)\n+\t                            {\n+\t                                _12501 = _15311;\n+\t                                break;\n+\t                            }\n+\t                            _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22023.y);\n \t                            break;\n-\t                        }\n-\t                        _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22023.y);\n-\t                        break;\n-\t                    } while(false);\n-\t                    _7934 = _12501;\n+\t                        } while(false);\n+\t                        _7934 = _12501;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0;\n+\t                    }\n+\t                    _12502 = mix(_7934, _23727, _13136);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0;\n+\t                    _12502 = _23727;\n \t                }\n-\t                _12502 = mix(_7934, _23727, _13136);\n+\t                _19363 = _12502;\n \t            }\n \t            else\n \t            {\n-\t                _12502 = _23727;\n+\t                _19363 = 1.0;\n \t            }\n-\t            _19363 = _12502;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0;\n-\t        }\n-\t        float _13279 = mix(_19363, 1.0, saturate((distance(_11095.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m20) + PerViewLightingConstantBufferGpu_t._m19));\n-\t        float _12503;\n-\t        if (_24465.y)\n-\t        {\n-\t            _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            float _13279 = mix(_19363, 1.0, saturate((distance(_11095.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m20) + PerViewLightingConstantBufferGpu_t._m19));\n+\t            float _12503;\n+\t            if (_24465.y)\n+\t            {\n+\t                _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12503 = _13279;\n+\t            }\n+\t            _12504 = _12503;\n \t        }\n \t        else\n \t        {\n-\t            _12503 = _13279;\n+\t            _12504 = 1.0;\n \t        }\n-\t        _21711 = _12503;\n+\t        _12320 = _12504;\n \t    }\n \t    else\n \t    {\n-\t        _21711 = 1.0;\n+\t        _12320 = 1.0;\n \t    }\n-\t    vec3 _21712;\n+\t    vec3 _21711;\n \t    SPIRV_CROSS_BRANCH\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t._m12.xyz, _24735) * _21711) > 0.0)\n+\t    if ((_8634 * _12320) > 0.0)\n \t    {\n-\t        _21712 = PerViewLightingConstantBufferGpu_t._m8.xyz + (vec3(max(0.0, dot(_24299.xyz, PerViewLightingConstantBufferGpu_t._m12.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m13.xyz * _21711).xyz);\n+\t        _21711 = PerViewLightingConstantBufferGpu_t._m8.xyz + (vec3(max(0.0, dot(_24299.xyz, PerViewLightingConstantBufferGpu_t._m12.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m13.xyz * _12320).xyz);\n \t    }\n \t    else\n \t    {\n-\t        _21712 = PerViewLightingConstantBufferGpu_t._m8.xyz;\n+\t        _21711 = PerViewLightingConstantBufferGpu_t._m8.xyz;\n \t    }\n \t    bvec4 _24467 = notEqual(PerViewConstantBufferCsgo_t._m2, ivec4(0));\n \t    bool _20061 = _24467.x;\n@@ -875,7 +886,7 @@ PS\n \t    uint _10838 = PerViewLightingConstantBufferGpu_t._m9.y + (((_12083.y * PerViewLightingConstantBufferGpu_t._m10.y) + _12083.x) * PerViewLightingConstantBufferGpu_t._m9.z);\n \t    uint _23393 = PerViewLightingConstantBufferGpu_t._m9.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t._m11.x, 0.0, PerViewLightingConstantBufferGpu_t._m11.y)) * PerViewLightingConstantBufferGpu_t._m9.z);\n \t    vec3 _13155;\n-\t    _13155 = _21712;\n+\t    _13155 = _21711;\n \t    uint _21567;\n \t    vec3 _13156;\n \t    uint _16208 = 0u;\n@@ -888,7 +899,7 @@ PS\n \t        uint _14475 = subgroupOr(g_CullBits_1._m0[_10838 + _16208] & g_CullBits_1._m0[_23393 + _16208]);\n \t        _13156 = _13155;\n \t        uint _20344;\n-\t        vec3 _12505;\n+\t        vec3 _12506;\n \t        uint _16209 = _14475;\n \t        for (;;)\n \t        {\n@@ -928,7 +939,7 @@ PS\n \t                }\n \t                if (_12889)\n \t                {\n-\t                    _12505 = _13156;\n+\t                    _12506 = _13156;\n \t                    break;\n \t                }\n \t                float _23571 = 2.0 * g_BarnLights_1._m0[_12608]._m5.y;\n@@ -1038,7 +1049,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    vec3 _12504;\n+\t                    vec3 _12505;\n \t                    if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)\n \t                    {\n \t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);\n@@ -1054,7 +1065,7 @@ PS\n \t                        vec3 _20491 = _14081;\n \t                        _20491.x = _20564.x;\n \t                        _20491.y = _20564.y;\n-\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;\n+\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -1063,13 +1074,13 @@ PS\n \t                        vec3 _20490 = _13791;\n \t                        _20490.x = _20563.x;\n \t                        _20490.y = _20563.y;\n-\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;\n+\t                        _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12504;\n+\t                    _21548 = _12505;\n \t                }\n \t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n-\t                    _12505 = _13156;\n+\t                    _12506 = _13156;\n \t                    break;\n \t                }\n \t                vec3 _19630;\n@@ -1092,8 +1103,8 @@ PS\n \t                    do\n \t                    {\n \t                        float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m15);\n-\t                        vec2 _14615 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;\n-\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));\n+\t                        vec2 _14616 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;\n+\t                        float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));\n \t                        bool _12890;\n \t                        if (_15312 == 0.0)\n \t                        {\n@@ -1108,13 +1119,13 @@ PS\n \t                            _24972 = _15312;\n \t                            break;\n \t                        }\n-\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14615, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n+\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14616, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);\n \t                        break;\n \t                    } while(false);\n \t                    vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12608]._m12);\n \t                    if (all(equal(_19878.xyz, vec3(0.0))))\n \t                    {\n-\t                        _12505 = _13156;\n+\t                        _12506 = _13156;\n \t                        break;\n \t                    }\n \t                    _19630 = _19878;\n@@ -1123,10 +1134,10 @@ PS\n \t                {\n \t                    _19630 = _21548;\n \t                }\n-\t                _12505 = _13156.xyz + (vec3(max(0.0, dot(_24299.xyz, _11179.xyz))).xyz * _19630.xyz);\n+\t                _12506 = _13156.xyz + (vec3(max(0.0, dot(_24299.xyz, _11179.xyz))).xyz * _19630.xyz);\n \t                break;\n \t            } while(false);\n-\t            _13156 = _12505;\n+\t            _13156 = _12506;\n \t            _16209 = _20344;\n \t            continue;\n \t        }"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/grasstile.slang",
          "status": "modified",
          "additions": 163,
          "deletions": 152,
          "changes": 315,
          "patch": "@@ -330,7 +330,7 @@ PS\n \tTexture2D g_tParticleShadowBuffer < Attribute(\"ParticleShadowBuffer\"); SrgbRead(false); >;\n \tTexture2D g_tShadowDepthBufferDepth < Attribute(\"ShadowDepthBuffer\"); SrgbRead(false); >;\n \tTexture2D g_tSsao < Attribute(\"SSAOOcclusionFactor\"); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat3 g_vGrassColorTint < UiType(Color); Expression(SrgbGammaToLinear(this)); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n@@ -353,17 +353,17 @@ PS\n \t// Source 2 Viewer - https://valveresourceformat.github.io\n \t// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup\n \t\n-\tstruct _1108\n+\tstruct _1402\n \t{\n \t    float4 _m0[3];\n \t};\n \t\n-\tstruct _1890\n+\tstruct _2100\n \t{\n \t    float4 _m0[4];\n \t};\n \t\n-\tstruct _2452\n+\tstruct _371\n \t{\n \t    column_major float4x4 _m0[4];\n \t};\n@@ -430,7 +430,7 @@ PS\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c1);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c2);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c3);\n-\t    _1108 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c7);\n+\t    _1402 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c7);\n \t    float4 PerViewLightingConstantBufferGpu_t_1_m5 : packoffset(c18);\n \t    uint4 PerViewLightingConstantBufferGpu_t_1_m6 : packoffset(c19);\n \t    uint4 PerViewLightingConstantBufferGpu_t_1_m7 : packoffset(c22);\n@@ -444,8 +444,8 @@ PS\n \t    float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.y);\n \t    float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.z);\n \t    float PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1955.w);\n-\t    _2452 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);\n-\t    _1890 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);\n+\t    _371 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);\n+\t    _2100 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);\n \t};\n \t\n \tcbuffer PerViewConstantBuffer_t : register(b1, space1)\n@@ -463,14 +463,14 @@ PS\n \tTexture2D<float4> g_tGrassQuadSpecularArray : register(t44, space1);\n \tSamplerState AddressU_Clamp_AddressV_Clamp_Filter_Anisotropic_MaxAniso_8 : register(s15, space1);\n \tTexture2D<float4> g_tAmbientOcclusion : register(t53, space1);\n-\tSamplerState g_sUserConfig : register(s21, space1);\n-\tSamplerComparisonState g_tShadowDepthBufferCmpSampler : register(s25, space1);\n+\tSamplerState g_sUserConfig : register(s22, space1);\n+\tSamplerComparisonState g_tShadowDepthBufferCmpSampler : register(s26, space1);\n \tTexture2D<float4> g_tShadowDepthBufferDepth : register(t36, space1);\n \tTexture2D<float4> g_tParticleShadowBuffer : register(t51, space1);\n-\tSamplerState g_sTrilinearClamp : register(s19, space1);\n-\tSamplerState g_sTrilinearWrap : register(s18, space1);\n+\tSamplerState g_sTrilinearClamp : register(s20, space1);\n+\tSamplerState g_sTrilinearWrap : register(s19, space1);\n \tTexture3D<float4> g_tLightCookieTexture : register(t34, space1);\n-\tSamplerState g_sCookieSampler : register(s24, space1);\n+\tSamplerState g_sCookieSampler : register(s25, space1);\n \tTextureCube<float4> g_tFogCubeTexture : register(t42, space1);\n \t\n \tstatic float4 gl_FragCoord;\n@@ -513,167 +513,178 @@ PS\n \t    float4 _19068 = g_tAmbientOcclusion.Sample(g_sUserConfig, input_2.xy);\n \t    float3 _24735 = _7029.xyz;\n \t    float4 _23875 = float4(_24735, 1.0f);\n-\t    float _21709;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735);\n+\t    float _12320;\n \t    [branch]\n-\t    if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)\n+\t    if (_8634 > 0.0f)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13136;\n-\t        float3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n-\t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))\n-\t            {\n-\t                _13136 = 1.0f;\n-\t                _14975 = 0.0f.xxx;\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_0.xyz, 1.0f));\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])\n-\t            {\n-\t                float3 _19470 = float3(_12779, _18322.yz);\n-\t                float2 _24804 = _19470.xy;\n-\t                float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);\n-\t                float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;\n-\t                float3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13136 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20488;\n-\t                _10191 = _13039;\n-\t                break;\n-\t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _19363;\n-\t        if (_10191 >= 0)\n+\t        float _12504;\n+\t        [branch]\n+\t        if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)\n \t        {\n-\t            float2 _7045;\n-\t            float2 _7046;\n-\t            float2 _7735;\n-\t            float _8969;\n-\t            float _8970;\n-\t            float _15996;\n-\t            float _17299;\n-\t            float2 _18870;\n-\t            float4 _20581;\n-\t            float4 _22023;\n-\t            float _23727;\n-\t            do\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13136;\n+\t            float3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12);\n-\t                _20581 = PerViewLightingConstantBufferGpu_t_1_m0;\n-\t                _22023 = PerViewLightingConstantBufferGpu_t_1_m1;\n-\t                _17299 = PerViewLightingConstantBufferGpu_t_1_m2.z;\n-\t                _15996 = PerViewLightingConstantBufferGpu_t_1_m3.z;\n-\t                _18870 = float2(_17299, _15996);\n-\t                _8969 = PerViewLightingConstantBufferGpu_t_1_m2.y;\n-\t                _7045 = float2(_8969, _15996);\n-\t                _8970 = PerViewLightingConstantBufferGpu_t_1_m3.y;\n-\t                _7046 = float2(_17299, _8970);\n-\t                _7735 = float2(_8969, _8970);\n-\t                float _15310 = dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _18870).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _7045).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _7046).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _7735).xy, _21452)).xyzw, 0.25f.xxxx);\n-\t                bool _12885;\n-\t                if (_15310 == 0.0f)\n-\t                {\n-\t                    _12885 = true;\n-\t                }\n-\t                else\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))\n \t                {\n-\t                    _12885 = _15310 == 1.0f;\n+\t                    _13136 = 1.0f;\n+\t                    _14975 = 0.0f.xxx;\n+\t                    _10191 = -1;\n+\t                    break;\n \t                }\n-\t                if (_12885)\n+\t                float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_0.xyz, 1.0f));\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])\n \t                {\n-\t                    _23727 = _15310;\n+\t                    float3 _19470 = float3(_12779, _18322.yz);\n+\t                    float2 _24804 = _19470.xy;\n+\t                    float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);\n+\t                    float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;\n+\t                    float3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13136 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20488;\n+\t                    _10191 = _13039;\n \t                    break;\n \t                }\n-\t                _23727 = ((_15310 * (_20581.w * 4.0f)) + dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(_17299, 0.0f)).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(_8969, 0.0f)).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(0.0f, _8970)).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(0.0f, _15996)).xy, _21452)).xyzw, _22023.xxxx)) + (g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, _14975.xy, _21452) * _22023.y);\n-\t                break;\n-\t            } while(false);\n-\t            float _12502;\n-\t            [branch]\n-\t            if (_13136 < 1.0f)\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n+\t            }\n+\t            float _19363;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))\n+\t                float2 _7045;\n+\t                float2 _7046;\n+\t                float2 _7735;\n+\t                float _8969;\n+\t                float _8970;\n+\t                float _15996;\n+\t                float _17299;\n+\t                float2 _18870;\n+\t                float4 _20581;\n+\t                float4 _22023;\n+\t                float _23727;\n+\t                do\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_0.xyz, 1.0f));\n-\t                    float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;\n-\t                    float3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    float _12501;\n-\t                    do\n+\t                    float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12);\n+\t                    _20581 = PerViewLightingConstantBufferGpu_t_1_m0;\n+\t                    _22023 = PerViewLightingConstantBufferGpu_t_1_m1;\n+\t                    _17299 = PerViewLightingConstantBufferGpu_t_1_m2.z;\n+\t                    _15996 = PerViewLightingConstantBufferGpu_t_1_m3.z;\n+\t                    _18870 = float2(_17299, _15996);\n+\t                    _8969 = PerViewLightingConstantBufferGpu_t_1_m2.y;\n+\t                    _7045 = float2(_8969, _15996);\n+\t                    _8970 = PerViewLightingConstantBufferGpu_t_1_m3.y;\n+\t                    _7046 = float2(_17299, _8970);\n+\t                    _7735 = float2(_8969, _8970);\n+\t                    float _15310 = dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _18870).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _7045).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _7046).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _7735).xy, _21452)).xyzw, 0.25f.xxxx);\n+\t                    bool _12885;\n+\t                    if (_15310 == 0.0f)\n \t                    {\n-\t                        float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12);\n-\t                        float _15311 = dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _18870).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _7045).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _7046).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _7735).xy, _20322)).xyzw, 0.25f.xxxx);\n-\t                        bool _12886;\n-\t                        if (_15311 == 0.0f)\n-\t                        {\n-\t                            _12886 = true;\n-\t                        }\n-\t                        else\n-\t                        {\n-\t                            _12886 = _15311 == 1.0f;\n-\t                        }\n-\t                        if (_12886)\n+\t                        _12885 = true;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _12885 = _15310 == 1.0f;\n+\t                    }\n+\t                    if (_12885)\n+\t                    {\n+\t                        _23727 = _15310;\n+\t                        break;\n+\t                    }\n+\t                    _23727 = ((_15310 * (_20581.w * 4.0f)) + dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(_17299, 0.0f)).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(_8969, 0.0f)).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(0.0f, _8970)).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(0.0f, _15996)).xy, _21452)).xyzw, _22023.xxxx)) + (g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, _14975.xy, _21452) * _22023.y);\n+\t                    break;\n+\t                } while(false);\n+\t                float _12502;\n+\t                [branch]\n+\t                if (_13136 < 1.0f)\n+\t                {\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_0.xyz, 1.0f));\n+\t                        float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;\n+\t                        float3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        float _12501;\n+\t                        do\n \t                        {\n-\t                            _12501 = _15311;\n+\t                            float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12);\n+\t                            float _15311 = dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _18870).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _7045).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _7046).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _7735).xy, _20322)).xyzw, 0.25f.xxxx);\n+\t                            bool _12886;\n+\t                            if (_15311 == 0.0f)\n+\t                            {\n+\t                                _12886 = true;\n+\t                            }\n+\t                            else\n+\t                            {\n+\t                                _12886 = _15311 == 1.0f;\n+\t                            }\n+\t                            if (_12886)\n+\t                            {\n+\t                                _12501 = _15311;\n+\t                                break;\n+\t                            }\n+\t                            _12501 = ((_15311 * (_20581.w * 4.0f)) + dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(_17299, 0.0f)).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(_8969, 0.0f)).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(0.0f, _8970)).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(0.0f, _15996)).xy, _20322)).xyzw, _22023.xxxx)) + (g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, _20489.xy, _20322) * _22023.y);\n \t                            break;\n-\t                        }\n-\t                        _12501 = ((_15311 * (_20581.w * 4.0f)) + dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(_17299, 0.0f)).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(_8969, 0.0f)).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(0.0f, _8970)).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(0.0f, _15996)).xy, _20322)).xyzw, _22023.xxxx)) + (g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, _20489.xy, _20322) * _22023.y);\n-\t                        break;\n-\t                    } while(false);\n-\t                    _7934 = _12501;\n+\t                        } while(false);\n+\t                        _7934 = _12501;\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0f;\n+\t                    }\n+\t                    _12502 = lerp(_7934, _23727, _13136);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0f;\n+\t                    _12502 = _23727;\n \t                }\n-\t                _12502 = lerp(_7934, _23727, _13136);\n+\t                _19363 = _12502;\n \t            }\n \t            else\n \t            {\n-\t                _12502 = _23727;\n+\t                _19363 = 1.0f;\n \t            }\n-\t            _19363 = _12502;\n-\t        }\n-\t        else\n-\t        {\n-\t            _19363 = 1.0f;\n-\t        }\n-\t        float _12513 = lerp(_19363, 1.0f, saturate((distance(_10753.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));\n-\t        float _12503;\n-\t        if (bool4(PerViewConstantBufferCsgo_t_1_m0.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m0.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m0.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m0.w != int4(0, 0, 0, 0).w).y)\n-\t        {\n-\t            _12503 = min(_12513, g_tParticleShadowBuffer.SampleLevel(g_sTrilinearClamp, (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);\n+\t            float _12513 = lerp(_19363, 1.0f, saturate((distance(_10753.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));\n+\t            float _12503;\n+\t            if (bool4(PerViewConstantBufferCsgo_t_1_m0.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m0.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m0.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m0.w != int4(0, 0, 0, 0).w).y)\n+\t            {\n+\t                _12503 = min(_12513, g_tParticleShadowBuffer.SampleLevel(g_sTrilinearClamp, (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12503 = _12513;\n+\t            }\n+\t            _12504 = _12503;\n \t        }\n \t        else\n \t        {\n-\t            _12503 = _12513;\n+\t            _12504 = 1.0f;\n \t        }\n-\t        _21709 = _12503;\n+\t        _12320 = _12504;\n \t    }\n \t    else\n \t    {\n-\t        _21709 = 1.0f;\n+\t        _12320 = 1.0f;\n \t    }\n-\t    float3 _21710;\n+\t    float3 _21709;\n \t    [branch]\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735) * _21709) > 0.0f)\n+\t    if ((_8634 * _12320) > 0.0f)\n \t    {\n-\t        _21710 = PerViewLightingConstantBufferGpu_t_1_m5.xyz + (max(0.0f, dot(_7029.xyz, PerViewLightingConstantBufferGpu_t_1_m9.xyz)).xxx.xyz * (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _21709).xyz);\n+\t        _21709 = PerViewLightingConstantBufferGpu_t_1_m5.xyz + (max(0.0f, dot(_7029.xyz, PerViewLightingConstantBufferGpu_t_1_m9.xyz)).xxx.xyz * (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _12320).xyz);\n \t    }\n \t    else\n \t    {\n-\t        _21710 = PerViewLightingConstantBufferGpu_t_1_m5.xyz;\n+\t        _21709 = PerViewLightingConstantBufferGpu_t_1_m5.xyz;\n \t    }\n \t    bool4 _24465 = bool4(PerViewConstantBufferCsgo_t_1_m1.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m1.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m1.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m1.w != int4(0, 0, 0, 0).w);\n \t    bool _20059 = _24465.x;\n@@ -697,7 +708,7 @@ PS\n \t    uint _10838 = PerViewLightingConstantBufferGpu_t_1_m6.y + (((_12083.y * PerViewLightingConstantBufferGpu_t_1_m7.y) + _12083.x) * PerViewLightingConstantBufferGpu_t_1_m6.z);\n \t    uint _23393 = PerViewLightingConstantBufferGpu_t_1_m6.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t_1_m8.x, 0.0f, PerViewLightingConstantBufferGpu_t_1_m8.y)) * PerViewLightingConstantBufferGpu_t_1_m6.z);\n \t    float3 _13155;\n-\t    _13155 = _21710;\n+\t    _13155 = _21709;\n \t    uint _21567;\n \t    float3 _13156;\n \t    uint _16208 = 0u;\n@@ -710,7 +721,7 @@ PS\n \t        uint _14475 = WaveActiveBitOr(g_CullBits.Load<uint>((_10838 + _16208) * 4 + 0) & g_CullBits.Load<uint>((_23393 + _16208) * 4 + 0));\n \t        _13156 = _13155;\n \t        uint _20344;\n-\t        float3 _12505;\n+\t        float3 _12506;\n \t        uint _16209 = _14475;\n \t        for (;;)\n \t        {\n@@ -753,7 +764,7 @@ PS\n \t                }\n \t                if (_12887)\n \t                {\n-\t                    _12505 = _13156;\n+\t                    _12506 = _13156;\n \t                    break;\n \t                }\n \t                float _23571 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;\n@@ -863,7 +874,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    float3 _12504;\n+\t                    float3 _12505;\n \t                    if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)\n \t                    {\n \t                        float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);\n@@ -879,7 +890,7 @@ PS\n \t                        float3 _20491 = _14081;\n \t                        _20491.x = _20564.x;\n \t                        _20491.y = _20564.y;\n-\t                        _12504 = _17828.xyz * g_tLightCookieTexture.SampleLevel(g_sTrilinearWrap, _20491.xyz, 0.0f).xyz;\n+\t                        _12505 = _17828.xyz * g_tLightCookieTexture.SampleLevel(g_sTrilinearWrap, _20491.xyz, 0.0f).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -888,13 +899,13 @@ PS\n \t                        float3 _20490 = _13791;\n \t                        _20490.x = _20563.x;\n \t                        _20490.y = _20563.y;\n-\t                        _12504 = _17828.xyz * g_tLightCookieTexture.SampleLevel(g_sCookieSampler, _20490.xyz, 0.0f).xyz;\n+\t                        _12505 = _17828.xyz * g_tLightCookieTexture.SampleLevel(g_sCookieSampler, _20490.xyz, 0.0f).xyz;\n \t                    }\n-\t                    _21548 = _12504;\n+\t                    _21548 = _12505;\n \t                }\n \t                if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))\n \t                {\n-\t                    _12505 = _13156;\n+\t                    _12506 = _13156;\n \t                    break;\n \t                }\n \t                float3 _19630;\n@@ -917,8 +928,8 @@ PS\n \t                    do\n \t                    {\n \t                        float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t_1_m12);\n-\t                        float2 _14615 = float3(mad(_19629.xy, g_BarnLights.Load<float4>(_12608 * 480 + 208).zw, g_BarnLights.Load<float4>(_12608 * 480 + 208).xy), _19629.z).xy;\n-\t                        float _15312 = dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(PerViewLightingConstantBufferGpu_t_1_m2.z, PerViewLightingConstantBufferGpu_t_1_m3.z)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(PerViewLightingConstantBufferGpu_t_1_m2.y, PerViewLightingConstantBufferGpu_t_1_m3.z)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(PerViewLightingConstantBufferGpu_t_1_m2.z, PerViewLightingConstantBufferGpu_t_1_m3.y)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(PerViewLightingConstantBufferGpu_t_1_m2.y, PerViewLightingConstantBufferGpu_t_1_m3.y)).xy, _11455)).xyzw, 0.25f.xxxx);\n+\t                        float2 _14616 = float3(mad(_19629.xy, g_BarnLights.Load<float4>(_12608 * 480 + 208).zw, g_BarnLights.Load<float4>(_12608 * 480 + 208).xy), _19629.z).xy;\n+\t                        float _15312 = dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(PerViewLightingConstantBufferGpu_t_1_m2.z, PerViewLightingConstantBufferGpu_t_1_m3.z)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(PerViewLightingConstantBufferGpu_t_1_m2.y, PerViewLightingConstantBufferGpu_t_1_m3.z)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(PerViewLightingConstantBufferGpu_t_1_m2.z, PerViewLightingConstantBufferGpu_t_1_m3.y)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(PerViewLightingConstantBufferGpu_t_1_m2.y, PerViewLightingConstantBufferGpu_t_1_m3.y)).xy, _11455)).xyzw, 0.25f.xxxx);\n \t                        bool _12888;\n \t                        if (_15312 == 0.0f)\n \t                        {\n@@ -933,14 +944,14 @@ PS\n \t                            _24972 = _15312;\n \t                            break;\n \t                        }\n-\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t_1_m0.w * 4.0f)) + dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(PerViewLightingConstantBufferGpu_t_1_m2.z, 0.0f)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(PerViewLightingConstantBufferGpu_t_1_m2.y, 0.0f)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(0.0f, PerViewLightingConstantBufferGpu_t_1_m3.y)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(0.0f, PerViewLightingConstantBufferGpu_t_1_m3.z)).xy, _11455)).xyzw, PerViewLightingConstantBufferGpu_t_1_m1.xxxx)) + (g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, _14615, _11455) * PerViewLightingConstantBufferGpu_t_1_m1.y);\n+\t                        _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t_1_m0.w * 4.0f)) + dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(PerViewLightingConstantBufferGpu_t_1_m2.z, 0.0f)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(PerViewLightingConstantBufferGpu_t_1_m2.y, 0.0f)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(0.0f, PerViewLightingConstantBufferGpu_t_1_m3.y)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(0.0f, PerViewLightingConstantBufferGpu_t_1_m3.z)).xy, _11455)).xyzw, PerViewLightingConstantBufferGpu_t_1_m1.xxxx)) + (g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, _14616, _11455) * PerViewLightingConstantBufferGpu_t_1_m1.y);\n \t                        break;\n \t                    } while(false);\n \t                    float3 _19878 = _21548.xyz * lerp(1.0f, _24972, g_BarnLights.Load<float>(_12608 * 480 + 260));\n \t                    float3 _16449 = _19878.xyz;\n \t                    if (all(bool3(_16449.x == 0.0f.xxx.x, _16449.y == 0.0f.xxx.y, _16449.z == 0.0f.xxx.z)))\n \t                    {\n-\t                        _12505 = _13156;\n+\t                        _12506 = _13156;\n \t                        break;\n \t                    }\n \t                    _19630 = _19878;\n@@ -949,10 +960,10 @@ PS\n \t                {\n \t                    _19630 = _21548;\n \t                }\n-\t                _12505 = _13156.xyz + (max(0.0f, dot(_7029.xyz, _11179.xyz)).xxx.xyz * _19630.xyz);\n+\t                _12506 = _13156.xyz + (max(0.0f, dot(_7029.xyz, _11179.xyz)).xxx.xyz * _19630.xyz);\n \t                break;\n \t            } while(false);\n-\t            _13156 = _12505;\n+\t            _13156 = _12506;\n \t            _16209 = _20344;\n \t            continue;\n \t        }"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/inferno.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -176,7 +176,7 @@ PS\n \t\n \tlayout(set = 1, binding = 50) uniform texture2D g_tSceneDepth;\n \tlayout(set = 1, binding = 51) uniform texture3D g_tSmokeNoiseTex;\n-\tlayout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;\n+\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;\n \t\n \tlayout(location = 0) in vec2 input_0;\n \tlayout(location = 2) in vec3 input_2;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/lpv_debug_grid.slang",
          "status": "modified",
          "additions": 104,
          "deletions": 93,
          "changes": 197,
          "patch": "@@ -288,7 +288,7 @@ PS\n \tTexture2D g_tParticleShadowBuffer < Attribute(\"ParticleShadowBuffer\"); SrgbRead(false); >;\n \tTexture2D g_tShadowDepthBufferDepth < Attribute(\"ShadowDepthBuffer\"); SrgbRead(false); >;\n \tTexture2D g_tSsao < Attribute(\"SSAOOcclusionFactor\"); SrgbRead(false); >;\n-\tfloat3 g_vFlatOverlayColor < Default2(1, 0); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n+\tfloat3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute(\"FlatOverlayColor\"); UiType(VectorText); >;\n \tfloat4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;\n \t\n \t// Fog\n@@ -329,17 +329,17 @@ PS\n \t#endif\n \t#extension GL_KHR_shader_subgroup_arithmetic : require\n \t\n-\tstruct _2339\n+\tstruct _2549\n \t{\n \t    vec4 _m0[3];\n \t};\n \t\n-\tstruct _2549\n+\tstruct _2759\n \t{\n \t    vec4 _m0[4];\n \t};\n \t\n-\tstruct _1069\n+\tstruct _1999\n \t{\n \t    mat4 _m0[4];\n \t};\n@@ -417,10 +417,10 @@ PS\n \t\n \tlayout(set = 1) uniform _1092 _Globals_;\n \t\n-\tstruct _2731\n+\tstruct _2703\n \t{\n-\t    _2339 _m0;\n-\t    _2549 _m1;\n+\t    _2549 _m0;\n+\t    _2759 _m1;\n \t    vec4 _m2;\n \t    vec4 _m3;\n \t    vec4 _m4;\n@@ -437,11 +437,11 @@ PS\n \t    float _m15;\n \t    float _m16;\n \t    float _m17;\n-\t    _1069 _m18;\n-\t    _2549 _m19;\n+\t    _1999 _m18;\n+\t    _2759 _m19;\n \t};\n \t\n-\tlayout(set = 3) uniform _2731 PerViewLightingConstantBufferGpu_t;\n+\tlayout(set = 3) uniform _2703 PerViewLightingConstantBufferGpu_t;\n \t\n \tlayout(set = 3, binding = 30, std430) readonly buffer g_CullBits\n \t{\n@@ -454,14 +454,14 @@ PS\n \t} g_BarnLights_1;\n \t\n \tlayout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;\n-\tlayout(set = 1, binding = 22) uniform sampler g_sCookieSampler;\n+\tlayout(set = 1, binding = 23) uniform sampler g_sCookieSampler;\n \tlayout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;\n-\tlayout(set = 1, binding = 18) uniform sampler g_sPointClamp;\n-\tlayout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n+\tlayout(set = 1, binding = 19) uniform sampler g_sPointClamp;\n+\tlayout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;\n \tlayout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;\n \tlayout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;\n-\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;\n-\tlayout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;\n+\tlayout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;\n+\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;\n \tlayout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;\n \tlayout(set = 1, binding = 41) uniform textureCubeArray g_tFallbackCubemap;\n \tlayout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;\n@@ -544,100 +544,110 @@ PS\n \t    {\n \t        _21709 = 1.0;\n \t    }\n-\t    vec3 _6606 = _21875.xyz;\n-\t    float _21710;\n+\t    float _8634 = dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _24735);\n+\t    float _12320;\n \t    SPIRV_CROSS_BRANCH\n-\t    if (PerViewLightingConstantBufferGpu_t._m11 != 0)\n+\t    if (_8634 > 0.0)\n \t    {\n-\t        int _23989;\n-\t        int _10191;\n-\t        float _13136;\n-\t        vec3 _14975;\n-\t        int _13039 = 0;\n-\t        for (;;)\n+\t        float _12503;\n+\t        SPIRV_CROSS_BRANCH\n+\t        if (PerViewLightingConstantBufferGpu_t._m11 != 0)\n \t        {\n-\t            if (!(_13039 < PerViewLightingConstantBufferGpu_t._m11))\n+\t            int _23989;\n+\t            int _10191;\n+\t            float _13136;\n+\t            vec3 _14975;\n+\t            int _13039 = 0;\n+\t            for (;;)\n \t            {\n-\t                _13136 = 1.0;\n-\t                _14975 = vec3(0.0);\n-\t                _10191 = -1;\n-\t                break;\n-\t            }\n-\t            vec4 _18322 = vec4(_21875.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_13039];\n-\t            float _12779 = _18322.x;\n-\t            if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m13[_13039])\n-\t            {\n-\t                vec3 _19470 = vec3(_12779, _18322.yz);\n-\t                vec2 _24804 = _19470.xy;\n-\t                vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m15)) + vec2(PerViewLightingConstantBufferGpu_t._m14));\n-\t                vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_13039].xy;\n-\t                vec3 _20488 = _19470;\n-\t                _20488.x = _20561.x;\n-\t                _20488.y = _20561.y;\n-\t                _13136 = saturate(_22193.x * _22193.y);\n-\t                _14975 = _20488;\n-\t                _10191 = _13039;\n-\t                break;\n+\t                if (!(_13039 < PerViewLightingConstantBufferGpu_t._m11))\n+\t                {\n+\t                    _13136 = 1.0;\n+\t                    _14975 = vec3(0.0);\n+\t                    _10191 = -1;\n+\t                    break;\n+\t                }\n+\t                vec4 _18322 = vec4(_21875.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_13039];\n+\t                float _12779 = _18322.x;\n+\t                if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m13[_13039])\n+\t                {\n+\t                    vec3 _19470 = vec3(_12779, _18322.yz);\n+\t                    vec2 _24804 = _19470.xy;\n+\t                    vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m15)) + vec2(PerViewLightingConstantBufferGpu_t._m14));\n+\t                    vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_13039].xy;\n+\t                    vec3 _20488 = _19470;\n+\t                    _20488.x = _20561.x;\n+\t                    _20488.y = _20561.y;\n+\t                    _13136 = saturate(_22193.x * _22193.y);\n+\t                    _14975 = _20488;\n+\t                    _10191 = _13039;\n+\t                    break;\n+\t                }\n+\t                _23989 = _13039 + 1;\n+\t                _13039 = _23989;\n+\t                continue;\n \t            }\n-\t            _23989 = _13039 + 1;\n-\t            _13039 = _23989;\n-\t            continue;\n-\t        }\n-\t        float _18423;\n-\t        if (_10191 >= 0)\n-\t        {\n-\t            float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);\n-\t            float _12501;\n-\t            SPIRV_CROSS_BRANCH\n-\t            if (_13136 < 1.0)\n+\t            float _18423;\n+\t            if (_10191 >= 0)\n \t            {\n-\t                float _7934;\n-\t                if (_10191 < (PerViewLightingConstantBufferGpu_t._m11 - 1))\n+\t                float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);\n+\t                float _12501;\n+\t                SPIRV_CROSS_BRANCH\n+\t                if (_13136 < 1.0)\n \t                {\n-\t                    int _15335 = _10191 + 1;\n-\t                    vec4 _19671 = vec4(_21875.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_15335];\n-\t                    vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_15335].xy;\n-\t                    vec3 _20489;\n-\t                    _20489.x = _20562.x;\n-\t                    _20489.y = _20562.y;\n-\t                    _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);\n+\t                    float _7934;\n+\t                    if (_10191 < (PerViewLightingConstantBufferGpu_t._m11 - 1))\n+\t                    {\n+\t                        int _15335 = _10191 + 1;\n+\t                        vec4 _19671 = vec4(_21875.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_15335];\n+\t                        vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_15335].xy;\n+\t                        vec3 _20489;\n+\t                        _20489.x = _20562.x;\n+\t                        _20489.y = _20562.y;\n+\t                        _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);\n+\t                    }\n+\t                    else\n+\t                    {\n+\t                        _7934 = 1.0;\n+\t                    }\n+\t                    _12501 = mix(_7934, _18270, _13136);\n \t                }\n \t                else\n \t                {\n-\t                    _7934 = 1.0;\n+\t                    _12501 = _18270;\n \t                }\n-\t                _12501 = mix(_7934, _18270, _13136);\n+\t                _18423 = _12501;\n \t            }\n \t            else\n \t            {\n-\t                _12501 = _18270;\n+\t                _18423 = 1.0;\n \t            }\n-\t            _18423 = _12501;\n-\t        }\n-\t        else\n-\t        {\n-\t            _18423 = 1.0;\n-\t        }\n-\t        float _13279 = mix(_18423, 1.0, saturate((distance(_19221.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m17) + PerViewLightingConstantBufferGpu_t._m16));\n-\t        float _12502;\n-\t        if (_24464.y)\n-\t        {\n-\t            _12502 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_17590.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            float _13279 = mix(_18423, 1.0, saturate((distance(_19221.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m17) + PerViewLightingConstantBufferGpu_t._m16));\n+\t            float _12502;\n+\t            if (_24464.y)\n+\t            {\n+\t                _12502 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_17590.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);\n+\t            }\n+\t            else\n+\t            {\n+\t                _12502 = _13279;\n+\t            }\n+\t            _12503 = _12502;\n \t        }\n \t        else\n \t        {\n-\t            _12502 = _13279;\n+\t            _12503 = 1.0;\n \t        }\n-\t        _21710 = _12502;\n+\t        _12320 = _12503;\n \t    }\n \t    else\n \t    {\n-\t        _21710 = 1.0;\n+\t        _12320 = 1.0;\n \t    }\n \t    vec3 _9716;\n \t    vec3 _24878;\n \t    SPIRV_CROSS_BRANCH\n-\t    if ((dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _24735) * _21710) > 0.0)\n+\t    if ((_8634 * _12320) > 0.0)\n \t    {\n \t        float _11797 = max(0.0, dot(_10560, PerViewLightingConstantBufferGpu_t._m9.xyz));\n \t        vec2 _9840 = max(_21813, vec2(PerViewLightingConstantBufferGpu_t._m9.w));\n@@ -648,7 +658,7 @@ PS\n \t        float _25211 = _9850 * _9850;\n \t        float _19095 = _25211 * _25211;\n \t        float _15346 = ((_12386 * _12386) * (_19095 - 1.0)) + 1.0;\n-\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m10.xyz * _21710).xyz;\n+\t        vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m10.xyz * _12320).xyz;\n \t        _9716 = ((_12351.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0) + 2.0)))).xyz * _11797).xyz * _16808;\n \t        _24878 = PerViewLightingConstantBufferGpu_t._m4.xyz + (vec3(_11797).xyz * _16808);\n \t    }\n@@ -709,6 +719,7 @@ PS\n \t            _20344 = _17018 & (_17018 - 1u);\n \t            do\n \t            {\n+\t                vec3 _22962 = _21875.xyz;\n \t                vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(_21875.xyz, 1.0);\n \t                vec3 _10521 = _24893.xyz / vec3(_24893.w);\n \t                vec4 _22905;\n@@ -733,7 +744,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    _12885 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(_6606, 1.0)).xyz), vec3(1.0)));\n+\t                    _12885 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(_22962, 1.0)).xyz), vec3(1.0)));\n \t                }\n \t                if (_12885)\n \t                {\n@@ -770,7 +781,7 @@ PS\n \t                float _11633;\n \t                if (g_BarnLights_1._m0[_12608]._m2.w != 0.0)\n \t                {\n-\t                    vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - _6606;\n+\t                    vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - _22962;\n \t                    float _18345 = dot(_10017, _10017);\n \t                    float _17647 = sqrt(_18345);\n \t                    vec3 _12302 = _10017 - _16268;\n@@ -848,7 +859,7 @@ PS\n \t                }\n \t                else\n \t                {\n-\t                    vec3 _12503;\n+\t                    vec3 _12504;\n \t                    if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)\n \t                    {\n \t                        vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);\n@@ -864,7 +875,7 @@ PS\n \t                        vec3 _20492 = _14081;\n \t                        _20492.x = _20564.x;\n \t                        _20492.y = _20564.y;\n-\t                        _12503 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;\n+\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;\n \t                    }\n \t                    else\n \t                    {\n@@ -873,9 +884,9 @@ PS\n \t                        vec3 _20491 = _13791;\n \t                        _20491.x = _20563.x;\n \t                        _20491.y = _20563.y;\n-\t                        _12503 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;\n+\t                        _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;\n \t                    }\n-\t                    _21548 = _12503;\n+\t                    _21548 = _12504;\n \t                }\n \t                if (all(equal(_21548.xyz, vec3(0.0))))\n \t                {\n@@ -919,9 +930,9 @@ PS\n \t                float _19211 = max(0.0, dot(_11179.xyz, _12282));\n \t                float _9851 = _9841.x;\n \t                float _25212 = _9851 * _9851;\n-\t                float _19097 = _25212 * _25212;\n-\t                float _15348 = ((_12387 * _12387) * (_19097 - 1.0)) + 1.0;\n-\t                _13212 = _13138.xyz + (((_12351.xyz * (_19097 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0) + 2.0)))).xyz * _11798).xyz * _22671.xyz);\n+\t                float _19096 = _25212 * _25212;\n+\t                float _15348 = ((_12387 * _12387) * (_19096 - 1.0)) + 1.0;\n+\t                _13212 = _13138.xyz + (((_12351.xyz * (_19096 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0) + 2.0)))).xyz * _11798).xyz * _22671.xyz);\n \t                _15670 = _16325.xyz + (vec3(_11798).xyz * _22671.xyz);\n \t                break;\n \t            } while(false);"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/luminaire.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -273,7 +273,7 @@ PS\n \tlayout(set = 1) uniform _1008 PerViewConstantBuffer_t;\n \t\n \tlayout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;\n-\tlayout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;\n+\tlayout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;\n \t\n \tlayout(location = 0) in vec3 input_0;\n \tlayout(location = 0) out vec4 output_0;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/mboit_mixed_combine.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -154,7 +154,7 @@ PS\n \t};\n \t\n \tTexture2D<float4> g_tZeroth_Moment : register(t31, space1);\n-\tSamplerState g_sBilinearClamp : register(s15, space1);\n+\tSamplerState g_sBilinearClamp : register(s16, space1);\n \tTexture2D<float4> g_tMoments : register(t32, space1);\n \tTexture2D<float4> g_tMoments_Extra : register(t33, space1);\n \t"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/mboitfinal.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -134,7 +134,7 @@ PS\n \t};\n \t\n \tTexture2D<float4> g_tMoitFinal : register(t30, space1);\n-\tSamplerState g_sPointClamp : register(s18, space1);\n+\tSamplerState g_sPointClamp : register(s19, space1);\n \tTexture2D<float4> g_tZeroth_Moment : register(t31, space1);\n \t\n \tstatic float4 gl_FragCoord;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/overlay_smoke.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -110,7 +110,7 @@ PS\n \t};\n \t\n \tTexture2D<float4> g_tSmokeAccum : register(t30, space1);\n-\tSamplerState g_sBilinearClamp : register(s15, space1);\n+\tSamplerState g_sBilinearClamp : register(s16, space1);\n \t\n \tstatic float2 input_0;\n \tstatic float4 output_0;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/post_process.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -181,7 +181,7 @@ PS\n \tlayout(set = 1) uniform _1245 PostProcessingConstantBuffer_t;\n \t\n \tlayout(set = 1, binding = 50) uniform texture2D g_tColorBuffer;\n-\tlayout(set = 1, binding = 25) uniform sampler Filter_MinMagLinearMipPoint;\n+\tlayout(set = 1, binding = 26) uniform sampler Filter_MinMagLinearMipPoint;\n \t\n \tlayout(location = 0) out vec4 output_0;\n \t"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/screenparticlescombine.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -98,7 +98,7 @@ PS\n \t};\n \t\n \tTexture2D<float4> g_tScreenParticles : register(t30, space1);\n-\tSamplerState g_sBilinearClamp : register(s15, space1);\n+\tSamplerState g_sBilinearClamp : register(s16, space1);\n \t\n \tstatic float4 gl_FragCoord;\n \tstatic float4 output_0;"
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/simple.slang",
          "status": "modified",
          "additions": 0,
          "deletions": 0,
          "changes": 0,
          "patch": null
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/sky.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": null
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/smoke_volume.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": null
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/smoke_volume_depth.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": null
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/smoke_volume_lpv.slang",
          "status": "modified",
          "additions": 4,
          "deletions": 4,
          "changes": 8,
          "patch": null
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/spritecard.slang",
          "status": "modified",
          "additions": 6,
          "deletions": 6,
          "changes": 12,
          "patch": null
        },
        {
          "filename": "game/csgo/shaders_vulkan_dir/shaders/vfx/tools_wireframe.slang",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": null
        },
        {
          "filename": "game/csgo/steam.inf",
          "status": "modified",
          "additions": 6,
          "deletions": 6,
          "changes": 12,
          "patch": null
        },
        {
          "filename": "manifests/manifest_2347770.txt",
          "status": "modified",
          "additions": 22,
          "deletions": 21,
          "changes": 43,
          "patch": null
        },
        {
          "filename": "manifests/manifest_2347771.txt",
          "status": "modified",
          "additions": 66,
          "deletions": 65,
          "changes": 131,
          "patch": null
        },
        {
          "filename": "manifests/manifest_2347773.txt",
          "status": "modified",
          "additions": 36,
          "deletions": 36,
          "changes": 72,
          "patch": null
        },
        {
          "filename": "manifests/manifest_2347779.txt",
          "status": "modified",
          "additions": 34,
          "deletions": 34,
          "changes": 68,
          "patch": null
        },
        {
          "filename": "manifests/manifest_731.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": null
        },
        {
          "filename": "manifests/manifest_732.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": null
        },
        {
          "filename": "manifests/manifest_733.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": null
        },
        {
          "filename": "manifests/manifest_734.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": null
        },
        {
          "filename": "manifests/manifest_735.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": null
        }
      ]
    },
    {
      "event_id": "gh:cce7bf1",
      "detected_at_utc": "2026-11-13T14:09:50.272Z",
      "commit_date_utc": "2026-11-05T00:55:25Z",
      "commit": {
        "sha": "cce7bf1f190144c1c08fb0fe75fd3c9514f2637f",
        "short": "cce7bf1",
        "message": "2000942 | 39 files | M\tcontent/csgo_addons/cs_script_demo/maps/scripts/chess.js, M\tcontent/csgo_addons/cs_script_demo/maps/scripts/grenadetraining.js, M\tcontent/csgo_addons/cs_script_demo/maps/scripts/mdlchange.js, M\tcontent/csgo_addons/cs_script_demo/maps/scripts/point_script.d.ts, M\tcontent/csgo_addons/cs_script_demo/maps/scripts/setup.js, M\tgame/bin/built_from_cl.txt, M\tgame/bin/win64/pulse_system_strings.txt, M\tgame/csgo/bin/win64/client_strings.txt, M\tgame/csgo/bin/win64/server_strings.txt, M\tgame/csgo/cfg/gamemode_retakecasual.cfg, M\tgame/csgo/pak01_dir.txt, M\tgame/csgo/pak01_dir/maps/de_ancient_night_retake.txt, M\tgame/csgo/pak01_dir/maps/de_ancient_retake.txt, M\tgame/csgo/pak01_dir/maps/de_anubis_retake.txt, M\tgame/csgo/pak01_dir/maps/de_cache_retake.txt, M\tgame/csgo/pak01_dir/maps/de_dust2_retake.txt, M\tgame/csgo/pak01_dir/maps/de_inferno_retake.txt, M\tgame/csgo/pak01_dir/maps/de_mirage_retake.txt, M\tgame/csgo/pak01_dir/maps/de_nuke_retake.txt, M\tgame/csgo/pak01_dir/maps/de_overpass_retake.txt, M\tgame/csgo/pak01_dir/maps",
        "url": "https://github.com/SteamTracking/GameTracking-CS2/commit/cce7bf1f190144c1c08fb0fe75fd3c9514f2637f"
      },
      "classification": {
        "tags": [
          "scripts",
          "ui",
          "assets",
          "misc",
          "content-change"
        ],
        "important_files": [
          "content/csgo_addons/cs_script_demo/maps/scripts/chess.js",
          "content/csgo_addons/cs_script_demo/maps/scripts/grenadetraining.js",
          "content/csgo_addons/cs_script_demo/maps/scripts/mdlchange.js",
          "content/csgo_addons/cs_script_demo/maps/scripts/point_script.d.ts",
          "content/csgo_addons/cs_script_demo/maps/scripts/setup.js",
          "game/csgo/pak01_dir/maps/de_ancient_night_retake.txt",
          "game/csgo/pak01_dir/maps/de_ancient_retake.txt",
          "game/csgo/pak01_dir/maps/de_anubis_retake.txt",
          "game/csgo/pak01_dir/maps/de_cache_retake.txt",
          "game/csgo/pak01_dir/maps/de_dust2_retake.txt",
          "game/csgo/pak01_dir/maps/de_inferno_retake.txt",
          "game/csgo/pak01_dir/maps/de_mirage_retake.txt",
          "game/csgo/pak01_dir/maps/de_nuke_retake.txt",
          "game/csgo/pak01_dir/maps/de_overpass_retake.txt",
          "game/csgo/pak01_dir/maps/de_train_retake.txt",
          "game/csgo/pak01_dir/maps/de_vertigo_retake.txt",
          "game/csgo/pak01_dir/panorama/styles/retakeloadout.css",
          "game/csgo/pak01_dir/scripts/workshop_cvar_whitelist.txt",
          "game/csgo_addons/cs_script_demo/panorama_stripped/maps/scripts/chess.js",
          "game/csgo_addons/cs_script_demo/panorama_stripped/maps/scripts/grenadetraining.js",
          "game/csgo_addons/cs_script_demo/panorama_stripped/maps/scripts/mdlchange.js",
          "game/csgo_addons/cs_script_demo/panorama_stripped/maps/scripts/setup.js"
        ]
      },
      "ai_summary": "Assets/UI/maps update (content/csgo_addons/cs_script_demo/maps/scripts/chess.js, content/csgo_addons/cs_script_demo/maps/scripts/grenadetraining.js, content/csgo_addons/cs_script_demo/maps/scripts/mdlchange.js).",
      "stats": {
        "files_changed": 39,
        "additions": 597,
        "deletions": 515
      },
      "files": [
        {
          "filename": "content/csgo_addons/cs_script_demo/maps/scripts/chess.js",
          "status": "modified",
          "additions": 10,
          "deletions": 10,
          "changes": 20,
          "patch": "@@ -1,6 +1,6 @@\n // @ts-nocheck\n \n-import { Instance, PointTemplate } from \"cs_script/point_script\";\n+import { Instance, PointTemplate, Entities } from \"cs_script/point_script\";\n \n function ChessJS() {\n     /**\n@@ -3474,7 +3474,7 @@ let chess = new Chess();\n \n const centers = {};\n function FindCenters() {\n-    const entities = Instance.FindEntitiesByClass(\"info_target\");\n+    const entities = Entities.FindByClass(\"info_target\");\n     for (const ent of entities) {\n         const name = ent.GetEntityName();\n         if (/^[a-h][1-8]$/.test(name)) {\n@@ -3501,14 +3501,14 @@ async function RunChess() {\n         await AnimateMove(move);\n     }\n \n-    Instance.EntFireAtName({ name: `snd.chess.${chess.turn()}.win`, input: \"StartSound\" });\n+    Entities.FireInput({ name: `snd.chess.${chess.turn()}.win`, input: \"StartSound\" });\n     Instance.SetNextThink(Instance.GetGameTime() + 10);\n     bIsRunning = false;\n }\n \n function RenderPieces() {\n     /** @type{import(\"cs_script/point_script\").BaseModelEntity[]} */\n-    const existing = Instance.FindEntitiesByName(\"chess.piece.*\");\n+    const existing = Entities.FindByName(\"chess.piece.*\");\n \n     for (const line of chess.board()) {\n         for (const square of line) {\n@@ -3545,12 +3545,12 @@ function RenderPieces() {\n }\n \n function PlaySoundOnEnt(soundEntName, targetEntName) {\n-    Instance.EntFireAtName({ name: soundEntName, input: \"SetSourceEntity\", value: targetEntName });\n-    Instance.EntFireAtName({ name: soundEntName, input: \"StartSound\" });\n+    Entities.FireInput({ name: soundEntName, input: \"SetSourceEntity\", value: targetEntName });\n+    Entities.FireInput({ name: soundEntName, input: \"StartSound\" });\n }\n \n async function AnimateMove(move) {\n-    const piece = Instance.FindEntitiesByName(`chess.piece.${move.color}.${move.piece}`).find((p) => p.square === move.from);\n+    const piece = Entities.FindByName(`chess.piece.${move.color}.${move.piece}`).find((p) => p.square === move.from);\n     if (!piece) {\n         RenderPieces();\n         return;\n@@ -3568,7 +3568,7 @@ async function AnimateMove(move) {\n         if (move.isCapture()) {\n             PlaySoundOnEnt(\"chess.snd.capture\", piece.GetEntityName());\n             const capturedColor = move.color === WHITE ? BLACK : WHITE;\n-            const captured = Instance.FindEntitiesByName(`chess.piece.${capturedColor}.${move.captured}`).find((p) => p.square === move.to);\n+            const captured = Entities.FindByName(`chess.piece.${capturedColor}.${move.captured}`).find((p) => p.square === move.to);\n             if (captured) {\n                 await DiePiece(captured);\n             }\n@@ -3623,9 +3623,9 @@ async function DiePiece(piece) {\n }\n \n function SpawnPiece(type, color) {\n-    let spawner = Instance.FindEntityByName(`chess.template.${type}.${color}`);\n+    let [spawner] = Entities.FindByName(`chess.template.${type}.${color}`);\n     if (!spawner) {\n-        spawner = Instance.FindEntityByName(`chess.template.${type}`);\n+        [spawner] = Entities.FindByName(`chess.template.${type}`);\n     }\n     if (spawner instanceof PointTemplate) {\n         const spawned = spawner.ForceSpawn();"
        },
        {
          "filename": "content/csgo_addons/cs_script_demo/maps/scripts/grenadetraining.js",
          "status": "modified",
          "additions": 32,
          "deletions": 32,
          "changes": 64,
          "patch": "@@ -1,4 +1,4 @@\n-import { Console, Entity, Instance } from \"cs_script/point_script\";\n+import { Console, Entity, Instance, Entities } from \"cs_script/point_script\";\n \n let Rounds = 0;\n let Hits = 0;\n@@ -11,9 +11,9 @@ let TargetHard = \"targetbox.hard\";\n function SetNextTarget() {\n     Rounds++;\n \n-    Instance.EntFireAtName({ name: \"worldtext.rounds\", input: \"SetMessage\", value: Rounds });\n-    Instance.EntFireAtName({ name: \"cover.*\", input: \"Enable\" });\n-    Instance.EntFireAtName({ name: \"tele.reset\", input: \"Teleport\" });\n+    Entities.FireInput({ name: \"worldtext.rounds\", input: \"SetMessage\", value: Rounds });\n+    Entities.FireInput({ name: \"cover.*\", input: \"Enable\" });\n+    Entities.FireInput({ name: \"tele.reset\", input: \"Teleport\" });\n \n     // Roll 1-11, if it duplicates last value choose value 12.\n     let NewTarget = Math.floor(Math.random() * 11) + 1;\n@@ -24,27 +24,27 @@ function SetNextTarget() {\n     if (Rounds > 7) difficulty = \"hard\";\n     else if (Rounds > 4) difficulty = \"med\";\n \n-    Instance.EntFireAtName({ name: `cover.${Target}`, input: \"Disable\" });\n-    Instance.EntFireAtName({ name: `tele.${Target}`, input: \"TeleportEntity\", value: `targetbox.${difficulty}` });\n+    Entities.FireInput({ name: `cover.${Target}`, input: \"Disable\" });\n+    Entities.FireInput({ name: `tele.${Target}`, input: \"TeleportEntity\", value: `targetbox.${difficulty}` });\n }\n \n // called if player leaves play area at any time\n Instance.OnScriptInput(\"ResetAndCleanUp\", () => {\n-    Instance.EntFireAtName({ name: \"trigger.start\", input: \"Enable\" });\n-    Instance.EntFireAtName({ name: \"trigger.end_early\", input: \"Disable\" });\n-    Instance.EntFireAtName({ name: \"worldtext.go_here\", input: \"Enable\" });\n-    Instance.EntFireAtName({ name: \"relay.start_countdown\", input: \"CancelPending\" });\n-\n-    Instance.EntFireAtName({ name: \"worldtext.training_countdown_dyn\", input: \"SetMessage\", value: \"3\" });\n-    Instance.EntFireAtName({ name: \"worldtext.training_countdown_static\", input: \"Disable\" });\n-    Instance.EntFireAtName({ name: \"worldtext.training_countdown_dyn\", input: \"Disable\" });\n-    Instance.EntFireAtName({ name: \"board.timer\", input: \"Disable\" });\n-    Instance.EntFireAtName({ name: \"board.timer\", input: \"ResetTimer\" });\n-    Instance.EntFireAtName({ name: \"snd.tick\", input: \"StopSound\" });\n-    Instance.EntFireAtName({ name: \"tele.reset\", input: \"Teleport\" });\n-    Instance.EntFireAtName({ name: \"cover.*\", input: \"Enable\" });\n-    Instance.EntFireAtName({ name: \"worldtext.hits\", input: \"SetMessage\", value: \"0\" });\n-    Instance.EntFireAtName({ name: \"worldtext.rounds\", input: \"SetMessage\", value: \"0\" });\n+    Entities.FireInput({ name: \"trigger.start\", input: \"Enable\" });\n+    Entities.FireInput({ name: \"trigger.end_early\", input: \"Disable\" });\n+    Entities.FireInput({ name: \"worldtext.go_here\", input: \"Enable\" });\n+    Entities.FireInput({ name: \"relay.start_countdown\", input: \"CancelPending\" });\n+\n+    Entities.FireInput({ name: \"worldtext.training_countdown_dyn\", input: \"SetMessage\", value: \"3\" });\n+    Entities.FireInput({ name: \"worldtext.training_countdown_static\", input: \"Disable\" });\n+    Entities.FireInput({ name: \"worldtext.training_countdown_dyn\", input: \"Disable\" });\n+    Entities.FireInput({ name: \"board.timer\", input: \"Disable\" });\n+    Entities.FireInput({ name: \"board.timer\", input: \"ResetTimer\" });\n+    Entities.FireInput({ name: \"snd.tick\", input: \"StopSound\" });\n+    Entities.FireInput({ name: \"tele.reset\", input: \"Teleport\" });\n+    Entities.FireInput({ name: \"cover.*\", input: \"Enable\" });\n+    Entities.FireInput({ name: \"worldtext.hits\", input: \"SetMessage\", value: \"0\" });\n+    Entities.FireInput({ name: \"worldtext.rounds\", input: \"SetMessage\", value: \"0\" });\n \n     Console.SetConvar(\"sv_infinite_ammo\", 0);\n     const player = Instance.GetPlayerController(0)?.GetPlayerPawn();\n@@ -53,10 +53,10 @@ Instance.OnScriptInput(\"ResetAndCleanUp\", () => {\n });\n \n Instance.OnScriptInput(\"StartTraining\", () => {\n-    Instance.EntFireAtName({ name: \"trigger.start\", input: \"Disable\" });\n-    Instance.EntFireAtName({ name: \"trigger.end_early\", input: \"Enable\" });\n-    Instance.EntFireAtName({ name: \"worldtext.go_here\", input: \"Disable\" });\n-    Instance.EntFireAtName({ name: \"relay.start_countdown\", input: \"Trigger\" });\n+    Entities.FireInput({ name: \"trigger.start\", input: \"Disable\" });\n+    Entities.FireInput({ name: \"trigger.end_early\", input: \"Enable\" });\n+    Entities.FireInput({ name: \"worldtext.go_here\", input: \"Disable\" });\n+    Entities.FireInput({ name: \"relay.start_countdown\", input: \"Trigger\" });\n \n     Console.SetConvar(\"sv_infinite_ammo\", 1);\n     const player = Instance.GetPlayerController(0)?.GetPlayerPawn();\n@@ -70,8 +70,8 @@ Instance.OnScriptInput(\"StartTraining\", () => {\n // called from grenade trigger inside target area\n Instance.OnScriptInput(\"GrenadeHit\", () => {\n     Hits++;\n-    Instance.EntFireAtName({ name: \"snd.hit\", input: \"StartSound\" });\n-    Instance.EntFireAtName({ name: \"worldtext.hits\", input: \"SetMessage\", value: Hits });\n+    Entities.FireInput({ name: \"snd.hit\", input: \"StartSound\" });\n+    Entities.FireInput({ name: \"worldtext.hits\", input: \"SetMessage\", value: Hits });\n     if (trackedProjectile && trackedProjectile.IsValid()) {\n         trackedProjectile.Remove();\n         trackedProjectile = undefined;\n@@ -83,11 +83,11 @@ Instance.OnScriptInput(\"SetNextTarget\", () => {\n     if (Rounds < 10) {\n         SetNextTarget();\n     } else {\n-        Instance.EntFireAtName({ name: \"snd.end\", input: \"StartSound\" });\n-        Instance.EntFireAtName({ name: \"board.timer\", input: \"Disable\" });\n-        Instance.EntFireAtName({ name: \"board.timer\", input: \"ResetTimer\" });\n-        Instance.EntFireAtName({ name: \"tele.reset\", input: \"Teleport\" });\n-        Instance.EntFireAtName({ name: \"cover.*\", input: \"Enable\" });\n+        Entities.FireInput({ name: \"snd.end\", input: \"StartSound\" });\n+        Entities.FireInput({ name: \"board.timer\", input: \"Disable\" });\n+        Entities.FireInput({ name: \"board.timer\", input: \"ResetTimer\" });\n+        Entities.FireInput({ name: \"tele.reset\", input: \"Teleport\" });\n+        Entities.FireInput({ name: \"cover.*\", input: \"Enable\" });\n     }\n });\n "
        },
        {
          "filename": "content/csgo_addons/cs_script_demo/maps/scripts/mdlchange.js",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,7 +1,7 @@\n-import { Instance, BaseModelEntity, Console } from \"cs_script/point_script\";\n+import { Instance, BaseModelEntity, Console, Entities } from \"cs_script/point_script\";\n \n function GetProp() {\n-    const ent = Instance.FindEntityByName(\"mdlchange.prop_dyn\");\n+    const [ent] = Entities.FindByName(\"mdlchange.prop_dyn\");\n     if (ent instanceof BaseModelEntity) return ent;\n }\n function Init() {"
        },
        {
          "filename": "content/csgo_addons/cs_script_demo/maps/scripts/point_script.d.ts",
          "status": "modified",
          "additions": 58,
          "deletions": 21,
          "changes": 79,
          "patch": "@@ -43,12 +43,15 @@ declare module \"cs_script/point_script\"\n \n     export const GameRules: IGameRules;\n \n+    export const Entities: IEntities;\n+\n     type Vector = { x: number, y: number, z: number };\n     type RotationVector = { x: number, y: number, z: number };\n     type QAngle = { pitch: number, yaw: number, roll: number };\n     type ColorArg = { r: number, g: number, b: number, a?: number };\n     type Color = { r: number, g: number, b: number, a: number };\n     type InputValue = boolean | number | string | Vector | Color | undefined;\n+    type EntityKeyValue = boolean | number | string | Vector | QAngle;\n \n     /**\n      * The API provided to scripts attached to a point_script entity.\n@@ -110,6 +113,8 @@ declare module \"cs_script/point_script\"\n         OnPlayerDisconnect(callback: (event: { playerSlot: number }) => void): void;\n         /** Called when a player respawns, changes team, or is placed back at spawn due to a round restart */\n         OnPlayerReset(callback: (event: { player: CSPlayerPawn }) => void): void\n+        /** Called when a player takes or releases control of a bot. */\n+        OnBotControl(callback: (event: { controller: CSPlayerController }) => void): void;\n         /** Called when a player changes team */\n         OnPlayerTeamChanged(callback: (event: { player: CSPlayerPawn, oldTeam: number }) => void): void\n         /** Called when a new round begins */\n@@ -191,23 +196,6 @@ declare module \"cs_script/point_script\"\n         /** Called when a button in a CustomHudLayout is clicked. */\n         OnCustomHudClicked( callback: (event: {player: CSPlayerController, layout: CustomHudLayout, buttonId: string}) => void ): void;\n \n-        /** Fire the input on all targets matching the specified names. */\n-        EntFireAtName(config: { name: string, input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number }): void;\n-        /** Fire the input on the specified target. */\n-        EntFireAtTarget(config: { target: Entity, input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number }): void;\n-        /** Connect the output of an entity to a callback. The return value is a connection id that can be used in `DisconnectOutput` */\n-        ConnectOutput(target: Entity, output: string, callback: (inputData: { value?: InputValue, caller?: Entity, activator?: Entity }) => any): number | undefined;\n-        /** Find entities by name. */\n-        DisconnectOutput(connectionId: number): void;\n-\n-        /** Find the first entity matching the specified name. */\n-        FindEntityByName(name: string): Entity | undefined;\n-        /** Find entities matching the specified name. */\n-        FindEntitiesByName(name: string): Entity[];\n-        /** Find the first entity of the specified class name. */\n-        FindEntityByClass(className: string): Entity | undefined;\n-        /** Find entities of the specified class name. */\n-        FindEntitiesByClass(className: string): Entity[];\n         /** Get the player controller in the given slot. */\n         GetPlayerController(playerSlot: number): CSPlayerController | undefined;\n         /** Get all the player controllers. Includes disconnected players. */\n@@ -240,11 +228,12 @@ declare module \"cs_script/point_script\"\n \n         /**\n          * Loads resources on the server and clients to avoid hitches when later referenced.\n-         * Supports .vmdl, .vpcf, .vmat, and .vsnd resources.\n+         * `resources` supports .vmdl, .vpcf, .vmat, and .vsnd resources.\n+         * `entities` takes entity class names or subclass names.\n          * @experimental This feature is experimental and may experience breaking changes.\n          * Please send feedback to CSGOTeamFeedback@valvesoftware.com with \"cs_script Feedback\" in the subject line.\n          */\n-        Precache(config: { resources: string[] }): CSPrecache | undefined;\n+        Precache(config: { resources?: string[], entities?: string[] }): CSPrecache | undefined;\n \n         /** @deprecated This method will be removed in a future update */\n         OnBeforePlayerDamage(callback: () => any): void;\n@@ -260,9 +249,13 @@ declare module \"cs_script/point_script\"\n         DebugBox(mins: Vector, maxs: Vector, duration: number, color: ColorArg): void;\n         /** @deprecated This overload will be removed in a future update */\n         DebugSphere(center: Vector, radius: number, duration: number, color: ColorArg): void;\n-        /** @deprecated This overload will be removed in a future update */\n+        /** @deprecated This method will be removed in a future update */\n+        EntFireAtName(config: { name: string, input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number }): void;\n+        /** @deprecated This method will be removed in a future update */\n         EntFireAtName(name: string, input: string, inputData?: InputValue | { value?: InputValue, caller?: Entity, activator?: Entity }, delay?: number): void;\n-        /** @deprecated This overload will be removed in a future update */\n+        /** @deprecated This method will be removed in a future update */\n+        EntFireAtTarget(config: { target: Entity, input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number }): void;\n+        /** @deprecated This method will be removed in a future update */\n         EntFireAtTarget(target: Entity, input: string, inputData?: InputValue | { value?: InputValue, caller?: Entity, activator?: Entity }, delay?: number): void;\n         /** @deprecated This method will be removed in a future update */\n         Msg(text: any): void;\n@@ -286,6 +279,18 @@ declare module \"cs_script/point_script\"\n         SetRoundRemainingTime(time: number): void;\n         /** @deprecated This method will be removed in a future update */\n         AddTeamMoney(team: number, reason: CSTeamMoneyReason, amount?: number): void;\n+        /** @deprecated This method will be removed in a future update */\n+        FindEntityByName(name: string): Entity | undefined;\n+        /** @deprecated This method will be removed in a future update */\n+        FindEntitiesByName(name: string): Entity[];\n+        /** @deprecated This method will be removed in a future update */\n+        FindEntityByClass(className: string): Entity | undefined;\n+        /** @deprecated This method will be removed in a future update */\n+        FindEntitiesByClass(className: string): Entity[];\n+        /** @deprecated This method will be removed in a future update */\n+        ConnectOutput(target: Entity, output: string, callback: (inputData: { value?: InputValue, caller?: Entity, activator?: Entity }) => any): number | undefined;\n+        /** @deprecated This method will be removed in a future update */\n+        DisconnectOutput(connectionId: number): void;\n     }\n     \n     /**\n@@ -362,6 +367,32 @@ declare module \"cs_script/point_script\"\n         AddTeamMoney(team: number, reason: CSTeamMoneyReason, amount?: number): void;\n     }\n \n+    /**\n+     * An API provided to scripts for general entity interaction.\n+     * Access these functions by importing Entities from \"cs_script/point_script\".\n+     */\n+    interface IEntities\n+    {\n+        /**\n+         * Spawns a set of entities.\n+         * @experimental This feature is experimental and may experience breaking changes.\n+         * Please send feedback to CSGOTeamFeedback@valvesoftware.com with \"cs_script Feedback\" in the subject line.\n+         */\n+        Spawn(entities: ({ classname: string, origin?: Vector, angles?: QAngle } & { [key: string]: EntityKeyValue })[]): Entity[];\n+\n+        /** Find all entities with the specified name. */\n+        FindByName(name: string): Entity[];\n+        /** Find all entities of the specified class name. */\n+        FindByClass(className: string): Entity[];\n+\n+        /** Fire the input on all entities with the specified name. */\n+        FireInput(config: { name: string, input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number }): void;\n+        /** Connect the output of an entity to a callback. The return value is a connection id that can be used in `DisconnectOutput` */\n+        ConnectOutput(config: { target: Entity, output: string, callback: (inputData: { value?: InputValue, caller?: Entity, activator?: Entity }) => any }): number | undefined;\n+        /** Disconnect an output connection made by `ConnectOutput`. */\n+        DisconnectOutput(connectionId: number): void;\n+    }\n+\n     export enum CSMoveType {\n         INVALID = -1,\n         NONE,\n@@ -806,6 +837,8 @@ declare module \"cs_script/point_script\"\n         TakeDamage(takeDamage: EntityDamage): number;\n         Kill(): void;\n         Remove(): void;\n+        /** Fire the input on this entity. */\n+        FireInput(config: { input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number }): void;\n \n         /** @deprecated This overload will be removed in a future update */\n         Teleport(newPosition: Vector | null, newAngles: QAngle | null, newVelocity: Vector | null): void;\n@@ -927,6 +960,8 @@ declare module \"cs_script/point_script\"\n         GetPlayerName(): string;\n         GetPlayerPawn(): CSPlayerPawn | undefined;\n         GetObserverPawn(): CSObserverPawn | undefined;\n+        IsControllingBot(): boolean;\n+        GetControlledBotPawn(): CSPlayerPawn | undefined;\n         GetScore(): number;\n         /** Add to the player's score. Negative values are allowed but the score will not go below zero. */\n         AddScore(points: number): void;\n@@ -961,6 +996,8 @@ declare module \"cs_script/point_script\"\n         GetPlayerController(): CSPlayerController | undefined;\n         /** Gets the controller that this player pawn was originally spawned for. */\n         GetOriginalPlayerController(): CSPlayerController;\n+        /** Reset the player to full health and ammo. If dead they will be alive with the default weapon loadout. Cancels any bot takeover. */\n+        Reset(): void;\n         /** @returns `true` if specified inputs are pressed at the end of the current tick. */\n         IsInputPressed(inputs: CSInputs): boolean;\n         /** @returns `true` if specified inputs went from released to pressed at some point during the current tick. */"
        },
        {
          "filename": "content/csgo_addons/cs_script_demo/maps/scripts/setup.js",
          "status": "modified",
          "additions": 12,
          "deletions": 5,
          "changes": 17,
          "patch": "@@ -1,4 +1,4 @@\n-import { CSDamageFlags, CSDamageTypes, Entity, Instance, Console } from \"cs_script/point_script\";\n+import { CSDamageFlags, CSDamageTypes, Entity, Instance, Console, Entities } from \"cs_script/point_script\";\n \n Console.SetConvar(\"sv_cheats\", true);\n Console.SetConvar(\"mp_warmup_offline_enabled\", true);\n@@ -16,12 +16,19 @@ Instance.OnPlayerActivate(({ player }) => {\n     ShowWelcome(player.GetPlayerSlot());\n });\n \n-Instance.OnModifyPlayerDamage(({ player }) => {\n-    if (player.GetOriginalPlayerController().IsBot()) {\n+Instance.OnModifyPlayerDamage(({ player, damageTypes }) => {\n+    if (player.GetOriginalPlayerController().IsBot() && !(damageTypes & CSDamageTypes.BLAST)) {\n         return { damageFlags: CSDamageFlags.PREVENT_DEATH };\n     }\n });\n \n+Instance.OnPlayerKill(async ({ player }) => {\n+    await Instance.Delay(1);\n+    if (player.IsValid() && !player.IsAlive()) {\n+        player.Reset();\n+    }\n+});\n+\n Instance.OnPlayerDamage((event) => {\n     if (event.damageTypes == CSDamageTypes.SLASH) {\n         Instance.QueueAfterThinks(() => {\n@@ -35,9 +42,9 @@ Instance.OnPlayerDamage((event) => {\n let welcomeLayout = null;\n function GetWelcomeLayout() {\n     if (!(welcomeLayout instanceof Entity) || !welcomeLayout.IsValid()) {\n-        welcomeLayout = Instance.FindEntitiesByName(\"welcome_layout\")[0];\n+        [welcomeLayout] = Entities.FindByName(\"welcome_layout\");\n     }\n-    return Instance.FindEntitiesByName(\"welcome_layout\")[0];\n+    return Entities.FindByName(\"welcome_layout\")[0];\n }\n \n function ShowWelcome(playerSlot) {"
        },
        {
          "filename": "game/bin/built_from_cl.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -1 +1 @@\n-11198114\n+11206685"
        },
        {
          "filename": "game/bin/win64/pulse_system_strings.txt",
          "status": "modified",
          "additions": 3,
          "deletions": 0,
          "changes": 3,
          "patch": "@@ -39,6 +39,7 @@\n %s:autowake\n %s:interrupt\n %s:wait\n+%s_c\n (%s:%d)\n (debug)\n *** Test failure: \"%s\"\n@@ -863,6 +864,7 @@ PrintStringWithLeafSuggestions: %s\\n\n Probable infinite loop detected! Terminating pulse cursor after %d consecutive instructions (%s)\n Probable runaway cursor creation detected! Permanently disabling this graph instance (%s)\n Process Selector\n+Pulse graphs not allowed from untrusted addons.\\n\n Pulse system: minimal vpulse definition loading enabled - graphs may be incomplete!\\n\n Pulse: %s \n PulseSystemEventCursorResult_t\n@@ -1364,6 +1366,7 @@ propattr_flatten_into_parent_row\n propdataname\n public_output::%s\n public_output::%s::%s\n+pulse/pulse_enabled_for_untrusted_addons\n pulse_bindings\n pulse_editor\n pulse_fingerprints"
        },
        {
          "filename": "game/csgo/bin/win64/client_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -21990,6 +21990,7 @@ RestorePetItemData\n ResurrectedUnreachables%d\n RetakeLoadout\n RetakeLoadoutMenu--loadout-container-%d\n+RetakeLoadoutMenu--loadout-container-0\n RetakeLoadoutMenuCardContainer\n RetakeLoadoutMenuLoadoutContainer\n Retakes"
        },
        {
          "filename": "game/csgo/bin/win64/server_strings.txt",
          "status": "modified",
          "additions": 37,
          "deletions": 4,
          "changes": 41,
          "patch": "@@ -985,6 +985,7 @@ $tH@T\\tI\n %.3f sec delay\n %.5f (%.5f)\n %.6f\n+%.9g %.9g %.9g\n %0*d\n %0.15f\n %0.21f\n@@ -1525,18 +1526,23 @@ $tH@T\\tI\n (command: string)\n (config:{before?:function,after?:function})\n (config:{center: Vector, radius: number, duration: number, color: Color})\n+(config:{input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number})\n (config:{mins: Vector, maxs: Vector, duration: number, color: Color})\n (config:{name: string, input: string, value:any, caller:Entity, activator:Entity, delay:number})\n-(config:{resources: string[]})\n+(config:{name: string, input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number})\n+(config:{resources?: string[], entities?: string[]})\n (config:{start: Vector, end: Vector, duration: number, color: Color})\n (config:{target: Entity, input: string, value:any, caller:Entity, activator:Entity, delay:number})\n+(config:{target: Entity, output: string, callback: function})\n (config:{text: string, x: number, y: number, duration: number, color: Color})\n+(connectionId: number)\n (connectionId:number)\n (damage: number, info?: Object)\n (data: string)\n (debug)\n (default)\n (delay: number)\n+(entities:{classname: string, origin?: Vector, angles?: QAngle, [key: string]: EntityKeyValue}[])\n (entmodel:Entity,index?:number)\n (exception)\n (followConfig: CameraFollowConfig)\n@@ -2632,6 +2638,7 @@ $tH@T\\tI\n .?AV?$CEntitySpawnerBase@VCTriggerMultiple@@@@\n .?AV?$CEntitySpawnerBase@VCVoteController@@@@\n .?AV?$CEntitySpawnerBase@VCWorld@@@@\n+.?AV?$CEntityWithSubclassSpawner@VCBaseEntity@@@@\n .?AV?$CErrorContextValue@PEBVKeyValues3@@@@\n .?AV?$CFixedSizeCircularBuffer@UCDebugSnapshotFrame_t@@$0HNA@H@@\n .?AV?$CFixedSizeCircularBuffer@UShootPositionHistoryEntry_t@CCSPlayer_WeaponServices@@$0CA@H@@\n@@ -8412,6 +8419,7 @@ $tH@T\\tI\n ?BooleanValue@Value@v8@@QEBA_NPEAVIsolate@2@@Z\n ?Call@Function@v8@@QEAA?AV?$MaybeLocal@VValue@v8@@@2@V?$Local@VContext@v8@@@2@V?$Local@VValue@v8@@@2@HQEAV52@@Z\n ?CompileModule@ScriptCompiler@v8@@SA?AV?$MaybeLocal@VModule@v8@@@2@PEAVIsolate@2@PEAVSource@12@W4CompileOptions@12@W4NoCacheReason@12@@Z\n+?CreateDataProperty@Object@v8@@QEAA?AV?$Maybe@_N@2@V?$Local@VContext@v8@@@2@IV?$Local@VValue@v8@@@2@@Z\n ?CreateHandle@HandleScope@v8@@KAPEA_KPEAVIsolate@internal@2@_K@Z\n ?CreateSyntheticModule@Module@v8@@SA?AV?$Local@VModule@v8@@@2@PEAVIsolate@2@V?$Local@VString@v8@@@2@AEBV?$MemorySpan@$$CBV?$Local@VString@v8@@@v8@@@2@P6A?AV?$MaybeLocal@VValue@v8@@@2@V?$Local@VContext@v8@@@2@V32@@Z@Z\n ?CurrentStackTrace@StackTrace@v8@@SA?AV?$Local@VStackTrace@v8@@@2@PEAVIsolate@2@HW4StackTraceOptions@12@@Z\n@@ -8438,6 +8446,7 @@ $tH@T\\tI\n ?GetLineNumber@Message@v8@@QEBA?AV?$Maybe@H@2@V?$Local@VContext@v8@@@2@@Z\n ?GetLocation@StackFrame@v8@@QEBA?AVLocation@2@XZ\n ?GetMicrotaskQueue@Context@v8@@QEAAPEAVMicrotaskQueue@2@XZ\n+?GetOwnPropertyNames@Object@v8@@QEAA?AV?$MaybeLocal@VArray@v8@@@2@V?$Local@VContext@v8@@@2@@Z\n ?GetPromise@Resolver@Promise@v8@@QEAA?AV?$Local@VPromise@v8@@@3@XZ\n ?GetScriptName@StackFrame@v8@@QEBA?AV?$Local@VString@v8@@@2@XZ\n ?GetStackTrace@Exception@v8@@SA?AV?$Local@VStackTrace@v8@@@2@V?$Local@VValue@v8@@@2@@Z\n@@ -8473,7 +8482,6 @@ $tH@T\\tI\n ?NewInstance@Function@v8@@QEBA?AV?$MaybeLocal@VObject@v8@@@2@V?$Local@VContext@v8@@@2@HQEAV?$Local@VValue@v8@@@2@@Z\n ?PerformMicrotaskCheckpoint@Isolate@v8@@QEAAXXZ\n ?Resolve@Resolver@Promise@v8@@QEAA?AV?$Maybe@_N@3@V?$Local@VContext@v8@@@3@V?$Local@VValue@v8@@@3@@Z\n-?Set@Object@v8@@QEAA?AV?$Maybe@_N@2@V?$Local@VContext@v8@@@2@IV?$Local@VValue@v8@@@2@@Z\n ?Set@Object@v8@@QEAA?AV?$Maybe@_N@2@V?$Local@VContext@v8@@@2@V?$Local@VValue@v8@@@2@1@Z\n ?Set@Template@v8@@QEAAXV?$Local@VName@v8@@@2@V?$Local@VData@v8@@@2@W4PropertyAttribute@2@@Z\n ?SetAlignedPointerInInternalField@Object@v8@@QEAAXHPEAX@Z\n@@ -14444,6 +14452,7 @@ FindAllByTarget\n FindAllInSphere\n FindAllMatchingSnapshots\n FindBestGoal: Calling GetNearestNavAreaAndGravityOrientedGoalPos defaultGravity[%s]\n+FindByClass\n FindByClassname\n FindByClassnameNearest\n FindByClassnameWithin\n@@ -14492,6 +14501,7 @@ FireEntityIOInputVec\n FireEvent: event '%s' not registered.\\n\n FireGameEvent\n FireGameEventLocal\n+FireInput\n Fired after spawning an instance of this template.\n Fired when a round starts.\n Fired when a round winner is determined.\n@@ -14939,6 +14949,7 @@ GetConst R%d <- C%d (%s)\n GetContext\n GetContext( name ): looks up a context and returns it if available. May return string, float, or null (if the context isn't found).\n GetContextForScript\n+GetControlledBotPawn\n GetController\n GetController() : Returns the controller for this pawn\n GetConvarBoolean\n@@ -15640,6 +15651,7 @@ IsClient\n IsClientLoaded\n IsClientLoading\n IsConnected\n+IsControllingBot\n IsCrouched\n IsCrouching\n IsDedicatedServer\n@@ -16149,16 +16161,25 @@ Metal.Medium\n Metal.SawbladeStick\n Metal.Small\n Method %s.%s cannot be used on official servers.\n+Method %s.%s invoked by a script with no parent entity.\n Method %s.%s invoked in incorrect scope.\n+Method %s.%s invoked on an invalid entity.\n Method %s.%s invoked with bad '%s' property for argument %d (%s). Got %s.\n+Method %s.%s invoked with bad 'angles' for entities[%d]. Got %s.\n+Method %s.%s invoked with bad 'origin' for entities[%d]. Got %s.\n+Method %s.%s invoked with bad classname for entities[%d]. Got %s.\n+Method %s.%s invoked with bad entities[%d]. Got %s.\n Method %s.%s invoked with bad value for argument %d (%s). Got %s.\n Method %s.%s invoked with bad value for argument 0 (reason). Got %s.\n Method %s.%s invoked with bad value for argument 0 (team). Got %s.\n+Method %s.%s invoked with bad value for key \"%s\" for entities[%d]. Got %s.\n Method %s.%s invoked with incompatible value for convar \"%s\". %s cannot be converted to %s.\n Method %s.%s invoked with incorrect 'this' value.\n Method %s.%s invoked with missing '%s' property for argument %d (%s).\n Method %s.%s invoked with name of incompatible convar \"%s\". Use %s.%s.\n Method %s.%s invoked with name of unknown convar \"%s\".\n+Method %s.%s invoked with output \"%s\", which %s does not have.\n+Method %s.%s invoked with reserved key \"%s\" for entities[%d].\n Method %s.%s invoked with unrecognized 'this' value.\n Method %s.%s requires %d argument%s but got %d. %s\n Method CSPlayerPawn.GetCustomCamera failed to spawn a custom_player_camera.\n@@ -16188,8 +16209,10 @@ Method Instance.EntFireAtTarget invoked with bad value for argument 0 (target).\n Method Instance.EntFireAtTarget invoked with bad value for argument 1 (input). Got %s.\n Method Instance.EntFireAtTarget invoked with bad value for argument 2 (inputData). Got %s.\n Method Instance.Precache failed.\n+Method Instance.Precache invoked with bad entity \"%s\". It is not an entity classname or subclass.\n Method Instance.Precache invoked with bad resource \"%s\".\n Method Instance.Precache invoked with bad resource \"%s\". There is no compiled \"%s_c\".\n+Method Instance.Precache invoked with no resources or entities.\n Method Instance.SpawnGrenadeProjectile requires at least thrower or position be specified.\n Microsoft CSP Name\n Microsoft Commercial Code Signing\n@@ -16644,6 +16667,7 @@ OnBombExplode\n OnBombPlant\n OnBombPlantAbort\n OnBombPlantStart\n+OnBotControl\n OnBufferNotStarved(), resolved starve queue\\n\n OnBulletImpact\n OnCase%02d\n@@ -16745,7 +16769,6 @@ Out:\\n%s\n Outflow List\n Output\n Output connection not found\\n\n-Output not found: \"%s\"\\n\n OutputConnection:\n OutputConnection:%d\n Outro Playback Rate\n@@ -21526,6 +21549,7 @@ ca dn length mismatch\n ca dn too long\n caIssuers\n caRepository\n+cable_*\n cableclass\n callback\n called a function that was disabled at compile-time\n@@ -21835,6 +21859,7 @@ conflicting engine id\n connect error\n connection id is different\n connection type not set\n+connectionId\n cons: \n cont [ %d ]\n contains\n@@ -21951,7 +21976,7 @@ cs_rush\n cs_script/%s\n cs_shelter\n cs_siege\n-cs_spawn_group_resources\n+cs_spawn_group_precache\n cs_thunder\n cs_usercmd.proto\n cs_win_panel_match\n@@ -22715,6 +22740,7 @@ entindex_ability\n entindex_attacker\n entindex_inflictor\n entindex_killed\n+entities\n entity %s at %s has physics attachment to more than one entity with the name %s!!!\\n\n entity context menu\n entityArray\n@@ -23124,6 +23150,7 @@ fullname\n fullpos\n func(%lu)\n func_\n+func_*\n func_areaportal\n func_breakable with invalid propdata %d.\\n\n func_breakable_surf\n@@ -23830,6 +23857,7 @@ info_node_hint\n info_player_logo\n info_spawngroup_load\n info_spawngroup_load_unload w/o specifying map name, removing entity!!!\\n\n+info_target*\n inherit_all_joints\n inherit_owner\n inherit_owner_index\n@@ -24283,6 +24311,7 @@ lifestage_adult\n lifestage_chick\n lifestage_egg\n light\n+light_*\n light_capsule\n light_dynamic at [%d %d %d] has invalid exponent value (%d must be between %d and %d).\\n\n light_style_output_event0\n@@ -25767,6 +25796,7 @@ producedAt\n profile level %g\n projectile\n prop.breakable.01\n+prop_*\n prop_car_alarm\n prop_car_glass\n prop_contexts\n@@ -26646,6 +26676,7 @@ smokegrenade_detonate\n smokegrenade_expired\n smokegrenade_projectile.ventr\n smokegrenade_projectile_server\n+snd_*\n snd_mouth\n sniper_warning\n sniperk\n@@ -27453,6 +27484,7 @@ transition volume passed\n transition volume screened out\n transitioning\n tried to use unsupported cipher\n+trigger_*\n trigger_changelevel to %s doesn't have a landmark\n trigger_changelevel to map %s has a landmark embedded in solid!\\nThis will break level transitions!\\n\n trigger_survival_playarea\n@@ -27865,6 +27897,7 @@ weapon pistol rifle survivor common_male\n weapon.C4.Impact\n weapon_\n weapon_%s\n+weapon_*\n weapon_action_speedscale\n weapon_ak47.ventr\n weapon_ak47_server"
        },
        {
          "filename": "game/csgo/cfg/gamemode_retakecasual.cfg",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -46,7 +46,7 @@ mp_defuser_allocation\t\t\t\t\t\t\t\t2\t\t\t// 0=none, 1=random, 2=everyone\n mp_force_pick_time\t\t\t\t\t\t\t\t\t15\n mp_forcecamera\t\t\t\t\t\t\t\t\t\t1\t\t\t// Set to 1 for team only spectating.\n mp_free_armor\t\t\t\t\t\t\t\t\t\t0\t\t\t\n-mp_freezetime\t\t\t\t\t\t\t\t\t\t7\n+mp_freezetime\t\t\t\t\t\t\t\t\t\t5\n mp_friendlyfire\t\t\t\t\t\t\t\t\t\t1\n mp_win_panel_display_time\t\t\t\t\t\t\t3\n mp_respawn_immunitytime\t\t\t\t\t\t\t\t0\n@@ -100,7 +100,7 @@ mp_default_team_winner_no_objective\t\t\t\t\t-1\t\t// 2 == CTs, 3 == Ts\n //occlusion_test_async\t\t\t\t\t\t\t\t1\n \n spec_replay_enable\t\t\t\t\t\t\t\t0\n-mp_round_restart_delay\t\t\t\t\t\t\t\t5\n+mp_round_restart_delay\t\t\t\t\t\t\t\t3\n \n sv_gameinstructor_enable\t\t\t\t\t\t\t0\n "
        },
        {
          "filename": "game/csgo/pak01_dir.txt",
          "status": "modified",
          "additions": 43,
          "deletions": 42,
          "changes": 85,
          "patch": "@@ -7349,25 +7349,25 @@ maps/cs_italy_camera_nodes.kv3 CRC:00b7c65df1 size:14866\n maps/cs_office_camera_nodes.kv3 CRC:0083120466 size:19253\n maps/de_ancient_camera_nodes.kv3 CRC:00207e40bf size:16857\n maps/de_ancient_night_camera_nodes.kv3 CRC:00207e40bf size:16857\n-maps/de_ancient_night_retake.txt CRC:001f3ad4a1 size:4515\n-maps/de_ancient_retake.txt CRC:0054b1519f size:4516\n+maps/de_ancient_night_retake.txt CRC:00d43cb56b size:4550\n+maps/de_ancient_retake.txt CRC:002fcb7c50 size:4551\n maps/de_anubis_camera_nodes.kv3 CRC:001b8f43b2 size:17950\n-maps/de_anubis_retake.txt CRC:0032c02075 size:4360\n-maps/de_cache_retake.txt CRC:002d343b7e size:4127\n+maps/de_anubis_retake.txt CRC:00a6ad38b6 size:4393\n+maps/de_cache_retake.txt CRC:0028012769 size:4175\n maps/de_dust2_camera_nodes.kv3 CRC:0018f21a4c size:10453\n-maps/de_dust2_retake.txt CRC:00c7737a39 size:4511\n+maps/de_dust2_retake.txt CRC:00efb48004 size:4549\n maps/de_inferno_camera_nodes.kv3 CRC:007ce32bbf size:22256\n-maps/de_inferno_retake.txt CRC:00b78c5ff2 size:4053\n+maps/de_inferno_retake.txt CRC:00bcf57f3e size:4101\n maps/de_mirage_camera_nodes.kv3 CRC:0072eadb25 size:25623\n-maps/de_mirage_retake.txt CRC:00ca33c5f4 size:4767\n+maps/de_mirage_retake.txt CRC:000d5f64ab size:4803\n maps/de_nuke_camera_nodes.kv3 CRC:00fc18e073 size:28247\n-maps/de_nuke_retake.txt CRC:0023720f4f size:4306\n+maps/de_nuke_retake.txt CRC:003bcb146f size:4347\n maps/de_overpass_camera_nodes.kv3 CRC:008163f47d size:20148\n-maps/de_overpass_retake.txt CRC:0091d38bbc size:4199\n+maps/de_overpass_retake.txt CRC:007f922b66 size:4242\n maps/de_train_camera_nodes.kv3 CRC:00c2db3b8b size:26613\n-maps/de_train_retake.txt CRC:0002fee1a2 size:4826\n+maps/de_train_retake.txt CRC:00a2229546 size:4870\n maps/de_vertigo_camera_nodes.kv3 CRC:003995c8c5 size:16095\n-maps/de_vertigo_retake.txt CRC:0041f38891 size:4630\n+maps/de_vertigo_retake.txt CRC:00a22f3061 size:4675\n maps/scripts/rush_001.vjs_c CRC:00424dd750 size:58191\n maps/workshop_compatibility_versions.txt CRC:0041137ecb size:1787\n materials/anubis/anubis_water_canal.vmat_c CRC:0049c034fb size:5916\n@@ -56166,6 +56166,7 @@ panorama/images/econ/default_generated/weapon_xm1014_xm1014_mockingbird_heavy_pn\n panorama/images/econ/default_generated/weapon_xm1014_xm1014_mockingbird_light_png.vtex_c CRC:0021fe2489 size:114756\n panorama/images/econ/default_generated/weapon_xm1014_xm1014_mockingbird_medium_png.vtex_c CRC:006aeb11d0 size:115955\n panorama/images/econ/keychains/aus2025/kc_aus2025_png.vtex_c CRC:001fab74ca size:292777\n+panorama/images/econ/keychains/bud2025/kc_bud2025_png.vtex_c CRC:00197a4f90 size:301049\n panorama/images/econ/keychains/cologne2026/kc_cologne2026_png.vtex_c CRC:00771d0c97 size:283199\n panorama/images/econ/keychains/drboom/kc_db_200iq_png.vtex_c CRC:00966a7762 size:132857\n panorama/images/econ/keychains/drboom/kc_db_8ball_png.vtex_c CRC:005518e549 size:101985\n@@ -83954,7 +83955,7 @@ panorama/images/tournaments/backgrounds/pickem_bg_24_png.vtex_c CRC:0089bbd83a s\n panorama/images/tournaments/backgrounds/pickem_bg_25_png.vtex_c CRC:00831e3278 size:2302708\n panorama/images/tournaments/backgrounds/pickem_bg_26_png.vtex_c CRC:0014c19b4a size:930020\n panorama/images/tournaments/backgrounds/pickem_mainmenu_bg_24_psd.vtex_c CRC:00014934a6 size:511969\n-panorama/images/tournaments/backgrounds/pickem_mainmenu_bg_25_psd.vtex_c CRC:008bf6079b size:264288\n+panorama/images/tournaments/backgrounds/pickem_mainmenu_bg_25_psd.vtex_c CRC:00fb16057c size:329828\n panorama/images/tournaments/backgrounds/pickem_mainmenu_bg_26_psd.vtex_c CRC:0092b54a35 size:191644\n panorama/images/tournaments/backgrounds/pickem_mainmenu_promo_22_png.vtex_c CRC:00fe819c7a size:188265\n panorama/images/tournaments/backgrounds/pickem_mainmenu_promo_23_png.vtex_c CRC:00d9395207 size:66395\n@@ -84916,7 +84917,7 @@ panorama/styles/radialmenubase.vcss_c CRC:00b3952c3a size:19623\n panorama/styles/radialradio.vcss_c CRC:0080b13d3f size:17091\n panorama/styles/rankup_redemption_store.vcss_c CRC:00613b3861 size:16582\n panorama/styles/rating_emblem.vcss_c CRC:0098edcdc2 size:10797\n-panorama/styles/retakeloadout.vcss_c CRC:00510fb26e size:23640\n+panorama/styles/retakeloadout.vcss_c CRC:003bf4073c size:23110\n panorama/styles/scoreboard.vcss_c CRC:00b5e5732d size:50893\n panorama/styles/segmented_progress_bar.vcss_c CRC:00dbf42798 size:7033\n panorama/styles/settings/settings.vcss_c CRC:0077fe3798 size:17843\n@@ -87979,36 +87980,36 @@ pulse/csgo_devonly/de_vertigo_script.vpulse_c CRC:00af116e39 size:4860\n radial_quickinventory.txt CRC:005a0c1bf5 size:1080\n rebuy.txt CRC:008332da3a size:1688\n resource/clientscheme.res CRC:00eb299496 size:14136\n-resource/csgo_brazilian.txt CRC:0022c7c9bd size:5024748\n-resource/csgo_bulgarian.txt CRC:00e6aa803c size:7758759\n-resource/csgo_czech.txt CRC:00aa2da1f8 size:5097152\n-resource/csgo_danish.txt CRC:001655e064 size:5003477\n-resource/csgo_dutch.txt CRC:007e635df4 size:5049457\n+resource/csgo_brazilian.txt CRC:0015b08cfa size:5025205\n+resource/csgo_bulgarian.txt CRC:00ad431afd size:7759343\n+resource/csgo_czech.txt CRC:005482a707 size:5097565\n+resource/csgo_danish.txt CRC:00bb321d04 size:5004038\n+resource/csgo_dutch.txt CRC:0045192cf1 size:5049873\n resource/csgo_english.txt CRC:00e83600df size:4879039\n-resource/csgo_finnish.txt CRC:0040d7f29a size:4960257\n-resource/csgo_french.txt CRC:00cf90f727 size:5254356\n-resource/csgo_german.txt CRC:00768f902a size:5164887\n-resource/csgo_greek.txt CRC:00d09261eb size:7151367\n-resource/csgo_hungarian.txt CRC:0009ea7f21 size:5078539\n-resource/csgo_indonesian.txt CRC:00d09ed436 size:4729034\n-resource/csgo_italian.txt CRC:00f5d5f436 size:5178073\n-resource/csgo_japanese.txt CRC:008a06f43d size:5332955\n-resource/csgo_koreana.txt CRC:0068a1e99c size:5096308\n-resource/csgo_latam.txt CRC:00436dd96a size:5188121\n-resource/csgo_norwegian.txt CRC:00f79e57f3 size:4924516\n-resource/csgo_polish.txt CRC:003eee27c8 size:5321400\n-resource/csgo_portuguese.txt CRC:00ed24ede6 size:5059879\n-resource/csgo_romanian.txt CRC:00b3958fb9 size:5270915\n-resource/csgo_russian.txt CRC:00ffa91341 size:6563734\n-resource/csgo_schinese.txt CRC:000d6871a9 size:4931452\n+resource/csgo_finnish.txt CRC:00a79f8c2b size:4960818\n+resource/csgo_french.txt CRC:002433e025 size:5254990\n+resource/csgo_german.txt CRC:008c76453f size:5165453\n+resource/csgo_greek.txt CRC:00a68efa30 size:7151367\n+resource/csgo_hungarian.txt CRC:000a1961a8 size:5078957\n+resource/csgo_indonesian.txt CRC:0023f7fd61 size:4729593\n+resource/csgo_italian.txt CRC:0019309189 size:5178719\n+resource/csgo_japanese.txt CRC:007c931b86 size:5333463\n+resource/csgo_koreana.txt CRC:007c56bde5 size:5096798\n+resource/csgo_latam.txt CRC:00430502d0 size:5188734\n+resource/csgo_norwegian.txt CRC:001049104e size:4925063\n+resource/csgo_polish.txt CRC:0048f2bc13 size:5321400\n+resource/csgo_portuguese.txt CRC:00bf8fe57b size:5060318\n+resource/csgo_romanian.txt CRC:00f8a9b880 size:5271518\n+resource/csgo_russian.txt CRC:0089b5889a size:6563734\n+resource/csgo_schinese.txt CRC:007b74ea72 size:4931452\n resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645\n-resource/csgo_spanish.txt CRC:00f5db4811 size:5159573\n-resource/csgo_swedish.txt CRC:00b8b4e017 size:5031803\n-resource/csgo_tchinese.txt CRC:008252f083 size:4627815\n-resource/csgo_thai.txt CRC:00f47187a0 size:8128621\n-resource/csgo_turkish.txt CRC:00ea144dfc size:5165506\n-resource/csgo_ukrainian.txt CRC:00ab17d5bc size:6621012\n-resource/csgo_vietnamese.txt CRC:00985185c2 size:5450532\n+resource/csgo_spanish.txt CRC:00deb972b5 size:5160188\n+resource/csgo_swedish.txt CRC:00b4c12d74 size:5032375\n+resource/csgo_tchinese.txt CRC:00f44e6b58 size:4627815\n+resource/csgo_thai.txt CRC:00826d1c7b size:8128621\n+resource/csgo_turkish.txt CRC:00cabf481a size:5165905\n+resource/csgo_ukrainian.txt CRC:003ac03c61 size:6621798\n+resource/csgo_vietnamese.txt CRC:00ee4d1e19 size:5450532\n resource/game.gameevents CRC:0090de10bc size:9837\n resource/halflife2.vfont CRC:00b064848c size:58000\n resource/mod.gameevents CRC:0035ddf423 size:20770\n@@ -88164,7 +88165,7 @@ scripts/talker/swat_fem.vrr_c CRC:00da568c7a size:22638\n scripts/tools/anim_preview_archetypes.vdata_c CRC:00aefc657a size:6968\n scripts/tools/game_asset_tags.vdata_c CRC:00c8bdb670 size:2787\n scripts/weapons.vdata_c CRC:007f3daee4 size:26903\n-scripts/workshop_cvar_whitelist.txt CRC:009790852f size:18153\n+scripts/workshop_cvar_whitelist.txt CRC:00ed704614 size:18179\n smartprops/bicycle/bicycle_rack.vsmart_c CRC:0097f4a6c4 size:1423\n smartprops/bicycle/bicycle_single.vsmart_c CRC:001f5c91ad size:1628\n smartprops/debris/debris_ceiling_tiles_01.vsmart_c CRC:00c0a90e2e size:2600"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/de_ancient_night_retake.txt",
          "status": "modified",
          "additions": 33,
          "deletions": 32,
          "changes": 65,
          "patch": "@@ -1,6 +1,7 @@\n // Spawn locations and angles.\n // The first three numbers are the X Y Z coordinates of the player location.\n // The last three numbers are the PITCH YAW ROLL parameters of the player camera.\n+// Only YAW is used. PITCH and ROLL must be 0.\n // To easily get these numbers, walk around the map and type \"getpos\" in the console.\n // The console will return the 6 numbers that you need to paste into your entry below.\n \n@@ -13,54 +14,54 @@\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-1759.547363 -691.041321 136.093811 1.220013 95.890266 0.000000\"\t// a main entrance\n-\t\t\t\t\"1\" \"-1720.095337 -1101.785645 41.545643 -6.952028 93.323975 0.000000\"\t// a main bottom stairs\n-\t\t\t\t\"2\" \"-475.383362 -569.678711 101.086891 -1.222149 100.136345 0.000000\"\t// bottom mid\n-\t\t\t\t\"3\" \"-463.581665 -305.030914 120.122978 -3.774165 98.354080 0.000000\"\t// top mid\n-\t\t\t\t\"4\" \"-492.094421 385.699738 224.093811 0.845888 98.354202 0.000000\"\t// top mid CT\n-\t\t\t\t\"5\" \"45.615307 667.132813 138.093811 0.845888 98.354202 0.000000\"\t// near CT spawn\n-\t\t\t\t\"6\" \"201.624390 865.586609 158.259491 6.455836 -154.857803 0.000000\"\t// near CT spawn 2\n-\t\t\t\t\"7\" \"487.844177 905.601135 175.624710 4.343833 -164.845978 0.000000\"\t// near CT spawn 3\n+\t\t\t\t\"0\" \"-1759.547363 -691.041321 136.093811 0.000000 95.890266 0.000000\"\t// a main entrance\n+\t\t\t\t\"1\" \"-1720.095337 -1101.785645 41.545643 0.000000 93.323975 0.000000\"\t// a main bottom stairs\n+\t\t\t\t\"2\" \"-475.383362 -569.678711 101.086891 0.000000 100.136345 0.000000\"\t// bottom mid\n+\t\t\t\t\"3\" \"-463.581665 -305.030914 120.122978 0.000000 98.354080 0.000000\"\t// top mid\n+\t\t\t\t\"4\" \"-492.094421 385.699738 224.093811 0.000000 98.354202 0.000000\"\t// top mid CT\n+\t\t\t\t\"5\" \"45.615307 667.132813 138.093811 0.000000 98.354202 0.000000\"\t// near CT spawn\n+\t\t\t\t\"6\" \"201.624390 865.586609 158.259491 0.000000 -154.857803 0.000000\"\t// near CT spawn 2\n+\t\t\t\t\"7\" \"487.844177 905.601135 175.624710 0.000000 -164.845978 0.000000\"\t// near CT spawn 3\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n \n-\t\t\t\t\"0\" \"567.364685 -1890.279297 -105.470490 -6.819995 67.141991 0.000000\"\t// water\n-\t\t\t\t\"1\" \"684.835693 -2066.143555 -88.535599 0.308547 123.051720 0.000000\"\t// water 2\n-\t\t\t\t\"2\" \"-152.142883 -701.610596 220.771301 2.231987 -4.108181 0.000000\"\t// ledge\n-\t\t\t\t\"3\" \"-554.089600 -824.356934 96.093666 -10.955970 15.859979 0.000000\"\t// bottom ledge\n-\t\t\t\t\"4\" \"-642.909546 365.234863 239.093811 9.029978 50.165798 0.000000\"\t// ct house\n-\t\t\t\t\"5\" \"-472.417023 1336.832886 88.635345 -0.782018 -56.217842 0.000000\"\t// ct spawn\n-\t\t\t\t\"6\" \"-980.234436 1086.060669 130.093811 3.970006 -1.415828 0.000000\"\t// ct spawn back\n-\t\t\t\t\"7\" \"-175.877289 1419.091919 86.697815 -4.037995 -92.803886 0.000000\"\t// ct spawn back\n+\t\t\t\t\"0\" \"567.364685 -1890.279297 -105.470490 0.000000 67.141991 0.000000\"\t// water\n+\t\t\t\t\"1\" \"684.835693 -2066.143555 -88.535599 0.000000 123.051720 0.000000\"\t// water 2\n+\t\t\t\t\"2\" \"-152.142883 -701.610596 220.771301 0.000000 -4.108181 0.000000\"\t// ledge\n+\t\t\t\t\"3\" \"-554.089600 -824.356934 96.093666 0.000000 15.859979 0.000000\"\t// bottom ledge\n+\t\t\t\t\"4\" \"-642.909546 365.234863 239.093811 0.000000 50.165798 0.000000\"\t// ct house\n+\t\t\t\t\"5\" \"-472.417023 1336.832886 88.635345 0.000000 -56.217842 0.000000\"\t// ct spawn\n+\t\t\t\t\"6\" \"-980.234436 1086.060669 130.093811 0.000000 -1.415828 0.000000\"\t// ct spawn back\n+\t\t\t\t\"7\" \"-175.877289 1419.091919 86.697815 0.000000 -92.803886 0.000000\"\t// ct spawn back\n \t\t\t}\n \t\t}\n \t\t\"T\"\n \t\t{\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-1709.706909 1135.055542 116.093811 2.772409 -66.596115 0.000000\"\n-\t\t\t\t\"1\" \"-1868.109375 985.488525 116.093811 -1.825591 -105.316277 0.000000\"\n-\t\t\t\t\"2\" \"-1725.932861 699.505554 116.093811 -0.967592 -142.584152 0.000000\"\n-\t\t\t\t\"3\" \"-1585.692139 712.646423 116.093811 -1.495591 -49.128235 0.000000\"\n-\t\t\t\t\"4\" \"-1125.890259 728.003296 117.929688 -2.595578 -125.336327 0.000000\"\n-\t\t\t\t\"5\" \"-1126.972168 863.269714 121.537674 1.408422 73.073593 0.000000\"\n-\t\t\t\t\"6\" \"-1680.200439 816.424927 116.093811 1.386419 -131.738251 0.000000\"\n-\t\t\t\t\"7\" \"-2096.523438 834.952454 117.893181 -0.879576 -83.448250 0.000000\"\n+\t\t\t\t\"0\" \"-1709.706909 1135.055542 116.093811 0.000000 -66.596115 0.000000\"\n+\t\t\t\t\"1\" \"-1868.109375 985.488525 116.093811 0.000000 -105.316277 0.000000\"\n+\t\t\t\t\"2\" \"-1725.932861 699.505554 116.093811 0.000000 -142.584152 0.000000\"\n+\t\t\t\t\"3\" \"-1585.692139 712.646423 116.093811 0.000000 -49.128235 0.000000\"\n+\t\t\t\t\"4\" \"-1125.890259 728.003296 117.929688 0.000000 -125.336327 0.000000\"\n+\t\t\t\t\"5\" \"-1126.972168 863.269714 121.537674 0.000000 73.073593 0.000000\"\n+\t\t\t\t\"6\" \"-1680.200439 816.424927 116.093811 0.000000 -131.738251 0.000000\"\n+\t\t\t\t\"7\" \"-2096.523438 834.952454 117.893181 0.000000 -83.448250 0.000000\"\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"720.925110 312.794495 188.048004 4.334420 101.417526 0.000000\"\n-\t\t\t\t\"1\" \"1268.008057 308.640961 187.482849 2.970432 129.599426 0.000000\"\n-\t\t\t\t\"2\" \"900.354004 294.832367 189.451782 4.070419 -30.882408 0.000000\"\n-\t\t\t\t\"3\" \"1057.938110 -7.488391 197.093811 8.646417 -56.776390 0.000000\"\n-\t\t\t\t\"4\" \"686.529846 -237.705872 202.652267 1.056419 44.225487 0.000000\"\n-\t\t\t\t\"5\" \"1045.335693 101.515129 197.093811 6.028458 -50.286575 0.000000\"\n-\t\t\t\t\"6\" \"815.011841 245.587067 195.093811 5.280452 155.999786 0.000000\"\n-\t\t\t\t\"7\" \"1269.546631 390.912201 187.565704 2.882415 105.012016 0.000000\"\n+\t\t\t\t\"0\" \"720.925110 312.794495 188.048004 0.000000 101.417526 0.000000\"\n+\t\t\t\t\"1\" \"1268.008057 308.640961 187.482849 0.000000 129.599426 0.000000\"\n+\t\t\t\t\"2\" \"900.354004 294.832367 189.451782 0.000000 -30.882408 0.000000\"\n+\t\t\t\t\"3\" \"1057.938110 -7.488391 197.093811 0.000000 -56.776390 0.000000\"\n+\t\t\t\t\"4\" \"686.529846 -237.705872 202.652267 0.000000 44.225487 0.000000\"\n+\t\t\t\t\"5\" \"1045.335693 101.515129 197.093811 0.000000 -50.286575 0.000000\"\n+\t\t\t\t\"6\" \"815.011841 245.587067 195.093811 0.000000 155.999786 0.000000\"\n+\t\t\t\t\"7\" \"1269.546631 390.912201 187.565704 0.000000 105.012016 0.000000\"\n \t\t\t}\n \t\t}\n \t}"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/de_ancient_retake.txt",
          "status": "modified",
          "additions": 33,
          "deletions": 32,
          "changes": 65,
          "patch": "@@ -1,6 +1,7 @@\n // Spawn locations and angles.\n // The first three numbers are the X Y Z coordinates of the player location.\n // The last three numbers are the PITCH YAW ROLL parameters of the player camera.\n+// Only YAW is used. PITCH and ROLL must be 0.\n // To easily get these numbers, walk around the map and type \"getpos\" in the console.\n // The console will return the 6 numbers that you need to paste into your entry below.\n \n@@ -13,54 +14,54 @@\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-1759.547363 -691.041321 136.093811 1.220013 95.890266 0.000000\"\t// a main entrance\n-\t\t\t\t\"1\" \"-1720.095337 -1101.785645 41.545643 -6.952028 93.323975 0.000000\"\t// a main bottom stairs\n-\t\t\t\t\"2\" \"-475.383362 -569.678711 101.086891 -1.222149 100.136345 0.000000\"\t// bottom mid\n-\t\t\t\t\"3\" \"-463.581665 -305.030914 120.122978 -3.774165 98.354080 0.000000\"\t// top mid\n-\t\t\t\t\"4\" \"-492.094421 385.699738 224.093811 0.845888 98.354202 0.000000\"\t// top mid CT\n-\t\t\t\t\"5\" \"45.615307 667.132813 138.093811 0.845888 98.354202 0.000000\"\t// near CT spawn\n-\t\t\t\t\"6\" \"201.624390 865.586609 158.259491 6.455836 -154.857803 0.000000\"\t// near CT spawn 2\n-\t\t\t\t\"7\" \"487.844177 905.601135 175.624710 4.343833 -164.845978 0.000000\"\t// near CT spawn 3\n+\t\t\t\t\"0\" \"-1759.547363 -691.041321 136.093811 0.000000 95.890266 0.000000\"\t// a main entrance\n+\t\t\t\t\"1\" \"-1720.095337 -1101.785645 41.545643 0.000000 93.323975 0.000000\"\t// a main bottom stairs\n+\t\t\t\t\"2\" \"-475.383362 -569.678711 101.086891 0.000000 100.136345 0.000000\"\t// bottom mid\n+\t\t\t\t\"3\" \"-463.581665 -305.030914 120.122978 0.000000 98.354080 0.000000\"\t// top mid\n+\t\t\t\t\"4\" \"-492.094421 385.699738 224.093811 0.000000 98.354202 0.000000\"\t// top mid CT\n+\t\t\t\t\"5\" \"45.615307 667.132813 138.093811 0.000000 98.354202 0.000000\"\t// near CT spawn\n+\t\t\t\t\"6\" \"201.624390 865.586609 158.259491 0.000000 -154.857803 0.000000\"\t// near CT spawn 2\n+\t\t\t\t\"7\" \"487.844177 905.601135 175.624710 0.000000 -164.845978 0.000000\"\t// near CT spawn 3\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n \n-\t\t\t\t\"0\" \"567.364685 -1890.279297 -105.470490 -6.819995 67.141991 0.000000\"\t// water\n-\t\t\t\t\"1\" \"684.835693 -2066.143555 -88.535599 0.308547 123.051720 0.000000\"\t// water 2\n-\t\t\t\t\"2\" \"-152.142883 -701.610596 220.771301 2.231987 -4.108181 0.000000\"\t// ledge\n-\t\t\t\t\"3\" \"-554.089600 -824.356934 96.093666 -10.955970 15.859979 0.000000\"\t// bottom ledge\n-\t\t\t\t\"4\" \"-642.909546 365.234863 239.093811 9.029978 50.165798 0.000000\"\t// ct house\n-\t\t\t\t\"5\" \"-472.417023 1336.832886 88.635345 -0.782018 -56.217842 0.000000\"\t// ct spawn\n-\t\t\t\t\"6\" \"-980.234436 1086.060669 130.093811 3.970006 -1.415828 0.000000\"\t// ct spawn back\n-\t\t\t\t\"7\" \"-175.877289 1419.091919 86.697815 -4.037995 -92.803886 0.000000\"\t// ct spawn back\n+\t\t\t\t\"0\" \"567.364685 -1890.279297 -105.470490 0.000000 67.141991 0.000000\"\t// water\n+\t\t\t\t\"1\" \"684.835693 -2066.143555 -88.535599 0.000000 123.051720 0.000000\"\t// water 2\n+\t\t\t\t\"2\" \"-152.142883 -701.610596 220.771301 0.000000 -4.108181 0.000000\"\t// ledge\n+\t\t\t\t\"3\" \"-554.089600 -824.356934 96.093666 0.000000 15.859979 0.000000\"\t// bottom ledge\n+\t\t\t\t\"4\" \"-642.909546 365.234863 239.093811 0.000000 50.165798 0.000000\"\t// ct house\n+\t\t\t\t\"5\" \"-472.417023 1336.832886 88.635345 0.000000 -56.217842 0.000000\"\t// ct spawn\n+\t\t\t\t\"6\" \"-980.234436 1086.060669 130.093811 0.000000 -1.415828 0.000000\"\t// ct spawn back\n+\t\t\t\t\"7\" \"-175.877289 1419.091919 86.697815 0.000000 -92.803886 0.000000\"\t// ct spawn back\n \t\t\t}\n \t\t}\n \t\t\"T\"\n \t\t{\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-1709.706909 1135.055542 116.093811 2.772409 -66.596115 0.000000\"\n-\t\t\t\t\"1\" \"-1868.109375 985.488525 116.093811 -1.825591 -105.316277 0.000000\"\n-\t\t\t\t\"2\" \"-1725.932861 699.505554 116.093811 -0.967592 -142.584152 0.000000\"\n-\t\t\t\t\"3\" \"-1585.692139 712.646423 116.093811 -1.495591 -49.128235 0.000000\"\n-\t\t\t\t\"4\" \"-1125.890259 728.003296 117.929688 -2.595578 -125.336327 0.000000\"\n-\t\t\t\t\"5\" \"-1126.972168 863.269714 121.537674 1.408422 73.073593 0.000000\"\n-\t\t\t\t\"6\" \"-1680.200439 816.424927 116.093811 1.386419 -131.738251 0.000000\"\n-\t\t\t\t\"7\" \"-2096.523438 834.952454 117.893181 -0.879576 -83.448250 0.000000\"\n+\t\t\t\t\"0\" \"-1709.706909 1135.055542 116.093811 0.000000 -66.596115 0.000000\"\n+\t\t\t\t\"1\" \"-1868.109375 985.488525 116.093811 0.000000 -105.316277 0.000000\"\n+\t\t\t\t\"2\" \"-1725.932861 699.505554 116.093811 0.000000 -142.584152 0.000000\"\n+\t\t\t\t\"3\" \"-1585.692139 712.646423 116.093811 0.000000 -49.128235 0.000000\"\n+\t\t\t\t\"4\" \"-1125.890259 728.003296 117.929688 0.000000 -125.336327 0.000000\"\n+\t\t\t\t\"5\" \"-1126.972168 863.269714 121.537674 0.000000 73.073593 0.000000\"\n+\t\t\t\t\"6\" \"-1680.200439 816.424927 116.093811 0.000000 -131.738251 0.000000\"\n+\t\t\t\t\"7\" \"-2096.523438 834.952454 117.893181 0.000000 -83.448250 0.000000\"\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"720.925110 312.794495 188.048004 4.334420 101.417526 0.000000\"\n-\t\t\t\t\"1\" \"1268.008057 308.640961 187.482849 2.970432 129.599426 0.000000\"\n-\t\t\t\t\"2\" \"900.354004 294.832367 189.451782 4.070419 -30.882408 0.000000\"\n-\t\t\t\t\"3\" \"1057.938110 -7.488391 197.093811 8.646417 -56.776390 0.000000\"\n-\t\t\t\t\"4\" \"686.529846 -237.705872 202.652267 1.056419 44.225487 0.000000\"\n-\t\t\t\t\"5\" \"1045.335693 101.515129 197.093811 6.028458 -50.286575 0.000000\"\n-\t\t\t\t\"6\" \"815.011841 245.587067 195.093811 5.280452 155.999786 0.000000\"\n-\t\t\t\t\"7\" \"1269.546631 390.912201 187.565704 2.882415 105.012016 0.000000\"\n+\t\t\t\t\"0\" \"720.925110 312.794495 188.048004 0.000000 101.417526 0.000000\"\n+\t\t\t\t\"1\" \"1268.008057 308.640961 187.482849 0.000000 129.599426 0.000000\"\n+\t\t\t\t\"2\" \"900.354004 294.832367 189.451782 0.000000 -30.882408 0.000000\"\n+\t\t\t\t\"3\" \"1057.938110 -7.488391 197.093811 0.000000 -56.776390 0.000000\"\n+\t\t\t\t\"4\" \"686.529846 -237.705872 202.652267 0.000000 44.225487 0.000000\"\n+\t\t\t\t\"5\" \"1045.335693 101.515129 197.093811 0.000000 -50.286575 0.000000\"\n+\t\t\t\t\"6\" \"815.011841 245.587067 195.093811 0.000000 155.999786 0.000000\"\n+\t\t\t\t\"7\" \"1269.546631 390.912201 187.565704 0.000000 105.012016 0.000000\"\n \t\t\t}\n \t\t}\n \t}"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/de_anubis_retake.txt",
          "status": "modified",
          "additions": 28,
          "deletions": 27,
          "changes": 55,
          "patch": "@@ -1,6 +1,7 @@\n // Spawn locations and angles.\n // The first three numbers are the X Y Z coordinates of the player location.\n // The last three numbers are the PITCH YAW ROLL parameters of the player camera.\n+// Only YAW is used. PITCH and ROLL must be 0.\n // To easily get these numbers, walk around the map and type \"getpos\" in the console.\n // The console will return the 6 numbers that you need to paste into your entry below.\n \n@@ -13,48 +14,48 @@\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-682.722290 2064.249023 80.056595 2.442140 18.118698 0.000000\" \t\t// ct spawn\n-\t\t\t\t\"1\" \"-313.839661 2634.288818 -30.968750 4.268129 -8.215336 0.000000\" \t\t// ct spawn water\n-\t\t\t\t\"2\" \"-897.222107 1130.881348 99.031250 -1.715892 0.694614 0.000000\" \t\t// wood\n-\t\t\t\t\"3\" \"-147.081421 -0.954895 64.262917 0.572109 61.304386 -0.000000\"\t\t\t// mid bridge\n-\t\t\t\t\"4\" \"922.227600 -451.963257 32.031250 5.654140 105.656723 -0.000000\" \t\t// t stairs\n-\t\t\t\t\"5\" \"126.654060 218.923645 -124.833694 -1.891827 -0.608996 0.000000\" \t\t// under bridge, water\n-\t\t\t\t\"6\" \"-132.171387 249.622650 64.034569 0.770128 42.400875 0.000000\"\t\t\t// bridge window\n+\t\t\t\t\"0\" \"-682.722290 2064.249023 80.056595 0.000000 18.118698 0.000000\" \t\t// ct spawn\n+\t\t\t\t\"1\" \"-313.839661 2634.288818 -30.968750 0.000000 -8.215336 0.000000\" \t\t// ct spawn water\n+\t\t\t\t\"2\" \"-897.222107 1130.881348 99.031250 0.000000 0.694614 0.000000\" \t\t// wood\n+\t\t\t\t\"3\" \"-147.081421 -0.954895 64.262917 0.000000 61.304386 0.000000\"\t\t\t// mid bridge\n+\t\t\t\t\"4\" \"922.227600 -451.963257 32.031250 0.000000 105.656723 0.000000\" \t\t// t stairs\n+\t\t\t\t\"5\" \"126.654060 218.923645 -124.833694 0.000000 -0.608996 0.000000\" \t\t// under bridge, water\n+\t\t\t\t\"6\" \"-132.171387 249.622650 64.034569 0.000000 42.400875 0.000000\"\t\t\t// bridge window\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"1044.943359 650.306091 -124.833618 -0.087786 -128.222382 0.000000\"\t\t// a water\n-\t\t\t\t\"1\" \"219.437271 1020.341431 32.031250 -2.441797 -130.523499 0.000000\"\t\t// ct mid\n-\t\t\t\t\"2\" \"-81.979370 786.733704 64.266541 0.066199 -91.121056 0.000000\"\t\t\t// mid\n-\t\t\t\t\"3\" \"-282.693237 -288.023132 64.264076 -3.123806 -149.661575 0.000000\"\t\t// mid to b\n-\t\t\t\t\"4\" \"-338.627075 2631.813965 -30.968750 -3.233819 -141.608551 0.000000\"\t\t// ct spawn water\n-\t\t\t\t\"5\" \"588.024536 1301.065063 -22.218842 -3.123810 -179.579849 0.000000\"\t\t// camera\n-\t\t\t\t\"6\" \"772.013794 1334.301270 -23.968750 -1.693856 -173.002014 0.000000\"\t\t// camera towards a\n-\t\t\t\t\"7\" \"403.674835 2057.003174 -55.968750 2.112144 110.129517 0.000000\"\t\t// heaven towards ct\n+\t\t\t\t\"0\" \"1044.943359 650.306091 -124.833618 0.000000 -128.222382 0.000000\"\t\t// a water\n+\t\t\t\t\"1\" \"219.437271 1020.341431 32.031250 0.000000 -130.523499 0.000000\"\t\t// ct mid\n+\t\t\t\t\"2\" \"-81.979370 786.733704 64.266541 0.000000 -91.121056 0.000000\"\t\t\t// mid\n+\t\t\t\t\"3\" \"-282.693237 -288.023132 64.264076 0.000000 -149.661575 0.000000\"\t\t// mid to b\n+\t\t\t\t\"4\" \"-338.627075 2631.813965 -30.968750 0.000000 -141.608551 0.000000\"\t\t// ct spawn water\n+\t\t\t\t\"5\" \"588.024536 1301.065063 -22.218842 0.000000 -179.579849 0.000000\"\t\t// camera\n+\t\t\t\t\"6\" \"772.013794 1334.301270 -23.968750 0.000000 -173.002014 0.000000\"\t\t// camera towards a\n+\t\t\t\t\"7\" \"403.674835 2057.003174 -55.968750 0.000000 110.129517 0.000000\"\t\t// heaven towards ct\n \t\t\t}\n \t\t}\n \t\t\"T\"\n \t\t{\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"1682.151123 1552.544800 -87.968750 1.858028 130.619522 0.000000\"\t\t// near a main\n-\t\t\t\t\"1\" \"1713.895142 1910.501465 -19.968750 1.606064 -168.110855 0.000000\"\t\t// water\n-\t\t\t\t\"2\" \"1226.273926 1592.610352 -87.968750 -3.761937 -167.758728 0.000000\"\t\t// tarp\n-\t\t\t\t\"3\" \"1169.168335 2109.280273 -60.274902 -4.729924 171.803253 -0.000000\"\t\t// scaling heaven\n-\t\t\t\t\"4\" \"989.038147 2244.589111 24.031250 9.800014 -130.828140 0.000000\"\t\t// heaven\n-\t\t\t\t\"5\" \"1347.072632 1717.051514 -85.968750 -6.115903 -156.076813 0.000000\"\t\t// near default\n+\t\t\t\t\"0\" \"1682.151123 1552.544800 -87.968750 0.000000 130.619522 0.000000\"\t\t// near a main\n+\t\t\t\t\"1\" \"1713.895142 1910.501465 -19.968750 0.000000 -168.110855 0.000000\"\t\t// water\n+\t\t\t\t\"2\" \"1226.273926 1592.610352 -87.968750 0.000000 -167.758728 0.000000\"\t\t// tarp\n+\t\t\t\t\"3\" \"1169.168335 2109.280273 -60.274902 0.000000 171.803253 0.000000\"\t\t// scaling heaven\n+\t\t\t\t\"4\" \"989.038147 2244.589111 24.031250 0.000000 -130.828140 0.000000\"\t\t// heaven\n+\t\t\t\t\"5\" \"1347.072632 1717.051514 -85.968750 0.000000 -156.076813 0.000000\"\t\t// near default\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-1421.742432 552.547424 64.031250 3.960124 20.403915 0.000000\"\t\t\t// mid-b site\n-\t\t\t\t\"1\" \"-900.317322 319.405914 8.031250 -3.453902 101.737846 0.000000\"\t\t\t// near ebox\n-\t\t\t\t\"2\" \"-607.446533 575.537354 102.031250 1.870086 140.392090 0.000000\"\t\t// cubby\n-\t\t\t\t\"3\" \"-896.453796 874.513794 99.031250 1.364075 102.692116 0.000000\"\t\t\t// near wood\n-\t\t\t\t\"4\" \"-1264.500732 329.340424 56.981785 0.748086 48.198559 0.000000\"\t\t\t// pillar\n-\t\t\t\t\"5\" \"-1548.147949 737.432556 102.031250 7.710052 -39.080292 0.000000\"\t\t// pizza\n+\t\t\t\t\"0\" \"-1421.742432 552.547424 64.031250 0.000000 20.403915 0.000000\"\t\t\t// mid-b site\n+\t\t\t\t\"1\" \"-900.317322 319.405914 8.031250 0.000000 101.737846 0.000000\"\t\t\t// near ebox\n+\t\t\t\t\"2\" \"-607.446533 575.537354 102.031250 0.000000 140.392090 0.000000\"\t\t// cubby\n+\t\t\t\t\"3\" \"-896.453796 874.513794 99.031250 0.000000 102.692116 0.000000\"\t\t\t// near wood\n+\t\t\t\t\"4\" \"-1264.500732 329.340424 56.981785 0.000000 48.198559 0.000000\"\t\t\t// pillar\n+\t\t\t\t\"5\" \"-1548.147949 737.432556 102.031250 0.000000 -39.080292 0.000000\"\t\t// pizza\n \t\t\t}\n \t\t}\n \t}"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/de_cache_retake.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -1,6 +1,7 @@\n // Spawn locations and angles.\n // The first three numbers are the X Y Z coordinates of the player location.\n // The last three numbers are the PITCH YAW ROLL parameters of the player camera.\n+// Only YAW is used. PITCH and ROLL must be 0.\n // To easily get these numbers, walk around the map and type \"getpos\" in the console.\n // The console will return the 6 numbers that you need to paste into your entry below.\n "
        },
        {
          "filename": "game/csgo/pak01_dir/maps/de_dust2_retake.txt",
          "status": "modified",
          "additions": 30,
          "deletions": 29,
          "changes": 59,
          "patch": "@@ -1,6 +1,7 @@\n // Spawn locations and angles.\n // The first three numbers are the X Y Z coordinates of the player location.\n // The last three numbers are the PITCH YAW ROLL parameters of the player camera.\n+// Only YAW is used. PITCH and ROLL must be 0.\n // To easily get these numbers, walk around the map and type \"getpos\" in the console.\n // The console will return the 6 numbers that you need to paste into your entry below.\n \n@@ -13,50 +14,50 @@\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-846.599976 1444.890869 -48.501801 0.943810 1.405786 0.000000\" // tunnels\n-\t\t\t\t\"1\" \"-457.336212 1054.574707 1.844280 0.363007 50.313972 0.000000\" // xbox\n-\t\t\t\t\"2\" \"-400.334991 678.978882 64.093811 1.137411 66.576416 0.000000\"\t// top mid\n-\t\t\t\t\"3\" \"-193.614960 396.257385 62.181545 -0.024189 81.846718 0.000000\"\t// top mid again\n-\t\t\t\t\"4\" \"434.117462 -1.090969 60.376881 -2.032789 57.888672 0.000000\"\t// long doors\n-\t\t\t\t\"5\" \"555.093811 -135.622513 59.610733 -0.338788 82.621094 0.000000\"\t// long doors again\n-\t\t\t\t\"6\" \"-677.613525 2415.142822 -32.683861 3.605824 -26.400053 0.000000\"\t// bottom mid\n-\t\t\t\t\"7\" \"-516.179565 1745.433228 -54.061600 1.040630 55.541264 0.000000\"\t// bottom mid\n+\t\t\t\t\"0\" \"-846.599976 1444.890869 -48.501801 0.000000 1.405786 0.000000\" // tunnels\n+\t\t\t\t\"1\" \"-457.336212 1054.574707 1.844280 0.000000 50.313972 0.000000\" // xbox\n+\t\t\t\t\"2\" \"-400.334991 678.978882 64.093811 0.000000 66.576416 0.000000\"\t// top mid\n+\t\t\t\t\"3\" \"-193.614960 396.257385 62.181545 0.000000 81.846718 0.000000\"\t// top mid again\n+\t\t\t\t\"4\" \"434.117462 -1.090969 60.376881 0.000000 57.888672 0.000000\"\t// long doors\n+\t\t\t\t\"5\" \"555.093811 -135.622513 59.610733 0.000000 82.621094 0.000000\"\t// long doors again\n+\t\t\t\t\"6\" \"-677.613525 2415.142822 -32.683861 0.000000 -26.400053 0.000000\"\t// bottom mid\n+\t\t\t\t\"7\" \"-516.179565 1745.433228 -54.061600 0.000000 55.541264 0.000000\"\t// bottom mid\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-483.404663 1739.181641 -58.238190 -1.137366 101.860626 0.000000\"\t// mid doors\n-\t\t\t\t\"1\" \"-356.637268 1266.448120 -55.822693 1.161641 122.842247 0.000000\"\t// xbox\n-\t\t\t\t\"2\" \"-152.456589 1412.368896 63.691505 6.485623 170.056534 0.000000\"\t// cat\n-\t\t\t\t\"3\" \"-1550.600952 275.411560 71.745834 -3.242788 101.546806 0.000000\"\t// outside tuns\n-\t\t\t\t\"4\" \"-1777.189453 285.950958 63.664089 -2.952386 78.822899 0.000000\" // outside tuns\n-\t\t\t\t\"5\" \"283.011230 2364.396729 -56.154083 1.331001 -141.082947 0.000000\"\t// ct spawn\n-\t\t\t\t\"6\" \"-519.938232 1709.765137 -53.676819 -1.621401 92.496017 0.000000\"\t// mid doors\n+\t\t\t\t\"0\" \"-483.404663 1739.181641 -58.238190 0.000000 101.860626 0.000000\"\t// mid doors\n+\t\t\t\t\"1\" \"-356.637268 1266.448120 -55.822693 0.000000 122.842247 0.000000\"\t// xbox\n+\t\t\t\t\"2\" \"-152.456589 1412.368896 63.691505 0.000000 170.056534 0.000000\"\t// cat\n+\t\t\t\t\"3\" \"-1550.600952 275.411560 71.745834 0.000000 101.546806 0.000000\"\t// outside tuns\n+\t\t\t\t\"4\" \"-1777.189453 285.950958 63.664089 0.000000 78.822899 0.000000\" // outside tuns\n+\t\t\t\t\"5\" \"283.011230 2364.396729 -56.154083 0.000000 -141.082947 0.000000\"\t// ct spawn\n+\t\t\t\t\"6\" \"-519.938232 1709.765137 -53.676819 0.000000 92.496017 0.000000\"\t// mid doors\n \t\t\t}\n \t\t}\n \t\t\"T\"\n \t\t{\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"1139.122192 2383.754150 160.579727 6.709989 -79.670036 0.000000\"\n-\t\t\t\t\"1\" \"1051.031250 3043.428955 194.564865 6.104987 -59.705238 0.000000\"\n-\t\t\t\t\"2\" \"1581.504639 2698.182373 167.690628 7.754992 -111.185661 0.000000\"\n-\t\t\t\t\"3\" \"800.029114 2748.880615 162.849014 0.824991 -115.395638 0.000000\"\n-\t\t\t\t\"4\" \"934.400391 2758.107910 166.024689 0.659932 -121.885841 0.000000\"\n-\t\t\t\t\"5\" \"961.684265 2462.519287 160.809616 8.524945 -55.720852 0.000000\"\n-\t\t\t\t\"6\" \"1561.968750 3059.968750 173.093811 2.859952 -105.055649 0.000000\"\n+\t\t\t\t\"0\" \"1139.122192 2383.754150 160.579727 0.000000 -79.670036 0.000000\"\n+\t\t\t\t\"1\" \"1051.031250 3043.428955 194.564865 0.000000 -59.705238 0.000000\"\n+\t\t\t\t\"2\" \"1581.504639 2698.182373 167.690628 0.000000 -111.185661 0.000000\"\n+\t\t\t\t\"3\" \"800.029114 2748.880615 162.849014 0.000000 -115.395638 0.000000\"\n+\t\t\t\t\"4\" \"934.400391 2758.107910 166.024689 0.000000 -121.885841 0.000000\"\n+\t\t\t\t\"5\" \"961.684265 2462.519287 160.809616 0.000000 -55.720852 0.000000\"\n+\t\t\t\t\"6\" \"1561.968750 3059.968750 173.093811 0.000000 -105.055649 0.000000\"\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-2082.015869 2927.534424 98.116425 0.439947 -85.420326 0.000000\"\n-\t\t\t\t\"1\" \"-1570.835083 2535.531494 67.592232 0.659938 -90.700371 0.000000\"\n-\t\t\t\t\"2\" \"-2151.545898 2185.592041 65.203217 -0.550066 -69.000519 0.000000\"\n-\t\t\t\t\"3\" \"-2139.478027 2386.677002 85.813980 -0.110149 -79.120506 0.000000\"\n-\t\t\t\t\"4\" \"-1912.131470 2981.505127 103.982697 1.429781 -93.200829 0.000000\"\n-\t\t\t\t\"5\" \"-1682.210449 2839.806152 84.535492 1.979795 -64.161041 0.000000\"\n-\t\t\t\t\"6\" \"-1421.781616 2777.520264 80.034912 -0.704973 -120.040497 0.000000\"\n+\t\t\t\t\"0\" \"-2082.015869 2927.534424 98.116425 0.000000 -85.420326 0.000000\"\n+\t\t\t\t\"1\" \"-1570.835083 2535.531494 67.592232 0.000000 -90.700371 0.000000\"\n+\t\t\t\t\"2\" \"-2151.545898 2185.592041 65.203217 0.000000 -69.000519 0.000000\"\n+\t\t\t\t\"3\" \"-2139.478027 2386.677002 85.813980 0.000000 -79.120506 0.000000\"\n+\t\t\t\t\"4\" \"-1912.131470 2981.505127 103.982697 0.000000 -93.200829 0.000000\"\n+\t\t\t\t\"5\" \"-1682.210449 2839.806152 84.535492 0.000000 -64.161041 0.000000\"\n+\t\t\t\t\"6\" \"-1421.781616 2777.520264 80.034912 0.000000 -120.040497 0.000000\"\n \t\t\t}\n \t\t}\n \t}"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/de_inferno_retake.txt",
          "status": "modified",
          "additions": 13,
          "deletions": 12,
          "changes": 25,
          "patch": "@@ -1,6 +1,7 @@\n // Spawn locations and angles.\n // The first three numbers are the X Y Z coordinates of the player location.\n // The last three numbers are the PITCH YAW ROLL parameters of the player camera.\n+// Only YAW is used. PITCH and ROLL must be 0.\n // To easily get these numbers, walk around the map and type \"getpos\" in the console.\n // The console will return the 6 numbers that you need to paste into your entry below.\n \n@@ -38,22 +39,22 @@\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"1980.864868 691.333130 224.093811 0.275019 -90.190948 0.000000\"\n-\t\t\t\t\"1\" \"2111.051514 516.669739 224.093811 1.210017 51.929066 0.000000\"\n-\t\t\t\t\"2\" \"2312.475830 158.543716 192.119934 0.660010 -170.106003 0.000000\"\n-\t\t\t\t\"3\" \"2030.101563 91.219025 195.871506 1.100013 -178.466217 0.000000\"\n-\t\t\t\t\"4\" \"1851.353394 307.282959 224.093811 5.390013 -1.506194 0.000000\"\n-\t\t\t\t\"5\" \"2066.439209 389.242218 224.093811 3.575027 59.323837 0.000000\"\n+\t\t\t\t\"0\" \"1980.864868 691.333130 224.093811 0.000000 -90.190948 0.000000\"\n+\t\t\t\t\"1\" \"2111.051514 516.669739 224.093811 0.000000 51.929066 0.000000\"\n+\t\t\t\t\"2\" \"2312.475830 158.543716 192.119934 0.000000 -170.106003 0.000000\"\n+\t\t\t\t\"3\" \"2030.101563 91.219025 195.871506 0.000000 -178.466217 0.000000\"\n+\t\t\t\t\"4\" \"1851.353394 307.282959 224.093811 0.000000 -1.506194 0.000000\"\n+\t\t\t\t\"5\" \"2066.439209 389.242218 224.093811 0.000000 59.323837 0.000000\"\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"327.007019 2958.958496 224.093811 0.165006 61.244827 0.000000\"\n-\t\t\t\t\"1\" \"493.116791 2920.305664 224.093811 0.440006 -57.995209 0.000000\"\n-\t\t\t\t\"2\" \"546.782410 2785.582520 224.093811 3.025007 -5.264832 0.000000\"\n-\t\t\t\t\"3\" \"540.284363 2640.538086 224.093811 7.205009 -49.044861 0.000000\"\n-\t\t\t\t\"4\" \"451.179962 2477.032959 224.093811 0.825007 88.150040 0.000000\"\n-\t\t\t\t\"5\" \"173.078644 2463.477539 224.093811 0.165024 63.014217 0.000000\"\n+\t\t\t\t\"0\" \"327.007019 2958.958496 224.093811 0.000000 61.244827 0.000000\"\n+\t\t\t\t\"1\" \"493.116791 2920.305664 224.093811 0.000000 -57.995209 0.000000\"\n+\t\t\t\t\"2\" \"546.782410 2785.582520 224.093811 0.000000 -5.264832 0.000000\"\n+\t\t\t\t\"3\" \"540.284363 2640.538086 224.093811 0.000000 -49.044861 0.000000\"\n+\t\t\t\t\"4\" \"451.179962 2477.032959 224.093811 0.000000 88.150040 0.000000\"\n+\t\t\t\t\"5\" \"173.078644 2463.477539 224.093811 0.000000 63.014217 0.000000\"\n \t\t\t}\n \t\t}\n \t}"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/de_mirage_retake.txt",
          "status": "modified",
          "additions": 28,
          "deletions": 27,
          "changes": 55,
          "patch": "@@ -1,6 +1,7 @@\n // Spawn locations and angles.\n // The first three numbers are the X Y Z coordinates of the player location.\n // The last three numbers are the PITCH YAW ROLL parameters of the player camera.\n+// Only YAW is used. PITCH and ROLL must be 0.\n // To easily get these numbers, walk around the map and type \"getpos\" in the console.\n // The console will return the 6 numbers that you need to paste into your entry below.\n \n@@ -13,48 +14,48 @@\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-1677.126709 -1634.004761 -199.909851 -1.040606 -70.527283 0.000000\" // ct spawn towards stairs\n-\t\t\t\t\"1\" \"-1656.067993 -1312.397339 -198.956573 -9.220211 46.770073 0.000000\" // ct spawn towards window\n-\t\t\t\t\"2\" \"-1900.843750 -501.388794 -103.906342 -0.048411 -35.025795 0.000000\"\t// market\n-\t\t\t\t\"3\" \"-1098.085815 247.777573 -108.550049 0.483987 -24.305056 0.000000\"\t// short/cat\n-\t\t\t\t\"4\" \"-1015.740295 20.759636 -303.906189 0.024157 -89.112495 0.000000\"\t// underpass\n-\t\t\t\t\"5\" \"178.497757 -432.409790 -102.906189 4.839993 -153.049103 0.000000\"\t// top of mid\n-\t\t\t\t\"6\" \"1308.333252 -493.088531 -103.906189 0.846988 -105.737518 0.000000\"\t// t spawn\n-\t\t\t\t\"7\" \"937.698242 -2309.016357 24.093811 3.533107 178.540085 0.000000\"\t// palace\n-\t\t\t\t\"8\" \"1003.887695 -1429.493896 -103.906189 -9.220247 -100.872650 0.000000\"\t// palace towards t spawn\n+\t\t\t\t\"0\" \"-1677.126709 -1634.004761 -199.909851 0.000000 -70.527283 0.000000\" // ct spawn towards stairs\n+\t\t\t\t\"1\" \"-1656.067993 -1312.397339 -198.956573 0.000000 46.770073 0.000000\" // ct spawn towards window\n+\t\t\t\t\"2\" \"-1900.843750 -501.388794 -103.906342 0.000000 -35.025795 0.000000\"\t// market\n+\t\t\t\t\"3\" \"-1098.085815 247.777573 -108.550049 0.000000 -24.305056 0.000000\"\t// short/cat\n+\t\t\t\t\"4\" \"-1015.740295 20.759636 -303.906189 0.000000 -89.112495 0.000000\"\t// underpass\n+\t\t\t\t\"5\" \"178.497757 -432.409790 -102.906189 0.000000 -153.049103 0.000000\"\t// top of mid\n+\t\t\t\t\"6\" \"1308.333252 -493.088531 -103.906189 0.000000 -105.737518 0.000000\"\t// t spawn\n+\t\t\t\t\"7\" \"937.698242 -2309.016357 24.093811 0.000000 178.540085 0.000000\"\t// palace\n+\t\t\t\t\"8\" \"1003.887695 -1429.493896 -103.906189 0.000000 -100.872650 0.000000\"\t// palace towards t spawn\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"39.600376 -674.276245 -123.007751 -2.541049 156.639526 0.000000\"\t// top of mid\n-\t\t\t\t\"1\" \"205.479950 -423.502655 -105.788986 -0.459847 178.613220 0.000000\"\t// top of mid\n-\t\t\t\t\"2\" \"246.561295 837.782532 -71.906189 -0.532449 -174.005737 0.000000\"\t// t aps\n-\t\t\t\t\"3\" \"-1165.694702 -727.956482 -103.906189 0.024152 61.847801 0.000000\"\t// window\n-\t\t\t\t\"4\" \"-1608.863281 -1773.091064 -203.089233 -2.565245 89.242607 0.000000\" // ct spawn\n-\t\t\t\t\"5\" \"-188.154068 836.493591 -70.936310 -5.227249 -139.956451 0.000000\"\t// near underpass\n-\t\t\t\t\"6\" \"-638.112366 -1043.536621 -146.134171 -0.242047 98.970795 0.000000\"\t// connector\n+\t\t\t\t\"0\" \"39.600376 -674.276245 -123.007751 0.000000 156.639526 0.000000\"\t// top of mid\n+\t\t\t\t\"1\" \"205.479950 -423.502655 -105.788986 0.000000 178.613220 0.000000\"\t// top of mid\n+\t\t\t\t\"2\" \"246.561295 837.782532 -71.906189 0.000000 -174.005737 0.000000\"\t// t aps\n+\t\t\t\t\"3\" \"-1165.694702 -727.956482 -103.906189 0.000000 61.847801 0.000000\"\t// window\n+\t\t\t\t\"4\" \"-1608.863281 -1773.091064 -203.089233 0.000000 89.242607 0.000000\" // ct spawn\n+\t\t\t\t\"5\" \"-188.154068 836.493591 -70.936310 0.000000 -139.956451 0.000000\"\t// near underpass\n+\t\t\t\t\"6\" \"-638.112366 -1043.536621 -146.134171 0.000000 98.970795 0.000000\"\t// connector\n \t\t\t}\n \t\t}\n \t\t\"T\"\n \t\t{\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-138.005844 -1797.033203 -103.906189 4.114976 171.140121 0.000000\"\n-\t\t\t\t\"1\" \"-208.880524 -1975.932617 -103.906189 2.495055 57.080521 0.000000\"\n-\t\t\t\t\"2\" \"-173.824203 -1648.350464 -103.906448 1.945080 13.465389 0.000000\"\n-\t\t\t\t\"3\" \"-726.882385 -2127.039795 -115.906189 1.320001 88.945335 0.000000\"\n-\t\t\t\t\"4\" \"-133.799622 -1971.166504 -103.906189 4.970137 130.364868 0.000000\"\n+\t\t\t\t\"0\" \"-138.005844 -1797.033203 -103.906189 0.000000 171.140121 0.000000\"\n+\t\t\t\t\"1\" \"-208.880524 -1975.932617 -103.906189 0.000000 57.080521 0.000000\"\n+\t\t\t\t\"2\" \"-173.824203 -1648.350464 -103.906448 0.000000 13.465389 0.000000\"\n+\t\t\t\t\"3\" \"-726.882385 -2127.039795 -115.906189 0.000000 88.945335 0.000000\"\n+\t\t\t\t\"4\" \"-133.799622 -1971.166504 -103.906189 0.000000 130.364868 0.000000\"\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-2071.244141 76.052170 -95.906189 2.034678 -80.853889 0.000000\"\n-\t\t\t\t\"1\" \"-2335.413574 317.665161 -103.906189 -0.880295 -1.849629 0.000000\"\n-\t\t\t\t\"2\" \"-2314.553223 87.289604 -103.906189 2.089718 -88.254845 0.000000\"\n-\t\t\t\t\"3\" \"-2311.599609 807.468384 -56.817085 0.770055 -17.544203 0.000000\"\n-\t\t\t\t\"4\" \"-2083.113770 422.673370 -95.906189 -0.440296 -28.139830 0.000000\"\n-\t\t\t\t\"5\" \"-2032.361572 819.257629 16.093811 5.499928 -73.249115 0.000000\"\n+\t\t\t\t\"0\" \"-2071.244141 76.052170 -95.906189 0.000000 -80.853889 0.000000\"\n+\t\t\t\t\"1\" \"-2335.413574 317.665161 -103.906189 0.000000 -1.849629 0.000000\"\n+\t\t\t\t\"2\" \"-2314.553223 87.289604 -103.906189 0.000000 -88.254845 0.000000\"\n+\t\t\t\t\"3\" \"-2311.599609 807.468384 -56.817085 0.000000 -17.544203 0.000000\"\n+\t\t\t\t\"4\" \"-2083.113770 422.673370 -95.906189 0.000000 -28.139830 0.000000\"\n+\t\t\t\t\"5\" \"-2032.361572 819.257629 16.093811 0.000000 -73.249115 0.000000\"\n \t\t\t}\n \t\t}\n \t}"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/de_nuke_retake.txt",
          "status": "modified",
          "additions": 29,
          "deletions": 28,
          "changes": 57,
          "patch": "@@ -1,6 +1,7 @@\n // Spawn locations and angles.\n // The first three numbers are the X Y Z coordinates of the player location.\n // The last three numbers are the PITCH YAW ROLL parameters of the player camera.\n+// Only YAW is used. PITCH and ROLL must be 0.\n // To easily get these numbers, walk around the map and type \"getpos\" in the console.\n // The console will return the 6 numbers that you need to paste into your entry below.\n \n@@ -13,49 +14,49 @@\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"1826.490234 -1582.837280 -415.468750 0.065063 153.155899 0.000000\"\n-\t\t\t\t\"1\" \"1881.807495 -1455.578857 -415.968750 5.555011 155.200150 0.000000\"\n-\t\t\t\t\"2\" \"1894.747314 -1346.003906 -415.968750 3.795011 163.780304 0.000000\"\n-\t\t\t\t\"3\" \"98.284538 78.638504 -415.968750 3.850050 -84.354782 0.000000\"\n-\t\t\t\t\"4\" \"217.944992 81.296051 -415.968750 3.960050 -95.904846 0.000000\"\n-\t\t\t\t\"5\" \"386.501587 289.255096 -415.968750 2.860050 -112.514771 0.000000\"\n-\t\t\t\t\"6\" \"477.353271 112.284828 -415.968750 4.620059 -158.439514 0.000000\"\n-\t\t\t\t\"7\" \"-349.254517 -326.273315 -415.968750 5.775097 -94.584648 0.000000\"\n+\t\t\t\t\"0\" \"1826.490234 -1582.837280 -415.468750 0.000000 153.155899 0.000000\"\n+\t\t\t\t\"1\" \"1881.807495 -1455.578857 -415.968750 0.000000 155.200150 0.000000\"\n+\t\t\t\t\"2\" \"1894.747314 -1346.003906 -415.968750 0.000000 163.780304 0.000000\"\n+\t\t\t\t\"3\" \"98.284538 78.638504 -415.968750 0.000000 -84.354782 0.000000\"\n+\t\t\t\t\"4\" \"217.944992 81.296051 -415.968750 0.000000 -95.904846 0.000000\"\n+\t\t\t\t\"5\" \"386.501587 289.255096 -415.968750 0.000000 -112.514771 0.000000\"\n+\t\t\t\t\"6\" \"477.353271 112.284828 -415.968750 0.000000 -158.439514 0.000000\"\n+\t\t\t\t\"7\" \"-349.254517 -326.273315 -415.968750 0.000000 -94.584648 0.000000\"\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"1576.323364 -1878.220947 -639.968750 2.090019 -179.841293 0.000000\"\n-\t\t\t\t\"1\" \"1609.487671 -1979.546021 -639.968750 4.235075 170.125092 0.000000\"\n-\t\t\t\t\"2\" \"1539.138062 -2043.621338 -639.468750 1.925072 149.829666 0.000000\"\n-\t\t\t\t\"3\" \"1187.977905 -125.299744 -415.968750 3.300195 139.128769 0.000000\"\n-\t\t\t\t\"4\" \"1101.862305 -244.514221 -415.468750 3.410053 109.701180 0.000000\"\n-\t\t\t\t\"5\" \"65.669846 -193.346924 -415.968750 3.520051 50.169384 0.000000\"\n-\t\t\t\t\"6\" \"172.936295 -222.184082 -415.968750 3.685049 69.609474 0.000000\"\n+\t\t\t\t\"0\" \"1576.323364 -1878.220947 -639.968750 0.000000 -179.841293 0.000000\"\n+\t\t\t\t\"1\" \"1609.487671 -1979.546021 -639.968750 0.000000 170.125092 0.000000\"\n+\t\t\t\t\"2\" \"1539.138062 -2043.621338 -639.468750 0.000000 149.829666 0.000000\"\n+\t\t\t\t\"3\" \"1187.977905 -125.299744 -415.968750 0.000000 139.128769 0.000000\"\n+\t\t\t\t\"4\" \"1101.862305 -244.514221 -415.468750 0.000000 109.701180 0.000000\"\n+\t\t\t\t\"5\" \"65.669846 -193.346924 -415.968750 0.000000 50.169384 0.000000\"\n+\t\t\t\t\"6\" \"172.936295 -222.184082 -415.968750 0.000000 69.609474 0.000000\"\n \t\t\t}\n \t\t}\n \t\t\"T\"\n \t\t{\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"439.701294 -430.728943 -415.968750 0.220048 -66.750351 0.000000\"\n-\t\t\t\t\"1\" \"391.304352 -680.313660 -415.968750 2.255052 -45.245312 0.000000\"\n-\t\t\t\t\"2\" \"676.314880 -849.846741 -415.640930 -0.714948 -98.210297 0.000000\"\n-\t\t\t\t\"3\" \"910.849426 -814.943909 -415.968750 1.045055 -119.770355 0.000000\"\n-\t\t\t\t\"4\" \"834.290283 -432.108215 -415.968750 -0.219952 -116.085457 0.000000\"\n-\t\t\t\t\"5\" \"653.616211 -380.847412 -415.968750 -1.704951 -96.505409 0.000000\"\n+\t\t\t\t\"0\" \"439.701294 -430.728943 -415.968750 0.000000 -66.750351 0.000000\"\n+\t\t\t\t\"1\" \"391.304352 -680.313660 -415.968750 0.000000 -45.245312 0.000000\"\n+\t\t\t\t\"2\" \"676.314880 -849.846741 -415.640930 0.000000 -98.210297 0.000000\"\n+\t\t\t\t\"3\" \"910.849426 -814.943909 -415.968750 0.000000 -119.770355 0.000000\"\n+\t\t\t\t\"4\" \"834.290283 -432.108215 -415.968750 0.000000 -116.085457 0.000000\"\n+\t\t\t\t\"5\" \"653.616211 -380.847412 -415.968750 0.000000 -96.505409 0.000000\"\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"505.153625 -1255.377808 -769.968750 4.344996 -175.020218 0.000000\"\n-\t\t\t\t\"1\" \"447.878540 -938.309509 -771.968750 -7.369998 71.569695 0.000000\"\n-\t\t\t\t\"2\" \"814.926270 -980.591858 -771.968750 4.125004 -0.315308 0.000000\"\n-\t\t\t\t\"3\" \"793.895630 -890.297546 -771.968750 -8.414989 102.699738 0.000000\"\n-\t\t\t\t\"4\" \"729.326294 -1292.212280 -769.968750 -0.769992 54.299778 0.000000\"\n-\t\t\t\t\"5\" \"601.971008 -1069.505737 -771.968750 -6.104986 87.904762 0.000000\"\n-\t\t\t\t\"6\" \"838.149231 -628.893921 -767.968750 2.200047 -110.615128 0.000000\"\n+\t\t\t\t\"0\" \"505.153625 -1255.377808 -769.968750 0.000000 -175.020218 0.000000\"\n+\t\t\t\t\"1\" \"447.878540 -938.309509 -771.968750 0.000000 71.569695 0.000000\"\n+\t\t\t\t\"2\" \"814.926270 -980.591858 -771.968750 0.000000 -0.315308 0.000000\"\n+\t\t\t\t\"3\" \"793.895630 -890.297546 -771.968750 0.000000 102.699738 0.000000\"\n+\t\t\t\t\"4\" \"729.326294 -1292.212280 -769.968750 0.000000 54.299778 0.000000\"\n+\t\t\t\t\"5\" \"601.971008 -1069.505737 -771.968750 0.000000 87.904762 0.000000\"\n+\t\t\t\t\"6\" \"838.149231 -628.893921 -767.968750 0.000000 -110.615128 0.000000\"\n \t\t\t}\n \t\t}\n \t}"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/de_overpass_retake.txt",
          "status": "modified",
          "additions": 26,
          "deletions": 25,
          "changes": 51,
          "patch": "@@ -1,6 +1,7 @@\n // Spawn locations and angles.\n // The first three numbers are the X Y Z coordinates of the player location.\n // The last three numbers are the PITCH YAW ROLL parameters of the player camera.\n+// Only YAW is used. PITCH and ROLL must be 0.\n // To easily get these numbers, walk around the map and type \"getpos\" in the console.\n // The console will return the 6 numbers that you need to paste into your entry below.\n \n@@ -13,46 +14,46 @@\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-2895.787598 -2106.911621 536.093811 1.154996 98.325569 0.000000\"\n-\t\t\t\t\"1\" \"-2677.047363 -2112.731201 536.093811 2.199996 91.065544 0.000000\"\n-\t\t\t\t\"2\" \"-2402.718262 -1904.216553 536.093811 3.024992 132.260513 0.000000\"\n-\t\t\t\t\"3\" \"-3520.431152 -1295.249268 566.301453 4.619984 95.850212 0.000000\"\n-\t\t\t\t\"4\" \"-3667.147705 -1309.966309 555.990662 0.769987 74.840096 0.000000\"\n-\t\t\t\t\"5\" \"-3569.248291 -1444.676880 577.288269 4.399978 97.500099 0.000000\"\n-\t\t\t\t\"6\" \"-2075.771484 450.691711 108.532364 2.694936 35.015278 0.000000\"\n-\t\t\t\t\"7\" \"-1949.533813 379.327820 108.031250 2.859980 69.885338 0.000000\"\n+\t\t\t\t\"0\" \"-2895.787598 -2106.911621 536.093811 0.000000 98.325569 0.000000\"\n+\t\t\t\t\"1\" \"-2677.047363 -2112.731201 536.093811 0.000000 91.065544 0.000000\"\n+\t\t\t\t\"2\" \"-2402.718262 -1904.216553 536.093811 0.000000 132.260513 0.000000\"\n+\t\t\t\t\"3\" \"-3520.431152 -1295.249268 566.301453 0.000000 95.850212 0.000000\"\n+\t\t\t\t\"4\" \"-3667.147705 -1309.966309 555.990662 0.000000 74.840096 0.000000\"\n+\t\t\t\t\"5\" \"-3569.248291 -1444.676880 577.288269 0.000000 97.500099 0.000000\"\n+\t\t\t\t\"6\" \"-2075.771484 450.691711 108.532364 0.000000 35.015278 0.000000\"\n+\t\t\t\t\"7\" \"-1949.533813 379.327820 108.031250 0.000000 69.885338 0.000000\"\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-669.978821 -1596.339600 209.001465 9.294992 77.815590 0.000000\"\n-\t\t\t\t\"1\" \"-845.763367 -1510.034058 209.090118 5.444992 54.330486 0.000000\"\n-\t\t\t\t\"2\" \"-830.348755 -1692.366089 214.448120 7.754998 60.655495 0.000000\"\n-\t\t\t\t\"3\" \"-2089.559082 1245.278198 420.093811 12.375099 -37.318851 0.000000\"\n-\t\t\t\t\"4\" \"-2049.639648 1297.645386 420.093811 12.375099 -37.318851 0.000000\"\n-\t\t\t\t\"5\" \"-1935.149536 1299.063110 419.212982 13.420106 -59.428921 0.000000\"\n+\t\t\t\t\"0\" \"-669.978821 -1596.339600 209.001465 0.000000 77.815590 0.000000\"\n+\t\t\t\t\"1\" \"-845.763367 -1510.034058 209.090118 0.000000 54.330486 0.000000\"\n+\t\t\t\t\"2\" \"-830.348755 -1692.366089 214.448120 0.000000 60.655495 0.000000\"\n+\t\t\t\t\"3\" \"-2089.559082 1245.278198 420.093811 0.000000 -37.318851 0.000000\"\n+\t\t\t\t\"4\" \"-2049.639648 1297.645386 420.093811 0.000000 -37.318851 0.000000\"\n+\t\t\t\t\"5\" \"-1935.149536 1299.063110 419.212982 0.000000 -59.428921 0.000000\"\n \t\t\t}\n \t\t}\n \t\t\"T\"\n \t\t{\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-2276.064209 566.507263 544.079407 3.850023 -120.519920 0.000000\"\n-\t\t\t\t\"1\" \"-2473.138184 536.193909 544.093811 8.305019 -115.899849 0.000000\"\n-\t\t\t\t\"2\" \"-2259.978271 698.634766 536.343811 2.915035 -116.669830 0.000000\"\n-\t\t\t\t\"3\" \"-2426.317627 822.700256 536.343811 1.485011 13.460282 0.000000\"\n-\t\t\t\t\"4\" \"-2087.630127 735.790344 476.031219 2.342239 137.941879 0.000000\"\n+\t\t\t\t\"0\" \"-2276.064209 566.507263 544.079407 0.000000 -120.519920 0.000000\"\n+\t\t\t\t\"1\" \"-2473.138184 536.193909 544.093811 0.000000 -115.899849 0.000000\"\n+\t\t\t\t\"2\" \"-2259.978271 698.634766 536.343811 0.000000 -116.669830 0.000000\"\n+\t\t\t\t\"3\" \"-2426.317627 822.700256 536.343811 0.000000 13.460282 0.000000\"\n+\t\t\t\t\"4\" \"-2087.630127 735.790344 476.031219 0.000000 137.941879 0.000000\"\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-884.320007 221.360916 160.093811 9.020019 -46.930019 0.000000\"\n-\t\t\t\t\"1\" \"-1082.541992 141.747742 163.093811 -10.119980 148.290009 0.000000\"\n-\t\t\t\t\"2\" \"-1192.550903 105.253471 163.093811 0.880019 -58.370010 0.000000\"\n-\t\t\t\t\"3\" \"-1047.512573 -150.184769 163.093811 0.110016 -170.129654 0.000000\"\n-\t\t\t\t\"4\" \"-968.416199 -183.259766 160.093811 1.320018 -91.204674 0.000000\"\n-\t\t\t\t\"5\" \"-1112.493286 -216.452805 163.093811 2.640013 50.255310 0.000000\"\n+\t\t\t\t\"0\" \"-884.320007 221.360916 160.093811 0.000000 -46.930019 0.000000\"\n+\t\t\t\t\"1\" \"-1082.541992 141.747742 163.093811 0.000000 148.290009 0.000000\"\n+\t\t\t\t\"2\" \"-1192.550903 105.253471 163.093811 0.000000 -58.370010 0.000000\"\n+\t\t\t\t\"3\" \"-1047.512573 -150.184769 163.093811 0.000000 -170.129654 0.000000\"\n+\t\t\t\t\"4\" \"-968.416199 -183.259766 160.093811 0.000000 -91.204674 0.000000\"\n+\t\t\t\t\"5\" \"-1112.493286 -216.452805 163.093811 0.000000 50.255310 0.000000\"\n \t\t\t}\n \t\t}\n \t}"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/de_train_retake.txt",
          "status": "modified",
          "additions": 26,
          "deletions": 25,
          "changes": 51,
          "patch": "@@ -1,6 +1,7 @@\n // Spawn locations and angles.\n // The first three numbers are the X Y Z coordinates of the player location.\n // The last three numbers are the PITCH YAW ROLL parameters of the player camera.\n+// Only YAW is used. PITCH and ROLL must be 0.\n // To easily get these numbers, walk around the map and type \"getpos\" in the console.\n // The console will return the 6 numbers that you need to paste into your entry below.\n \n@@ -13,46 +14,46 @@\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"869.592896 1623.697876 -163.906189 2.859981 -26.422117 0.000000\" \t\t//ivy\n-\t\t\t\t\"1\" \"719.372253 1657.006714 -159.917480 3.409997 -17.566977 0.000000\" \t\t//ivy\n-\t\t\t\t\"2\" \"-233.861633 -897.102600 -254.968750 -2.111976 3.068373 0.000000\" \t\t//b site ramp\n-\t\t\t\t\"3\" \"-728.552124 1435.110352 -157.265610 2.859995 -82.961456 0.000000\"\t\t//a main\n-\t\t\t\t\"4\" \"-974.967651 -869.088562 -89.968750 -4.597982 94.454933 -0.000000\" \t\t//upper b\n-\t\t\t\t\"5\" \"-982.721497 -166.424179 80.093811 4.960011 -19.305164 0.000000\" \t\t//top longdog\n-\t\t\t\t\"6\" \"1693.168457 -661.709900 -199.968750 -2.705968 100.607056 0.000000\"\t\t//ct spawn\n-\t\t\t\t\"7\" \"1025.682617 -1252.776733 -278.968750 -3.299975 123.430275 0.000000\"\t//back b site\n+\t\t\t\t\"0\" \"869.592896 1623.697876 -163.906189 0.000000 -26.422117 0.000000\" \t\t//ivy\n+\t\t\t\t\"1\" \"719.372253 1657.006714 -159.917480 0.000000 -17.566977 0.000000\" \t\t//ivy\n+\t\t\t\t\"2\" \"-233.861633 -897.102600 -254.968750 0.000000 3.068373 0.000000\" \t\t//b site ramp\n+\t\t\t\t\"3\" \"-728.552124 1435.110352 -157.265610 0.000000 -82.961456 0.000000\"\t\t//a main\n+\t\t\t\t\"4\" \"-974.967651 -869.088562 -89.968750 0.000000 94.454933 0.000000\" \t\t//upper b\n+\t\t\t\t\"5\" \"-982.721497 -166.424179 80.093811 0.000000 -19.305164 0.000000\" \t\t//top longdog\n+\t\t\t\t\"6\" \"1693.168457 -661.709900 -199.968750 0.000000 100.607056 0.000000\"\t\t//ct spawn\n+\t\t\t\t\"7\" \"1025.682617 -1252.776733 -278.968750 0.000000 123.430275 0.000000\"\t//back b site\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-969.392029 259.101227 80.031250 1.584035 -90.211624 0.000000\"\t\t\t//upper b\n-\t\t\t\t\"1\" \"-604.124756 151.493393 80.031250 1.166058 -89.859642 0.000000\"\t\t\t//upper b\n-\t\t\t\t\"2\" \"1642.633911 -36.776550 -147.968750 5.918056 -89.581604 0.000000\"\t\t//a1 ct\n-\t\t\t\t\"3\" \"-93.765259 147.830399 -151.968750 0.638126 -57.438507 0.000000\"\t\t//ebox\n-\t\t\t\t\"4\" \"661.129333 179.949982 -151.968750 2.684222 -132.613449 0.000000\"\t\t//a site\n-\t\t\t\t\"5\" \"-448.117981 -133.451660 -151.968750 0.638163 -42.567448 0.000000\"\t\t//outside longdog\n-\t\t\t\t\"6\" \"1692.687500 -665.840088 -199.968750 7.854129 -102.649010 0.000000\"\t\t//ct spawn\n+\t\t\t\t\"0\" \"-969.392029 259.101227 80.031250 0.000000 -90.211624 0.000000\"\t\t\t//upper b\n+\t\t\t\t\"1\" \"-604.124756 151.493393 80.031250 0.000000 -89.859642 0.000000\"\t\t\t//upper b\n+\t\t\t\t\"2\" \"1642.633911 -36.776550 -147.968750 0.000000 -89.581604 0.000000\"\t\t//a1 ct\n+\t\t\t\t\"3\" \"-93.765259 147.830399 -151.968750 0.000000 -57.438507 0.000000\"\t\t//ebox\n+\t\t\t\t\"4\" \"661.129333 179.949982 -151.968750 0.000000 -132.613449 0.000000\"\t\t//a site\n+\t\t\t\t\"5\" \"-448.117981 -133.451660 -151.968750 0.000000 -42.567448 0.000000\"\t\t//outside longdog\n+\t\t\t\t\"6\" \"1692.687500 -665.840088 -199.968750 0.000000 -102.649010 0.000000\"\t\t//ct spawn\n \t\t\t}\n \t\t}\n \t\t\"T\"\n \t\t{\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"462.717316 110.559921 -151.906189 0.769982 36.600121 0.000000\"\t\t\t//mid-a site\n-\t\t\t\t\"1\" \"55.970734 -192.313721 -215.968750 1.936126 14.141252 0.000000\"\t\t//behind default plant\n-\t\t\t\t\"2\" \"641.802673 -340.406494 -143.968750 2.002108 104.539085 0.000000\"\t\t//under heaven\n-\t\t\t\t\"3\" \"551.447693 -236.673233 -151.906189 -2.035019 82.220497 0.000000\"\t\t//near heaven\n-\t\t\t\t\"4\" \"246.003784 -105.766846 -77.968750 12.144086 178.538879 0.000000\"\t\t//on bomb train\n+\t\t\t\t\"0\" \"462.717316 110.559921 -151.906189 0.000000 36.600121 0.000000\"\t\t\t//mid-a site\n+\t\t\t\t\"1\" \"55.970734 -192.313721 -215.968750 0.000000 14.141252 0.000000\"\t\t//behind default plant\n+\t\t\t\t\"2\" \"641.802673 -340.406494 -143.968750 0.000000 104.539085 0.000000\"\t\t//under heaven\n+\t\t\t\t\"3\" \"551.447693 -236.673233 -151.906189 0.000000 82.220497 0.000000\"\t\t//near heaven\n+\t\t\t\t\"4\" \"246.003784 -105.766846 -77.968750 0.000000 178.538879 0.000000\"\t\t//on bomb train\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-3.422702 -1143.280762 -288.029327 0.934985 0.541761 0.00000\"\t\t\t// mid-b site\n-\t\t\t\t\"1\" \"72.596527 -1405.762207 -285.974854 0.714984 -0.778225 0.00000\"\t\t\t// mid-b site oil side\n-\t\t\t\t\"2\" \"-235.921524 -1407.080444 -287.906189 -0.495016 111.861740 0.00000\"\t\t// mid-b site oil side\n-\t\t\t\t\"3\" \"-449.022644 -1277.995239 -291.906189 1.924981 84.636719 0.00000\"\t\t// behind default plant\n-\t\t\t\t\"4\" \"-255.967651 -1544.674316 -350.968750 6.622083 65.481186 0.000000\"\t\t// below upper b\n+\t\t\t\t\"0\" \"-3.422702 -1143.280762 -288.029327 0.000000 0.541761 0.000000\"\t\t\t// mid-b site\n+\t\t\t\t\"1\" \"72.596527 -1405.762207 -285.974854 0.000000 -0.778225 0.000000\"\t\t\t// mid-b site oil side\n+\t\t\t\t\"2\" \"-235.921524 -1407.080444 -287.906189 0.000000 111.861740 0.000000\"\t\t// mid-b site oil side\n+\t\t\t\t\"3\" \"-449.022644 -1277.995239 -291.906189 0.000000 84.636719 0.000000\"\t\t// behind default plant\n+\t\t\t\t\"4\" \"-255.967651 -1544.674316 -350.968750 0.000000 65.481186 0.000000\"\t\t// below upper b\n \t\t\t}\n \t\t}\n \t}"
        },
        {
          "filename": "game/csgo/pak01_dir/maps/de_vertigo_retake.txt",
          "status": "modified",
          "additions": 30,
          "deletions": 29,
          "changes": 59,
          "patch": "@@ -1,6 +1,7 @@\n // Spawn locations and angles.\n // The first three numbers are the X Y Z coordinates of the player location.\n // The last three numbers are the PITCH YAW ROLL parameters of the player camera.\n+// Only YAW is used. PITCH and ROLL must be 0.\n // To easily get these numbers, walk around the map and type \"getpos\" in the console.\n // The console will return the 6 numbers that you need to paste into your entry below.\n \n@@ -13,50 +14,50 @@\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-1451.945435 163.126968 11840.093750 2.780024 -3.554834 0.000000\"\n-\t\t\t\t\"1\" \"-1516.281128 336.276184 11840.093750 1.955028 -27.094843 0.000000\"\n-\t\t\t\t\"2\" \"-1141.929932 555.575989 11841.093750 -0.629967 -76.790024 0.000000\"\n-\t\t\t\t\"3\" \"-1523.626465 -345.075836 11552.093750 3.399952 44.049221 0.000000\"\n-\t\t\t\t\"4\" \"-1492.269897 125.298424 11553.093750 3.605145 -44.835899 0.000000\"\n-\t\t\t\t\"5\" \"-1205.339966 900.894836 11840.093750 2.190067 -37.900955 0.000000\"\n-\t\t\t\t\"6\" \"-1287.256348 948.204285 11840.093750 5.215091 -37.900822 0.000000\"\n-\t\t\t\t\"7\" \"-1788.561768 347.308929 11840.093750 1.805082 -9.661197 0.000000\"\n+\t\t\t\t\"0\" \"-1451.945435 163.126968 11840.093750 0.000000 -3.554834 0.000000\"\n+\t\t\t\t\"1\" \"-1516.281128 336.276184 11840.093750 0.000000 -27.094843 0.000000\"\n+\t\t\t\t\"2\" \"-1141.929932 555.575989 11841.093750 0.000000 -76.790024 0.000000\"\n+\t\t\t\t\"3\" \"-1523.626465 -345.075836 11552.093750 0.000000 44.049221 0.000000\"\n+\t\t\t\t\"4\" \"-1492.269897 125.298424 11553.093750 0.000000 -44.835899 0.000000\"\n+\t\t\t\t\"5\" \"-1205.339966 900.894836 11840.093750 0.000000 -37.900955 0.000000\"\n+\t\t\t\t\"6\" \"-1287.256348 948.204285 11840.093750 0.000000 -37.900822 0.000000\"\n+\t\t\t\t\"7\" \"-1788.561768 347.308929 11840.093750 0.000000 -9.661197 0.000000\"\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-974.750610 -404.438934 11841.093750 0.815079 96.623421 0.000000\"\n-\t\t\t\t\"1\" \"-823.286316 -374.872650 11840.093750 2.025078 108.008484 0.000000\"\n-\t\t\t\t\"2\" \"-668.304810 -217.494736 11840.093750 2.190075 153.824127 0.000000\"\n-\t\t\t\t\"3\" \"-1535.756470 -238.856689 11776.031250 0.485072 142.463699 0.000000\"\n-\t\t\t\t\"4\" \"-1458.373657 -119.980713 11776.031250 5.160068 170.238327 0.000000\"\n-\t\t\t\t\"5\" \"-1373.065796 -427.928955 11776.031250 2.740066 135.203018 0.000000\"\n-\t\t\t\t\"6\" \"-2354.094971 -857.293701 11552.093750 3.950027 68.872276 0.000000\"\n-\t\t\t\t\"7\" \"-2193.825684 -915.975647 11552.093750 3.180027 100.167282 0.000000\"\n-\t\t\t\t\"8\" \"-2110.593262 -754.761353 11552.093750 4.995027 138.832138 0.000000\"\n+\t\t\t\t\"0\" \"-974.750610 -404.438934 11841.093750 0.000000 96.623421 0.000000\"\n+\t\t\t\t\"1\" \"-823.286316 -374.872650 11840.093750 0.000000 108.008484 0.000000\"\n+\t\t\t\t\"2\" \"-668.304810 -217.494736 11840.093750 0.000000 153.824127 0.000000\"\n+\t\t\t\t\"3\" \"-1535.756470 -238.856689 11776.031250 0.000000 142.463699 0.000000\"\n+\t\t\t\t\"4\" \"-1458.373657 -119.980713 11776.031250 0.000000 170.238327 0.000000\"\n+\t\t\t\t\"5\" \"-1373.065796 -427.928955 11776.031250 0.000000 135.203018 0.000000\"\n+\t\t\t\t\"6\" \"-2354.094971 -857.293701 11552.093750 0.000000 68.872276 0.000000\"\n+\t\t\t\t\"7\" \"-2193.825684 -915.975647 11552.093750 0.000000 100.167282 0.000000\"\n+\t\t\t\t\"8\" \"-2110.593262 -754.761353 11552.093750 0.000000 138.832138 0.000000\"\n \t\t\t}\n \t\t}\n \t\t\"T\"\n \t\t{\n \t\t\t// A site\n \t\t\t\"0\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-73.786880 -905.851135 11840.093750 6.215020 -141.909775 0.000000\" \n-\t\t\t\t\"1\" \"-300.173615 -927.451782 11840.093750 14.465016 -124.639832 0.000000\" \n-\t\t\t\t\"2\" \"-330.812439 -799.745605 11840.093750 6.600021 -97.390060 0.000000\"\n-\t\t\t\t\"3\" \"-67.812881 -795.826904 11840.093750 4.345022 -141.445145 0.000000\"\n-\t\t\t\t\"4\" \"-545.310059 -735.743652 11840.093750 0.605010 175.599777 0.000000\"\n-\t\t\t\t\"5\" \"-537.468994 -581.356995 11840.093750 2.970011 -171.750366 0.000000\"\n+\t\t\t\t\"0\" \"-73.786880 -905.851135 11840.093750 0.000000 -141.909775 0.000000\" \n+\t\t\t\t\"1\" \"-300.173615 -927.451782 11840.093750 0.000000 -124.639832 0.000000\" \n+\t\t\t\t\"2\" \"-330.812439 -799.745605 11840.093750 0.000000 -97.390060 0.000000\"\n+\t\t\t\t\"3\" \"-67.812881 -795.826904 11840.093750 0.000000 -141.445145 0.000000\"\n+\t\t\t\t\"4\" \"-545.310059 -735.743652 11840.093750 0.000000 175.599777 0.000000\"\n+\t\t\t\t\"5\" \"-537.468994 -581.356995 11840.093750 0.000000 -171.750366 0.000000\"\n \t\t\t}\n \t\t\t// B site\n \t\t\t\"1\"\n \t\t\t{\n-\t\t\t\t\"0\" \"-2311.852539 1051.179688 11813.517578 0.219993 -21.645147 0.000000\"\n-\t\t\t\t\"1\" \"-2605.017090 911.943115 11815.585938 -0.274989 0.079643 0.000000\"\n-\t\t\t\t\"2\" \"-2621.069824 634.407532 11817.556641 3.300010 -78.405312 0.000000\"\n-\t\t\t\t\"3\" \"-2441.925049 667.737366 11808.093750 3.135013 -79.505333 0.000000\"\n-\t\t\t\t\"4\" \"-2470.786133 862.286621 11808.093750 0.715015 -12.735312 0.000000\"\n-\t\t\t\t\"5\" \"-2473.725586 1082.646484 11817.381836 1.045011 -18.810177 0.000000\"\n+\t\t\t\t\"0\" \"-2311.852539 1051.179688 11813.517578 0.000000 -21.645147 0.000000\"\n+\t\t\t\t\"1\" \"-2605.017090 911.943115 11815.585938 0.000000 0.079643 0.000000\"\n+\t\t\t\t\"2\" \"-2621.069824 634.407532 11817.556641 0.000000 -78.405312 0.000000\"\n+\t\t\t\t\"3\" \"-2441.925049 667.737366 11808.093750 0.000000 -79.505333 0.000000\"\n+\t\t\t\t\"4\" \"-2470.786133 862.286621 11808.093750 0.000000 -12.735312 0.000000\"\n+\t\t\t\t\"5\" \"-2473.725586 1082.646484 11817.381836 0.000000 -18.810177 0.000000\"\n \t\t\t}\n \t\t}\n \t}"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/styles/retakeloadout.css",
          "status": "modified",
          "additions": 0,
          "deletions": 20,
          "changes": 20,
          "patch": "@@ -172,26 +172,6 @@\n \topacity: 0;\n }\n \n-.RetakeLoadoutMenu--loadout-container.RetakeLoadoutMenu--loadout-container-0\n-{\n-\tanimation-delay: 0.15s;\n-}\n-\n-.RetakeLoadoutMenu--loadout-container.RetakeLoadoutMenu--loadout-container-1\n-{\n-\tanimation-delay: 0.25s;\n-}\n-\n-.RetakeLoadoutMenu--loadout-container.RetakeLoadoutMenu--loadout-container-2\n-{\n-\tanimation-delay: 0.45s;\n-}\n-\n-.RetakeLoadoutMenu--loadout-container.RetakeLoadoutMenu--loadout-container-3\n-{\n-\tanimation-delay: .5s;\n-}\n-\n @keyframes 'deal'\n {\n \t0%"
        },
        {
          "filename": "game/csgo/pak01_dir/scripts/workshop_cvar_whitelist.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -223,6 +223,7 @@\n \t\t\"mp_death_drop_defuser\",\t\t\t\t\t\t\t\t\n \t\t\"mp_death_drop_grenade\",\t\t\t\t\t\t\t\t\n \t\t\"mp_death_drop_gun\",\t\t\t\t\t\t\t\t\t\n+\t\t\"mp_death_drop_taser\",\n \t\t\"mp_death_drop_healthshot\",\n \t\t\"mp_deathcam_skippable\",\t\t\t\t\t\t\t\t\n \t\t\"mp_default_team_winner_no_objective\",\t\t\t\t\t"
        },
        {
          "filename": "game/csgo/readonly_tools_asset_info.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -134923,3 +134923,4 @@ sounds/graphs/reverb_9_mediumchamber.vsnd\n panorama/layout/hud/hudmutators.vxml\n panorama/styles/hud/hudmutators.vcss\n sounds/graphs/bighead_pitch.vsnd\n+panorama/images/econ/keychains/bud2025/kc_bud2025_png.vtex"
        },
        {
          "filename": "game/csgo/steam.inf",
          "status": "modified",
          "additions": 6,
          "deletions": 6,
          "changes": 12,
          "patch": "@@ -1,9 +1,9 @@\n-ClientVersion=2000940\n-ServerVersion=2000940\n-PatchVersion=1.41.9.5\n+ClientVersion=2000942\n+ServerVersion=2000942\n+PatchVersion=1.41.9.6\n ProductName=cs2\n appID=730\n ServerAppID=2347773\n-SourceRevision=11198439\n-VersionDate=Nov 02 2026\n-VersionTime=16:17:08\n+SourceRevision=11206718\n+VersionDate=Nov 04 2026\n+VersionTime=16:01:59"
        },
        {
          "filename": "game/csgo_addons/cs_script_demo/panorama_stripped/maps/scripts/chess.js",
          "status": "modified",
          "additions": 10,
          "deletions": 10,
          "changes": 20,
          "patch": "@@ -1,6 +1,6 @@\n // @ts-nocheck\n \n-import { Instance, PointTemplate } from \"cs_script/point_script\";\n+import { Instance, PointTemplate, Entities } from \"cs_script/point_script\";\n \n function ChessJS() {\n        \n@@ -3474,7 +3474,7 @@ let chess = new Chess();\n \n const centers = {};\n function FindCenters() {\n-    const entities = Instance.FindEntitiesByClass(\"info_target\");\n+    const entities = Entities.FindByClass(\"info_target\");\n     for (const ent of entities) {\n         const name = ent.GetEntityName();\n         if (/^[a-h][1-8]$/.test(name)) {\n@@ -3501,14 +3501,14 @@ async function RunChess() {\n         await AnimateMove(move);\n     }\n \n-    Instance.EntFireAtName({ name: `snd.chess.${chess.turn()}.win`, input: \"StartSound\" });\n+    Entities.FireInput({ name: `snd.chess.${chess.turn()}.win`, input: \"StartSound\" });\n     Instance.SetNextThink(Instance.GetGameTime() + 10);\n     bIsRunning = false;\n }\n \n function RenderPieces() {\n                                                                     \n-    const existing = Instance.FindEntitiesByName(\"chess.piece.*\");\n+    const existing = Entities.FindByName(\"chess.piece.*\");\n \n     for (const line of chess.board()) {\n         for (const square of line) {\n@@ -3545,12 +3545,12 @@ function RenderPieces() {\n }\n \n function PlaySoundOnEnt(soundEntName, targetEntName) {\n-    Instance.EntFireAtName({ name: soundEntName, input: \"SetSourceEntity\", value: targetEntName });\n-    Instance.EntFireAtName({ name: soundEntName, input: \"StartSound\" });\n+    Entities.FireInput({ name: soundEntName, input: \"SetSourceEntity\", value: targetEntName });\n+    Entities.FireInput({ name: soundEntName, input: \"StartSound\" });\n }\n \n async function AnimateMove(move) {\n-    const piece = Instance.FindEntitiesByName(`chess.piece.${move.color}.${move.piece}`).find((p) => p.square === move.from);\n+    const piece = Entities.FindByName(`chess.piece.${move.color}.${move.piece}`).find((p) => p.square === move.from);\n     if (!piece) {\n         RenderPieces();\n         return;\n@@ -3568,7 +3568,7 @@ async function AnimateMove(move) {\n         if (move.isCapture()) {\n             PlaySoundOnEnt(\"chess.snd.capture\", piece.GetEntityName());\n             const capturedColor = move.color === WHITE ? BLACK : WHITE;\n-            const captured = Instance.FindEntitiesByName(`chess.piece.${capturedColor}.${move.captured}`).find((p) => p.square === move.to);\n+            const captured = Entities.FindByName(`chess.piece.${capturedColor}.${move.captured}`).find((p) => p.square === move.to);\n             if (captured) {\n                 await DiePiece(captured);\n             }\n@@ -3623,9 +3623,9 @@ async function DiePiece(piece) {\n }\n \n function SpawnPiece(type, color) {\n-    let spawner = Instance.FindEntityByName(`chess.template.${type}.${color}`);\n+    let [spawner] = Entities.FindByName(`chess.template.${type}.${color}`);\n     if (!spawner) {\n-        spawner = Instance.FindEntityByName(`chess.template.${type}`);\n+        [spawner] = Entities.FindByName(`chess.template.${type}`);\n     }\n     if (spawner instanceof PointTemplate) {\n         const spawned = spawner.ForceSpawn();"
        },
        {
          "filename": "game/csgo_addons/cs_script_demo/panorama_stripped/maps/scripts/grenadetraining.js",
          "status": "modified",
          "additions": 32,
          "deletions": 32,
          "changes": 64,
          "patch": "@@ -1,4 +1,4 @@\n-import { Console, Entity, Instance } from \"cs_script/point_script\";\n+import { Console, Entity, Instance, Entities } from \"cs_script/point_script\";\n \n let Rounds = 0;\n let Hits = 0;\n@@ -11,9 +11,9 @@ let TargetHard = \"targetbox.hard\";\n function SetNextTarget() {\n     Rounds++;\n \n-    Instance.EntFireAtName({ name: \"worldtext.rounds\", input: \"SetMessage\", value: Rounds });\n-    Instance.EntFireAtName({ name: \"cover.*\", input: \"Enable\" });\n-    Instance.EntFireAtName({ name: \"tele.reset\", input: \"Teleport\" });\n+    Entities.FireInput({ name: \"worldtext.rounds\", input: \"SetMessage\", value: Rounds });\n+    Entities.FireInput({ name: \"cover.*\", input: \"Enable\" });\n+    Entities.FireInput({ name: \"tele.reset\", input: \"Teleport\" });\n \n                                                               \n     let NewTarget = Math.floor(Math.random() * 11) + 1;\n@@ -24,27 +24,27 @@ function SetNextTarget() {\n     if (Rounds > 7) difficulty = \"hard\";\n     else if (Rounds > 4) difficulty = \"med\";\n \n-    Instance.EntFireAtName({ name: `cover.${Target}`, input: \"Disable\" });\n-    Instance.EntFireAtName({ name: `tele.${Target}`, input: \"TeleportEntity\", value: `targetbox.${difficulty}` });\n+    Entities.FireInput({ name: `cover.${Target}`, input: \"Disable\" });\n+    Entities.FireInput({ name: `tele.${Target}`, input: \"TeleportEntity\", value: `targetbox.${difficulty}` });\n }\n \n                                                 \n Instance.OnScriptInput(\"ResetAndCleanUp\", () => {\n-    Instance.EntFireAtName({ name: \"trigger.start\", input: \"Enable\" });\n-    Instance.EntFireAtName({ name: \"trigger.end_early\", input: \"Disable\" });\n-    Instance.EntFireAtName({ name: \"worldtext.go_here\", input: \"Enable\" });\n-    Instance.EntFireAtName({ name: \"relay.start_countdown\", input: \"CancelPending\" });\n-\n-    Instance.EntFireAtName({ name: \"worldtext.training_countdown_dyn\", input: \"SetMessage\", value: \"3\" });\n-    Instance.EntFireAtName({ name: \"worldtext.training_countdown_static\", input: \"Disable\" });\n-    Instance.EntFireAtName({ name: \"worldtext.training_countdown_dyn\", input: \"Disable\" });\n-    Instance.EntFireAtName({ name: \"board.timer\", input: \"Disable\" });\n-    Instance.EntFireAtName({ name: \"board.timer\", input: \"ResetTimer\" });\n-    Instance.EntFireAtName({ name: \"snd.tick\", input: \"StopSound\" });\n-    Instance.EntFireAtName({ name: \"tele.reset\", input: \"Teleport\" });\n-    Instance.EntFireAtName({ name: \"cover.*\", input: \"Enable\" });\n-    Instance.EntFireAtName({ name: \"worldtext.hits\", input: \"SetMessage\", value: \"0\" });\n-    Instance.EntFireAtName({ name: \"worldtext.rounds\", input: \"SetMessage\", value: \"0\" });\n+    Entities.FireInput({ name: \"trigger.start\", input: \"Enable\" });\n+    Entities.FireInput({ name: \"trigger.end_early\", input: \"Disable\" });\n+    Entities.FireInput({ name: \"worldtext.go_here\", input: \"Enable\" });\n+    Entities.FireInput({ name: \"relay.start_countdown\", input: \"CancelPending\" });\n+\n+    Entities.FireInput({ name: \"worldtext.training_countdown_dyn\", input: \"SetMessage\", value: \"3\" });\n+    Entities.FireInput({ name: \"worldtext.training_countdown_static\", input: \"Disable\" });\n+    Entities.FireInput({ name: \"worldtext.training_countdown_dyn\", input: \"Disable\" });\n+    Entities.FireInput({ name: \"board.timer\", input: \"Disable\" });\n+    Entities.FireInput({ name: \"board.timer\", input: \"ResetTimer\" });\n+    Entities.FireInput({ name: \"snd.tick\", input: \"StopSound\" });\n+    Entities.FireInput({ name: \"tele.reset\", input: \"Teleport\" });\n+    Entities.FireInput({ name: \"cover.*\", input: \"Enable\" });\n+    Entities.FireInput({ name: \"worldtext.hits\", input: \"SetMessage\", value: \"0\" });\n+    Entities.FireInput({ name: \"worldtext.rounds\", input: \"SetMessage\", value: \"0\" });\n \n     Console.SetConvar(\"sv_infinite_ammo\", 0);\n     const player = Instance.GetPlayerController(0)?.GetPlayerPawn();\n@@ -53,10 +53,10 @@ Instance.OnScriptInput(\"ResetAndCleanUp\", () => {\n });\n \n Instance.OnScriptInput(\"StartTraining\", () => {\n-    Instance.EntFireAtName({ name: \"trigger.start\", input: \"Disable\" });\n-    Instance.EntFireAtName({ name: \"trigger.end_early\", input: \"Enable\" });\n-    Instance.EntFireAtName({ name: \"worldtext.go_here\", input: \"Disable\" });\n-    Instance.EntFireAtName({ name: \"relay.start_countdown\", input: \"Trigger\" });\n+    Entities.FireInput({ name: \"trigger.start\", input: \"Disable\" });\n+    Entities.FireInput({ name: \"trigger.end_early\", input: \"Enable\" });\n+    Entities.FireInput({ name: \"worldtext.go_here\", input: \"Disable\" });\n+    Entities.FireInput({ name: \"relay.start_countdown\", input: \"Trigger\" });\n \n     Console.SetConvar(\"sv_infinite_ammo\", 1);\n     const player = Instance.GetPlayerController(0)?.GetPlayerPawn();\n@@ -70,8 +70,8 @@ Instance.OnScriptInput(\"StartTraining\", () => {\n                                                  \n Instance.OnScriptInput(\"GrenadeHit\", () => {\n     Hits++;\n-    Instance.EntFireAtName({ name: \"snd.hit\", input: \"StartSound\" });\n-    Instance.EntFireAtName({ name: \"worldtext.hits\", input: \"SetMessage\", value: Hits });\n+    Entities.FireInput({ name: \"snd.hit\", input: \"StartSound\" });\n+    Entities.FireInput({ name: \"worldtext.hits\", input: \"SetMessage\", value: Hits });\n     if (trackedProjectile && trackedProjectile.IsValid()) {\n         trackedProjectile.Remove();\n         trackedProjectile = undefined;\n@@ -83,11 +83,11 @@ Instance.OnScriptInput(\"SetNextTarget\", () => {\n     if (Rounds < 10) {\n         SetNextTarget();\n     } else {\n-        Instance.EntFireAtName({ name: \"snd.end\", input: \"StartSound\" });\n-        Instance.EntFireAtName({ name: \"board.timer\", input: \"Disable\" });\n-        Instance.EntFireAtName({ name: \"board.timer\", input: \"ResetTimer\" });\n-        Instance.EntFireAtName({ name: \"tele.reset\", input: \"Teleport\" });\n-        Instance.EntFireAtName({ name: \"cover.*\", input: \"Enable\" });\n+        Entities.FireInput({ name: \"snd.end\", input: \"StartSound\" });\n+        Entities.FireInput({ name: \"board.timer\", input: \"Disable\" });\n+        Entities.FireInput({ name: \"board.timer\", input: \"ResetTimer\" });\n+        Entities.FireInput({ name: \"tele.reset\", input: \"Teleport\" });\n+        Entities.FireInput({ name: \"cover.*\", input: \"Enable\" });\n     }\n });\n "
        },
        {
          "filename": "game/csgo_addons/cs_script_demo/panorama_stripped/maps/scripts/mdlchange.js",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,7 +1,7 @@\n-import { Instance, BaseModelEntity, Console } from \"cs_script/point_script\";\n+import { Instance, BaseModelEntity, Console, Entities } from \"cs_script/point_script\";\n \n function GetProp() {\n-    const ent = Instance.FindEntityByName(\"mdlchange.prop_dyn\");\n+    const [ent] = Entities.FindByName(\"mdlchange.prop_dyn\");\n     if (ent instanceof BaseModelEntity) return ent;\n }\n function Init() {"
        },
        {
          "filename": "game/csgo_addons/cs_script_demo/panorama_stripped/maps/scripts/setup.js",
          "status": "modified",
          "additions": 12,
          "deletions": 5,
          "changes": 17,
          "patch": "@@ -1,4 +1,4 @@\n-import { CSDamageFlags, CSDamageTypes, Entity, Instance, Console } from \"cs_script/point_script\";\n+import { CSDamageFlags, CSDamageTypes, Entity, Instance, Console, Entities } from \"cs_script/point_script\";\n \n Console.SetConvar(\"sv_cheats\", true);\n Console.SetConvar(\"mp_warmup_offline_enabled\", true);\n@@ -16,12 +16,19 @@ Instance.OnPlayerActivate(({ player }) => {\n     ShowWelcome(player.GetPlayerSlot());\n });\n \n-Instance.OnModifyPlayerDamage(({ player }) => {\n-    if (player.GetOriginalPlayerController().IsBot()) {\n+Instance.OnModifyPlayerDamage(({ player, damageTypes }) => {\n+    if (player.GetOriginalPlayerController().IsBot() && !(damageTypes & CSDamageTypes.BLAST)) {\n         return { damageFlags: CSDamageFlags.PREVENT_DEATH };\n     }\n });\n \n+Instance.OnPlayerKill(async ({ player }) => {\n+    await Instance.Delay(1);\n+    if (player.IsValid() && !player.IsAlive()) {\n+        player.Reset();\n+    }\n+});\n+\n Instance.OnPlayerDamage((event) => {\n     if (event.damageTypes == CSDamageTypes.SLASH) {\n         Instance.QueueAfterThinks(() => {\n@@ -35,9 +42,9 @@ Instance.OnPlayerDamage((event) => {\n let welcomeLayout = null;\n function GetWelcomeLayout() {\n     if (!(welcomeLayout instanceof Entity) || !welcomeLayout.IsValid()) {\n-        welcomeLayout = Instance.FindEntitiesByName(\"welcome_layout\")[0];\n+        [welcomeLayout] = Entities.FindByName(\"welcome_layout\");\n     }\n-    return Instance.FindEntitiesByName(\"welcome_layout\")[0];\n+    return Entities.FindByName(\"welcome_layout\")[0];\n }\n \n function ShowWelcome(playerSlot) {"
        },
        {
          "filename": "manifests/manifest_2347770.txt",
          "status": "modified",
          "additions": 13,
          "deletions": 13,
          "changes": 26,
          "patch": "@@ -1,16 +1,16 @@\n Content Manifest for Depot 2347770 \n \n-Manifest ID / date     : 3690356453703667427 / 11/03/2026 00:25:56 \n+Manifest ID / date     : 6679288287140932208 / 11/05/2026 00:08:51 \n Total number of files  : 2992 \n-Total number of chunks : 65055 \n-Total bytes on disk    : 65048085465 \n-Total bytes compressed : 55568715408 \n+Total number of chunks : 65062 \n+Total bytes on disk    : 65068271825 \n+Total bytes compressed : 55570003984 \n \n \n           Size Chunks File SHA                                 Flags Name\n-            10      1 e1aceebbdd3814eb1f3e4216702f7dc8e3ca6465     0 game\\bin\\built_from_cl.txt\n-         10347      1 34e431cd4393ac0204703f2a6d9f19c224fd1479     0 game\\bin\\win64\\csgo.signatures\n-          8941      1 f2e4452e9be7e5f6ccbbbd7979082a1321dd0aed     0 game\\bin\\win64\\vpk.signatures\n+            10      1 9ba45a297ae3ca0a08ec45d8ae26d7d1b752c6a8     0 game\\bin\\built_from_cl.txt\n+         10347      1 2035f417702707e841cbe1613c06ab8503603c05     0 game\\bin\\win64\\csgo.signatures\n+          8941      1 03efeb7ac1e026f881ec21af5fc97215ce83aa7b     0 game\\bin\\win64\\vpk.signatures\n          51357      1 0f5112698b482f8c1190c89192a4c0c8b0e50198     0 game\\core\\cfg\\sfm_default_animation_groups.vcfg\n           2270      1 ab4e0ee92367ba6d28a89dae8f6000631ffdb641     0 game\\core\\cfg\\user_keys_default.vcfg\n           2474      1 c4ff2f85048812f02c2403b0675208acfc00c7b0     0 game\\core\\gameinfo.gi\n@@ -2257,7 +2257,7 @@ Total bytes compressed : 55568715408\n           3870      1 0db16b3ddb43aa660ed8b47e0fad44dc19f8160f     0 game\\csgo\\cfg\\gamemode_demolition.cfg\n           4165      1 36f4e695fa4f6e0cb3b2f6cfa0aacaf03d2624e9     0 game\\csgo\\cfg\\gamemode_dm_freeforall.cfg\n            510      1 e5390ad84cda3115dce18debf74151f22d51c1b4     0 game\\csgo\\cfg\\gamemode_new_user_training.cfg\n-          4243      1 2ed4a09a77434f680df8ecc378758ba13593870a     0 game\\csgo\\cfg\\gamemode_retakecasual.cfg\n+          4243      1 38e1c1525801b3db1bd03aa4209e5672105b86e3     0 game\\csgo\\cfg\\gamemode_retakecasual.cfg\n           4865      1 38f865bec83a4a4512dc39d9245254e27bbf4598     0 game\\csgo\\cfg\\gamemode_rush.cfg\n            132      1 93ee145982d5a1883987fee0e5940bab198819c6     0 game\\csgo\\cfg\\gamemode_rush_offline.cfg\n           3884      1 e958e59b6dcdd8a4476d16a8e146046d073c50bd     0 game\\csgo\\cfg\\gamemode_teamdeathmatch.cfg\n@@ -2438,7 +2438,7 @@ Total bytes compressed : 55568715408\n      118404050    113 796c7932cfeb6772b51013f28bd99bfdfb40483d     0 game\\csgo\\pak01_033.vpk\n      116169795    111 e382335666c33007e4a346ded29843a08e8656eb     0 game\\csgo\\pak01_034.vpk\n      104201764    102 d897179aaadd2b0de26e19afe39037903f6f424a     0 game\\csgo\\pak01_035.vpk\n-     120988884    138 f58ecf9bfb4813e19e008a7a63c2f7d48b0a059c     0 game\\csgo\\pak01_036.vpk\n+     107129742    119 5c04e5e3f4b28a59a7e80ffbd90182e260e883b6     0 game\\csgo\\pak01_036.vpk\n      109137813    105 c1c5d1aeea369e80997338b7f41f8cadb17bbfdb     0 game\\csgo\\pak01_037.vpk\n      116538440    112 cf02841fa129fbb93933f539cc8ae0fcb54de2d9     0 game\\csgo\\pak01_038.vpk\n      103037018    103 83bd86a8c8cdc17b353c54cd4cf6a1e347a59e63     0 game\\csgo\\pak01_039.vpk\n@@ -2903,11 +2903,11 @@ Total bytes compressed : 55568715408\n      103652491    105 97b078393d02aaed75aa0d5f232ec9573a608d48     0 game\\csgo\\pak01_498.vpk\n      105338067    116 4af7ebb5429b351ff2b76c4f9b300cd176157ada     0 game\\csgo\\pak01_499.vpk\n      102090495    101 6cac088baddee5012d7a47318b06d119f3cbb859     0 game\\csgo\\pak01_500.vpk\n-      99621956    106 9d2ae31cb7b16513b47b2aa6bc1a5b55a6ad8d43     0 game\\csgo\\pak01_501.vpk\n+     102952206    111 7a5881c988664128bc59b889e71fb518b980b53f     0 game\\csgo\\pak01_501.vpk\n       99618250    105 568b65b644448b85efe132f8eaebe59c309c3fb3     0 game\\csgo\\pak01_502.vpk\n      100220508    102 60654a3f3231ef5de3b458ed332ba064c153c465     0 game\\csgo\\pak01_503.vpk\n-      41381566     46 444eee2d83cbd067eec75b923992fa35b130c2d4     0 game\\csgo\\pak01_504.vpk\n-       7713274      8 7811a1e71538f431f6e160c41171ffa9efd0af6c     0 game\\csgo\\pak01_dir.vpk\n+      72096213     84 e53a6f1a1fe08c11b7f3a77ca4a8828dbe1b4408     0 game\\csgo\\pak01_504.vpk\n+       7713879      8 988c4dcfc38893dd3906755b562d81bcadbf2364     0 game\\csgo\\pak01_dir.vpk\n          11893      1 d2f5c237fcac89835ab901bf3cc83850c71d9b46     0 game\\csgo\\panorama\\fonts\\fonts.conf\n         107848      1 90edfc11fa568cd0fb5b9d6e6d369dddadfdb8c4     0 game\\csgo\\panorama\\fonts\\notomono-regular.ttf\n         310556      1 84e39ddc72cd1d2ac4be132d235979f10f916c2b     0 game\\csgo\\panorama\\fonts\\notosans-bold.ttf\n@@ -2996,7 +2996,7 @@ Total bytes compressed : 55568715408\n      303670574    290 d2d77a7357436cf6fb69b704cebc84718609f70e     0 game\\csgo\\shaders_vulkan_003.vpk\n       25004138     28 7a80e74bbd9d763f27ad8788694da6d9d81cc99e     0 game\\csgo\\shaders_vulkan_004.vpk\n          41884      1 a9b38a712dcebbc8a985763a9134ec66c4264688     0 game\\csgo\\shaders_vulkan_dir.vpk\n-           190      1 2acf249fb98158c6b47a3af8f6254953ed9e3f50     0 game\\csgo\\steam.inf\n+           190      1 9d29a1a0c5e3346ac20def35d20570b56048452a     0 game\\csgo\\steam.inf\n            209      1 cb2eaab8dbda9f075491a5410326356e127f60ec     0 game\\csgo_lv\\gameinfo.gi\n            135      1 7769174b103a021d6390cb2a31b758dbfff04639     0 game\\csgo_lv\\gameinfo_branchspecific.gi\n         473822      1 f5ca24bf12b20fee2ffb5d8bbc465ba8805d8abe     0 game\\thirdpartylegalnotices.txt"
        },
        {
          "filename": "manifests/manifest_2347771.txt",
          "status": "modified",
          "additions": 6,
          "deletions": 6,
          "changes": 12,
          "patch": "@@ -1,10 +1,10 @@\n Content Manifest for Depot 2347771 \n \n-Manifest ID / date     : 5808144614069275570 / 11/03/2026 00:26:34 \n+Manifest ID / date     : 3019944380727688040 / 11/05/2026 00:09:34 \n Total number of files  : 183 \n Total number of chunks : 7219 \n-Total bytes on disk    : 7753537022 \n-Total bytes compressed : 5011473536 \n+Total bytes on disk    : 7753523710 \n+Total bytes compressed : 5011490592 \n \n \n           Size Chunks File SHA                                 Flags Name\n@@ -54,7 +54,7 @@ Total bytes compressed : 5011473536\n         567656      1 79759ec5c92853b73627da14e5e70f6c6c580a78     0 game\\bin\\win64\\phonon4.dll\n       13950616     14 d97d9e5d6a64e98bd812ebe70a023c39a24e833b     0 game\\bin\\win64\\physicsbuilder.dll\n        1522840      2 eba06453afcdd6d6bf4b608fcc3fe6dcde592cb7     0 game\\bin\\win64\\propertyeditor.dll\n-       2031768      2 6f40ef4d08911950fad3e1a7fb65b4ec1672b3ee     0 game\\bin\\win64\\pulse_system.dll\n+       2032792      2 4029fe37dc9abc273fedded7eb5a26dbf6716f06     0 game\\bin\\win64\\pulse_system.dll\n         131432      1 3177661f6e066460f2c859d2d5453323b68d6eda     0 game\\bin\\win64\\Qt5Concurrent.dll\n        6288744      6 5f5173c825810bbd849e32b5e6e2cb32f6c456d2     0 game\\bin\\win64\\Qt5Core.dll\n        7007080      7 08882a63e4c0962b33376da66224655f2b1d5e06     0 game\\bin\\win64\\Qt5Gui.dll\n@@ -110,10 +110,10 @@ Total bytes compressed : 5011473536\n        3185298      4 10bea5cfe6883540880c748e9506a04ad11e53ca     0 game\\core\\shaders_pc_000.vpk\n          25563      1 72204b8136ab7b8df21a52fb0b8b674f8c578b06     0 game\\core\\shaders_pc_dir.vpk\n        1728360      2 4e48ff45949c7f3cd8fd8ab5b7514ae27f44e53a     0 game\\csgo\\bin\\legacy\\csgo_legacy_app.exe\n-      39224472     38 51a449b7cac525d9470b3d98debc6a43467ead20     0 game\\csgo\\bin\\win64\\client.dll\n+      39227544     38 a9b6232c2c6286eaa7d3df5cf6161bd08b40ff71     0 game\\csgo\\bin\\win64\\client.dll\n        1389208      2 425f2ec89bdaa5b0d2ca47945fa08ec906661749     0 game\\csgo\\bin\\win64\\host.dll\n        1890968      2 ebcf0d685e5347a5e246521cc0ee694f5d266bb3     0 game\\csgo\\bin\\win64\\matchmaking.dll\n-      34690200     34 b3c3e96f47acbdcf00655a3d7e5db509480eeef5     0 game\\csgo\\bin\\win64\\server.dll\n+      34672792     34 d190d3118a36646eb284641f8c455f3be33ca56f     0 game\\csgo\\bin\\win64\\server.dll\n      115209034    117 4bbd01e43063ebade958bb509725b1b48c811b00     0 game\\csgo\\shaders_pc_000.vpk\n      189827159    182 7829b4ede09333c4e30a53d1ef958b9baeaeac39     0 game\\csgo\\shaders_pc_001.vpk\n       38973836     41 55f4f1a11b02a8a25a77a452d24ae14aa04b9f0b     0 game\\csgo\\shaders_pc_002.vpk"
        },
        {
          "filename": "manifests/manifest_2347773.txt",
          "status": "modified",
          "additions": 6,
          "deletions": 6,
          "changes": 12,
          "patch": "@@ -1,10 +1,10 @@\n Content Manifest for Depot 2347773 \n \n-Manifest ID / date     : 4551386601247986792 / 11/03/2026 00:27:00 \n+Manifest ID / date     : 8513165868182791792 / 11/05/2026 00:09:52 \n Total number of files  : 135 \n Total number of chunks : 6673 \n-Total bytes on disk    : 7224465798 \n-Total bytes compressed : 4605728448 \n+Total bytes on disk    : 7224511782 \n+Total bytes compressed : 4605734992 \n \n \n           Size Chunks File SHA                                 Flags Name\n@@ -34,7 +34,7 @@ Total bytes compressed : 4605728448\n        3202820      4 fec2f55b60399acd70d543ea35633f89a97eb771     0 game\\bin\\linuxsteamrt64\\libpanorama_text_pango.so\n        8612056      9 4d746f89b7d06f57b7b6ef1a8bf8f169924fab5a     0 game\\bin\\linuxsteamrt64\\libparticles.so\n       40786720     40 850311e7b530d04bcfbdee1e3e7d026a7791098d     0 game\\bin\\linuxsteamrt64\\libphonon.so\n-       2357916      3 a0122e3156918f8c58a7f6be93fc823243a54b6f     0 game\\bin\\linuxsteamrt64\\libpulse_system.so\n+       2358716      3 ad8da2327a5343cda889ba3e57870efa9f9740d5     0 game\\bin\\linuxsteamrt64\\libpulse_system.so\n        3679424      4 e2225dec8d51bdfc0d53a6a54d54849487df9e89     0 game\\bin\\linuxsteamrt64\\librendersystemempty.so\n        9199516     10 b2c9ee0d939b25727cb56dbd89fbee4755d98aa0     0 game\\bin\\linuxsteamrt64\\librendersystemvulkan.so\n         800200      1 77686038b3b2d330b48bddf55902d173b1f842a8     0 game\\bin\\linuxsteamrt64\\libresourcesystem.so\n@@ -66,10 +66,10 @@ Total bytes compressed : 4605728448\n        1296400      2 bd6d7e2be9b1a526f017bc474c84296569cf23d7     0 game\\bin\\linuxsteamrt64\\libvscript.so\n        4570212      5 7464ba7da046b1de971e290bfcf582d20aeaedde     0 game\\bin\\linuxsteamrt64\\libworldrenderer.so\n           3822      1 956919b920713ce452f46c20cf8643674f7543f7     0 game\\cs2.sh\n-      74208760     71 34c9b737c072b81db28a1e84bb5c72404ce9bd19     0 game\\csgo\\bin\\linuxsteamrt64\\libclient.so\n+      74211000     71 45f0b9610eecb46dd73ac44ca30ab962f042445b     0 game\\csgo\\bin\\linuxsteamrt64\\libclient.so\n        3184412      4 adad77afb94069ba33399c4ed33a5b4f3a64fb04     0 game\\csgo\\bin\\linuxsteamrt64\\libhost.so\n        3775044      4 5770b453a084c4d0bb77ca94860111b7bfdaaadf     0 game\\csgo\\bin\\linuxsteamrt64\\libmatchmaking.so\n-      41807736     40 cb4bab97878a1f04990edf9b68d1240f473b606e     0 game\\csgo\\bin\\linuxsteamrt64\\libserver.so\n+      41850680     40 48924100e9a3a4e17af781cb1da835641a29d449     0 game\\csgo\\bin\\linuxsteamrt64\\libserver.so\n      182648578    175 d4b7d7aea361a8b94c54e79904d642d712a1a3f5     0 game\\csgo_community_addons\\cs_shelter\\cs_shelter_000.vpk\n      107052112    105 2c61877687a4e433f04a62340fb3ce54b70e039c     0 game\\csgo_community_addons\\cs_shelter\\cs_shelter_001.vpk\n      106101480    104 e5dc305d96a55ae88a396ac6d98037209b4520ce     0 game\\csgo_community_addons\\cs_shelter\\cs_shelter_002.vpk"
        },
        {
          "filename": "manifests/manifest_2347779.txt",
          "status": "modified",
          "additions": 20,
          "deletions": 20,
          "changes": 40,
          "patch": "@@ -1,10 +1,10 @@\n Content Manifest for Depot 2347779 \n \n-Manifest ID / date     : 9144463342521858931 / 11/03/2026 00:27:26 \n+Manifest ID / date     : 5209724922577403770 / 11/05/2026 00:10:12 \n Total number of files  : 909 \n-Total number of chunks : 2523 \n-Total bytes on disk    : 2108139011 \n-Total bytes compressed : 576285616 \n+Total number of chunks : 2524 \n+Total bytes on disk    : 2108141791 \n+Total bytes compressed : 576286224 \n \n \n           Size Chunks File SHA                                 Flags Name\n@@ -619,13 +619,13 @@ Total bytes compressed : 576285616\n        1621570      2 e3d9cdb314cae29e2a1c5bc8a35f8801cd078c17     0 content\\csgo_addons\\addon_template\\sounds\\interior_01.wav\n        1311024      2 dc14d2a9922760330712f093eed8ab75dc709070     0 content\\csgo_addons\\addon_template\\sounds\\vent_01.wav\n       68886528     68 59ec2879ff3b11fea33042a32c80e6493cd47113     0 content\\csgo_addons\\cs_script_demo\\maps\\cs_script_demo.vmap\n-        142016      1 d2250b59abe01005d2cdf93f782ac8d99b416df3     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\chess.js\n-          4777      1 08ed91c65f79c27090a62eb786a049e59ec816ef     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\grenadetraining.js\n+        141974      1 2f0711f03e4faa839021921e22cb51baddd543e4     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\chess.js\n+          4667      1 9b275310a44cdcd9fd822f1c968a7bb3e3c5220e     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\grenadetraining.js\n            124      1 22a4ad6b72ccca4118d03ccb0d02f9f1f7b559d0     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\hello.js\n           1508      1 f576a9fe52176f409d268ab6107a119c9250e034     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\input.js\n-          1768      1 efad58a778fb6617e34f3eee454500547f5b979e     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\mdlchange.js\n-         52790      1 a3caed0a9858b2ee9d4a005558da3236d37010f9     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\point_script.d.ts\n-          2092      1 2ff2ecb556d00d6e00d026ba3860cb0977844155     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\setup.js\n+          1774      1 78e5c4937ae89c8b49af0594308cd38d64c2fa89     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\mdlchange.js\n+         55136      1 94a37ef72e5e9d67fd51d1922e25425701ac2e7c     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\point_script.d.ts\n+          2304      1 0d1e9adb823d080002b1a5e48b7bbd592d585a15     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\setup.js\n           6476      1 b26cb1c845028c2a73c610f66654009d12865dcd     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\trace.js\n            141      1 d38bb2dbf61185966292fa1c1aa57a86e5171beb     0 content\\csgo_addons\\cs_script_demo\\maps\\scripts\\tsconfig.json\n            344      1 33085b2472c3efcdebb61a0cc4f2aec675f79166     0 content\\csgo_addons\\cs_script_demo\\panorama\\layout\\custom_game\\welcome.xml\n@@ -638,7 +638,7 @@ Total bytes compressed : 576285616\n        5703320      6 265f267641ffa2f5f8eacca5ce3ae23c95c15b01     0 game\\bin\\win64\\assetsystem.dll\n        1529856      2 45e7d0873608e5424312fa289a270f2faacfe8fa     0 game\\bin\\win64\\bc7e.dll\n         396952      1 d40100945a08d047d65a8f8c1ba557351467136b     0 game\\bin\\win64\\cs2_build_econ_items_workshop.exe\n-         13866      1 22ce12bf18f6df3737c2ac7a83452663ed531f04     0 game\\bin\\win64\\csgo.signatures\n+         13866      1 4e91d62ce49f83b21a49316d8e255cb52939be20     0 game\\bin\\win64\\csgo.signatures\n        1271448      2 e0c0511657da151a4b8546e1ccb0f2eb5e6c6a40     0 game\\bin\\win64\\csgocfg.exe\n       15683736     15 2787c3be064fd2215239c7fe9cb6f573d4984d9a     0 game\\bin\\win64\\cs_mdl_import.exe\n        1196696      2 5691c2eec39a867bdb053d6880e5bc18b0bfde2a     0 game\\bin\\win64\\dmxconvert.exe\n@@ -721,7 +721,7 @@ Total bytes compressed : 576285616\n         133435      1 5c5acf7bffba281b1fb2de939a6953c385e26ac3     0 game\\csgo\\lighting\\postprocessing\\editor\\toolsscene_default.vpost_c\n           3823      1 aaa9517703492629cade78571c39f5fdc2c417e3     0 game\\csgo\\models_gamedata.fgd\n           1559      1 ccef3c777e99029f1956e3ad23a718a99fd36d14     0 game\\csgo\\postprocessing.fgd\n-      50760417     51 2864b89d3750e3547f9063365e334dca0fcd55c5     0 game\\csgo\\readonly_tools_asset_info.bin\n+      50760653     52 93546dbe6f18a664cf6fe049d26d6fa2669b54c1     0 game\\csgo\\readonly_tools_asset_info.bin\n           3009      1 8374c54025aad8c3d4a72b5f7f198d99951b7844     0 game\\csgo\\tools\\cs2_icon_gen\\icon_camera.png\n           2390      1 436ef3b91600906f462a33b9973b3f0955ddf1d6     0 game\\csgo\\tools\\cs2_icon_gen\\icon_item.png\n           2566      1 d78fd6c17e836a35c1cff4b375de7928ea5aea40     0 game\\csgo\\tools\\cs2_icon_gen\\icon_light_fill.png\n@@ -896,24 +896,24 @@ Total bytes compressed : 576285616\n         124548      1 20a6acffa7ca7b25b9d9877c122fa093fa57ff0b     0 game\\csgo_addons\\addon_template\\sounds\\vent_01.vsnd_c\n             43      1 5c3b6d056cc345ec397072c83b3ee35b9a297c54     0 game\\csgo_addons\\cs_script_demo\\addoninfo.txt\n        9365499      9 ec299d7ace3af9c2dc9389711f8245648e98f0a1     0 game\\csgo_addons\\cs_script_demo\\maps\\cs_script_demo.vpk\n-        142896      1 b32b537abcbf37d3142ff9e6f993054f36794cc0     0 game\\csgo_addons\\cs_script_demo\\maps\\scripts\\chess.vjs_c\n-          5673      1 400181285c706c503c05df252f02d6d5afe6d287     0 game\\csgo_addons\\cs_script_demo\\maps\\scripts\\grenadetraining.vjs_c\n+        142854      1 e7a944ff2a1f60050cec656163e9f222fed60fb7     0 game\\csgo_addons\\cs_script_demo\\maps\\scripts\\chess.vjs_c\n+          5563      1 aa170a6c06797a100a3adcf2f9a80e94187f72fc     0 game\\csgo_addons\\cs_script_demo\\maps\\scripts\\grenadetraining.vjs_c\n           1004      1 7f478db2558a9255c8d0f4eaf4713ec0c95289d8     0 game\\csgo_addons\\cs_script_demo\\maps\\scripts\\hello.vjs_c\n           2388      1 d66364c7659b7d12265bf20125a8a2b047e359a4     0 game\\csgo_addons\\cs_script_demo\\maps\\scripts\\input.vjs_c\n-          2664      1 80b21090e2f0d1fc2b8776bcbc88831952db1afd     0 game\\csgo_addons\\cs_script_demo\\maps\\scripts\\mdlchange.vjs_c\n-          2972      1 39a51a14245ec28b2a640f2b52dcb7cb4ed2ef97     0 game\\csgo_addons\\cs_script_demo\\maps\\scripts\\setup.vjs_c\n+          2670      1 68b17c707895ade3432792703a9b1d305c063bb2     0 game\\csgo_addons\\cs_script_demo\\maps\\scripts\\mdlchange.vjs_c\n+          3184      1 86527676cb68b689379cf18e31768209b882d826     0 game\\csgo_addons\\cs_script_demo\\maps\\scripts\\setup.vjs_c\n           7356      1 5b8e9e25a6b1b4d942e02f16c2922780e862bce7     0 game\\csgo_addons\\cs_script_demo\\maps\\scripts\\trace.vjs_c\n           1599      1 26b7254a6bf5a03bb6fe0dab0b87763117024ee9     0 game\\csgo_addons\\cs_script_demo\\panorama\\layout\\custom_game\\welcome.vxml_c\n           2439      1 f11b0c632f773e4dee00eb71cbb43319a0acb557     0 game\\csgo_addons\\cs_script_demo\\panorama\\styles\\custom_game\\welcome.vcss_c\n-        142016      1 5b78dcfe1e02801682f30badc197821af834f7a1     0 game\\csgo_addons\\cs_script_demo\\panorama_stripped\\maps\\scripts\\chess.js\n-          4777      1 fb1b321cf1d587bd92762d4ae18f70e375ed8a92     0 game\\csgo_addons\\cs_script_demo\\panorama_stripped\\maps\\scripts\\grenadetraining.js\n+        141974      1 5ea1650a6c01a1a966cc61629112eeb398499e97     0 game\\csgo_addons\\cs_script_demo\\panorama_stripped\\maps\\scripts\\chess.js\n+          4667      1 b89ec7b13634f4c2c936fb45e47248abfc851b99     0 game\\csgo_addons\\cs_script_demo\\panorama_stripped\\maps\\scripts\\grenadetraining.js\n            124      1 bc5e2b800073f4e359d7d29cb07d35a7a312859a     0 game\\csgo_addons\\cs_script_demo\\panorama_stripped\\maps\\scripts\\hello.js\n           1508      1 0fc8650026ef338adae04c20fc9abacd95ccaba9     0 game\\csgo_addons\\cs_script_demo\\panorama_stripped\\maps\\scripts\\input.js\n-          1768      1 665584f5be5a273e00cdc4d52fc777544216e3ab     0 game\\csgo_addons\\cs_script_demo\\panorama_stripped\\maps\\scripts\\mdlchange.js\n-          2092      1 2ff2ecb556d00d6e00d026ba3860cb0977844155     0 game\\csgo_addons\\cs_script_demo\\panorama_stripped\\maps\\scripts\\setup.js\n+          1774      1 d1255dadcba7eff368fcf2aaf3af17eae29a9d28     0 game\\csgo_addons\\cs_script_demo\\panorama_stripped\\maps\\scripts\\mdlchange.js\n+          2304      1 0d1e9adb823d080002b1a5e48b7bbd592d585a15     0 game\\csgo_addons\\cs_script_demo\\panorama_stripped\\maps\\scripts\\setup.js\n           6476      1 d71bc1d5fac402a9d18d71cd2b853ec98f26ec45     0 game\\csgo_addons\\cs_script_demo\\panorama_stripped\\maps\\scripts\\trace.js\n            344      1 33085b2472c3efcdebb61a0cc4f2aec675f79166     0 game\\csgo_addons\\cs_script_demo\\panorama_stripped\\panorama\\layout\\custom_game\\welcome.xml\n            774      1 d4b48ea27dc2e4a7bd771559459e058e8dcd7040     0 game\\csgo_addons\\cs_script_demo\\panorama_stripped\\panorama\\styles\\custom_game\\welcome.css\n-          4862      1 02076fae4b389b631257caa0f96c803c45a842b1     0 game\\csgo_addons\\cs_script_demo\\readonly_tools_asset_info.bin\n+          4862      1 a1a8b99f7caf6411ddc55f278f2dd68431b120b6     0 game\\csgo_addons\\cs_script_demo\\readonly_tools_asset_info.bin\n            191      1 e3c5549cb3715e2e759a11d90eddea1c1f49a341     0 game\\csgo_addons\\workshop_items\\addoninfo.txt\n        1706103      2 e12db26662c1223b12302ff8618f0630586d5a14     0 game\\csgo_lv\\readonly_tools_asset_info.bin"
        },
        {
          "filename": "manifests/manifest_731.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 731 \n \n-Manifest ID / date     : 5799502335586127231 / 11/03/2026 00:24:30 \n+Manifest ID / date     : 4368490491959295332 / 11/05/2026 00:08:03 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 759958d606a65558944eea2a1f6f5d7f6de48b65     0 game\\bin\\content_built_from_cl.txt\n+             8      1 bea1fc1dbd8adda08a333b7780e5ad2e82c957e6     0 game\\bin\\content_built_from_cl.txt"
        },
        {
          "filename": "manifests/manifest_732.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 732 \n \n-Manifest ID / date     : 4514904948984964204 / 11/03/2026 00:24:37 \n+Manifest ID / date     : 2657142932244703230 / 11/05/2026 00:08:05 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 759958d606a65558944eea2a1f6f5d7f6de48b65     0 game\\bin\\content_built_from_cl.txt\n+             8      1 bea1fc1dbd8adda08a333b7780e5ad2e82c957e6     0 game\\bin\\content_built_from_cl.txt"
        },
        {
          "filename": "manifests/manifest_733.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 733 \n \n-Manifest ID / date     : 4581807251902851325 / 11/03/2026 00:24:44 \n+Manifest ID / date     : 8439362531565969601 / 11/05/2026 00:08:07 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 759958d606a65558944eea2a1f6f5d7f6de48b65     0 game\\bin\\content_built_from_cl.txt\n+             8      1 bea1fc1dbd8adda08a333b7780e5ad2e82c957e6     0 game\\bin\\content_built_from_cl.txt"
        },
        {
          "filename": "manifests/manifest_734.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 734 \n \n-Manifest ID / date     : 519374194040118223 / 11/03/2026 00:24:50 \n+Manifest ID / date     : 4866394379921971128 / 11/05/2026 00:08:08 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 759958d606a65558944eea2a1f6f5d7f6de48b65     0 game\\bin\\content_built_from_cl.txt\n+             8      1 bea1fc1dbd8adda08a333b7780e5ad2e82c957e6     0 game\\bin\\content_built_from_cl.txt"
        },
        {
          "filename": "manifests/manifest_735.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 735 \n \n-Manifest ID / date     : 7430157609109467345 / 11/03/2026 00:24:57 \n+Manifest ID / date     : 7820664911512609889 / 11/05/2026 00:08:10 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 759958d606a65558944eea2a1f6f5d7f6de48b65     0 game\\bin\\content_built_from_cl.txt\n+             8      1 bea1fc1dbd8adda08a333b7780e5ad2e82c957e6     0 game\\bin\\content_built_from_cl.txt"
        }
      ]
    },
    {
      "event_id": "gh:1a3016b",
      "detected_at_utc": "2026-11-13T14:09:50.617Z",
      "commit_date_utc": "2026-11-03T01:31:14Z",
      "commit": {
        "sha": "1a3016b053eb006daaf741396f0d0416388519ca",
        "short": "1a3016b",
        "message": "2000940 | 26 files | M\tDumpSource2/.stringsignore, M\tDumpSource2/schemas/server/CCSGameRules.h, M\tgame/bin/built_from_cl.txt, M\tgame/bin/win64/csgocfg.exe_strings.txt, M\tgame/bin/win64/engine2_strings.txt, M\tgame/bin/win64/networksystem_strings.txt, M\tgame/bin/win64/resourcecompiler_strings.txt, M\tgame/bin/win64/resourceinfo.exe_strings.txt, M\tgame/bin/win64/tools/hammer_strings.txt, M\tgame/bin/win64/tools/met_strings.txt, M\tgame/bin/win64/vconsole2.exe_strings.txt, M\tgame/bin/win64/vrad3_strings.txt, M\tgame/csgo/bin/win64/host_strings.txt, M\tgame/csgo/pak01_dir.txt, M\tgame/csgo/pak01_dir/panorama/scripts/matchinfo.js, M\tgame/csgo/pak01_dir/resource/csgo_english.txt, M\tgame/csgo/steam.inf, M\tmanifests/manifest_2347770.txt, M\tmanifests/manifest_2347771.txt, M\tmanifests/manifest_2347773.txt, M\tmanifests/manifest_2347779.txt, M\tmanifests/manifest_731.txt, M\tmanifests/manifest_732.txt, M\tmanifests/manifest_733.txt, M\tmanifests/manifest_734.txt, M\tmanifests/manifest_735.txt",
        "url": "https://github.com/SteamTracking/GameTracking-CS2/commit/1a3016b053eb006daaf741396f0d0416388519ca"
      },
      "classification": {
        "tags": [
          "scripts",
          "ui",
          "localization",
          "misc",
          "content-change"
        ],
        "important_files": [
          "game/csgo/pak01_dir/panorama/scripts/matchinfo.js",
          "game/csgo/pak01_dir/resource/csgo_english.txt"
        ]
      },
      "ai_summary": "Localization/resources update (game/csgo/pak01_dir/resource/csgo_english.txt).",
      "stats": {
        "files_changed": 26,
        "additions": 173,
        "deletions": 169
      },
      "files": [
        {
          "filename": "DumpSource2/.stringsignore",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -23939,6 +23939,7 @@ m_bQueueFinishLoading\n m_bQueueSetupPathMover\n m_bQueueStop\n m_bQueueStopMoving\n+m_bQueuedMatchmakingReportedRoundStatsPendingSend\n m_bQuietTracepoints\n m_bRadarFlash\n m_bRadialCheck"
        },
        {
          "filename": "DumpSource2/schemas/server/CCSGameRules.h",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -101,6 +101,7 @@ class CCSGameRules : public CTeamplayRules\n \tuint32 m_numSpectatorsCountMax;\n \tuint32 m_numSpectatorsCountMaxTV;\n \tuint32 m_numSpectatorsCountMaxLnk;\n+\tbool m_bQueuedMatchmakingReportedRoundStatsPendingSend;\n \tint32 m_nCTsAliveAtFreezetimeEnd;\n \tint32 m_nTerroristsAliveAtFreezetimeEnd;\n \tbool m_bForceTeamChangeSilent;"
        },
        {
          "filename": "game/bin/built_from_cl.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -1 +1 @@\n-11191483\n+11198114"
        },
        {
          "filename": "game/bin/win64/csgocfg.exe_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 2,
          "changes": 3,
          "patch": "@@ -167,7 +167,7 @@\n .CRT$XIAC\n .fgd\n /e,/select,\"\n-14:52:48\n+15:32:27\n 1AcceptIfItemPicked()\n 1OnAccept()\n 1OnAddonDoubleClicked()\n@@ -1361,7 +1361,6 @@ New Item Type\n No %s specified. Expected '=' '[' <%s> ']'\n NoEditor()\n NoRole\n-Oct 23 2026\n OnAccept\n OnAddonDoubleClicked\n OnAddonSelectionChanged"
        },
        {
          "filename": "game/bin/win64/engine2_strings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 1,
          "changes": 3,
          "patch": "@@ -2452,7 +2452,6 @@ $tI(knN\n 00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899\n 0123456789abcdef\n 0123456789abcdefghijklmnopqrstuvwxyz\n-09:02:57\n 0: run all send jobs on main thread; 1: send jobs run asynchronously (except on dedicated server); 2: send jobs asynchronously; 3: send jobs run in parallel but block to not overlap the next tick; 4: main server clients' send jobs run in parallel, then HLTV server jobs; this approximately matches pre-async profile for a single HLTV server configuration\n 0=Off, 1=Surface Wireframe, 2=Transparent Wireframe\n 0=Off, 1=Visualize trace from camera, 2=Visualize occlusion, 3=Visualize far field trace from camera\n@@ -2466,6 +2465,7 @@ $tI(knN\n 1#SNAN\n 1.2.11\n 127.0.0.1\n+15:35:28\n 1:1: Tokens : ( T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | TOK_COLON | OPEN_BRACE | CLOSE_BRACE | OPEN_PAREN | CLOSE_PAREN | OPEN_BRACKET | CLOSE_BRACKET | SEMICOLON | OP_EQUAL | COMMA | DOUBLE_AND | NEGATIVE_TOK | DOUBLE_OR | LITERAL_TRUE | LITERAL_FALSE | POS_INTLITERAL | POS_FLOATLITERAL | SCOPE_QUALIFIER | ID | DOUBLE_QUOTED_STRING | SINGLE_QUOTED_STRING | SINGLE_LINE_COMMENT | ML_COMMENT | WS | UNRECOGNIZED );\n 200000\n 3$EE\\f\n@@ -5981,6 +5981,7 @@ Not saving user configuration because host_readconfig_ignore_userconfig is set.\\\n Not supported.\n Note that enum values use C++ scoping rules, meaning that enum values are siblings of their type, not children of it.  Therefore, \"\n Note: should use \"addip\" instead of \"banip\".\\n\n+Nov  2 2026\n November\n Now recording to \"%s\", immediate mode, recorded length so far is %s.\\n\n Now recording to \"%s\", recorded length so far is %s.\\n"
        },
        {
          "filename": "game/bin/win64/networksystem_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -271,7 +271,7 @@\n 0 bit issue, spot 2\n 0 bit issue, spot 3\n 0 bit issue, spot 4\n-7;eZ\\f\n+7;eZ\\r\n ::Storage_t\n Accepting Steam Net connection %s\\n\n AckSeqNum"
        },
        {
          "filename": "game/bin/win64/resourcecompiler_strings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 3,
          "changes": 5,
          "patch": "@@ -9020,7 +9020,7 @@ $key:FloatBitmap_t\n /vpk.privatekey.vdf\n /vpk.publickey.vdf\n 0123456789)\"\n-08:41:27\n+15:37:26\n 1:1: Tokens : ( PLUS | MINUS | MUL | DIV | COMMA | LPAREN | RPAREN | EQUALS | PERCENT | INT | FLOAT | ID | ML_COMMENT | SL_COMMENT | NL | WS );\n 1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );\n 241:1: FLOAT : ( ( MINUS )? ( DIGIT )+ '.' ( DIGIT )* ( EXP )? ( FLOATSUFFIX )? | ( MINUS )? ( DIGIT )+ ( EXP )? ( FLOATSUFFIX )? | ( MINUS )? '.' ( DIGIT )+ ( EXP )? ( FLOATSUFFIX )? );\n@@ -12354,7 +12354,6 @@ Object of the appropriate type, if valid.\n Object to cast\n OcclusionCullingBoundsExpand\n OcclusionCullingBoundsScale\n-Oct 28 2026\n Offset from %d \n Old params: %s\\n\n On After Killed\n@@ -16199,7 +16198,7 @@ pathing_visibility_threshold\n pathingcoeffs\n pathingeq\n pathingmixlevel\n-pc64 Oct 28 2026 08:41:36\n+pc64 Nov  2 2026 15:37:25\n perchannel\n permissive_panorama_compiles\n permitrepeats"
        },
        {
          "filename": "game/bin/win64/resourceinfo.exe_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -7243,7 +7243,7 @@ x509_req\n x509_store\n x931\n yS/h\n-z0?g\\v\n+z0?g\\f\n zlVO\n zlib compression\n zone"
        },
        {
          "filename": "game/bin/win64/tools/hammer_strings.txt",
          "status": "modified",
          "additions": 0,
          "deletions": 1,
          "changes": 1,
          "patch": "@@ -7386,7 +7386,6 @@ ObjectProperties\n Objects To Include\n Objs Rendered\n Objs fading\n-Oct 28 2026\n Octaves:\n Offset (accumulative)\n Offset the edge a constant distance from one of the neighboring edges"
        },
        {
          "filename": "game/bin/win64/tools/met_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 2,
          "changes": 3,
          "patch": "@@ -235,12 +235,12 @@\n // THIS FILE IS AUTO-GENERATED\\n\n //-------------------------------------------------\\n\n 0123456789)\"\n-08:38:49\n 0=Wrap,1=Mirror,2=Clamp,3=Border,4=MirrorOnce\n 1 texel = %1px\n 1/%1x\n 1/2/3\n 128 x 128\n+15:35:57\n 1:1 current mip\n 1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );\n 1AboutAction()\n@@ -1248,7 +1248,6 @@ No valid vcs file found for shader %s\\n\n No\\nPreview\\nAvailable\n Normal Map Conversion\n OCTAL_ESC\n-Oct 28 2026\n OnAccept\n OnAcceptClicked\n OnAccepted"
        },
        {
          "filename": "game/bin/win64/vconsole2.exe_strings.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 4,
          "changes": 6,
          "patch": "@@ -481,12 +481,12 @@ $B0B\n .vsky\n .webp\n 0.0.0.0\n-08:40:09\n 0BCDEFGHIJKLMNOPQRSTUVWXYZ1BCDEFGHIJKLMNOPQRSTUVWXYZ2BCDEFGHIJKLMNOPQRSTUVWXYZ3BCDEFGHIJKLMNOPQRSTUVWXYZ4BCDEFGHIJKLMNOPQRSTUVWXYZ\\n\n 0x%llx\n 127.0.0.0\n 127.0.0.1:%d\n-14:53:01\n+15:33:14\n+15:33:36\n 172.16.0.0\n 1AboutAction()\n 1NextFrame()\n@@ -2434,8 +2434,6 @@ Not safe to 'new' this class due to alignment requirements\n NotReloading\n Number of devices to create (max %1):\n NumberOfInks\n-Oct 23 2026\n-Oct 28 2026\n Old-style JPEG\n Old-style LZW codes, convert file\n OldSubfileType"
        },
        {
          "filename": "game/bin/win64/vrad3_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -2307,7 +2307,7 @@ path_trace_triangles_gpu\n path_trace_triangles_gpu_init\n path_trace_triangles_gpu_shutdown\n path_trajectory\n-pc64 Oct 23 2026 14:51:29\n+pc64 Nov  2 2026 15:32:44\n physicsSimplificationError\n physicsSimplificationOverride\n pinEnabled"
        },
        {
          "filename": "game/csgo/bin/win64/host_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -106,7 +106,7 @@ DotaMapUtils001\n EconVData001\n Entry %s was not found in surfaceproperties_footsteps.txt\\n\n Error loading %s: %s\\n\n-FaN\"\\n\n+FaN\"\\v\n Failed to open file: %s\\n\n FoliageAnimation\n Game System %s is defined twice!\\n"
        },
        {
          "filename": "game/csgo/pak01_dir.txt",
          "status": "modified",
          "additions": 4,
          "deletions": 4,
          "changes": 8,
          "patch": "@@ -84581,7 +84581,7 @@ panorama/scripts/mainmenu_xpshop_tile.vts_c CRC:00d409e8ed size:24206\n panorama/scripts/mapdraft.vts_c CRC:0067f23c2d size:42318\n panorama/scripts/match-reconnect.vts_c CRC:009bd134cc size:6862\n panorama/scripts/match_stakes.vts_c CRC:007a7a3ca9 size:10862\n-panorama/scripts/matchinfo.vts_c CRC:008a1a5f2f size:105486\n+panorama/scripts/matchinfo.vts_c CRC:002706dab2 size:105902\n panorama/scripts/matchlist.vts_c CRC:00ac9e0e42 size:52878\n panorama/scripts/matchmaking_status.vts_c CRC:0008a8c523 size:13534\n panorama/scripts/mission_tile.vts_c CRC:00db95903b size:33790\n@@ -87984,7 +87984,7 @@ resource/csgo_bulgarian.txt CRC:00e6aa803c size:7758759\n resource/csgo_czech.txt CRC:00aa2da1f8 size:5097152\n resource/csgo_danish.txt CRC:001655e064 size:5003477\n resource/csgo_dutch.txt CRC:007e635df4 size:5049457\n-resource/csgo_english.txt CRC:00a7f600cd size:4878645\n+resource/csgo_english.txt CRC:00e83600df size:4879039\n resource/csgo_finnish.txt CRC:0040d7f29a size:4960257\n resource/csgo_french.txt CRC:00cf90f727 size:5254356\n resource/csgo_german.txt CRC:00768f902a size:5164887\n@@ -87998,15 +87998,15 @@ resource/csgo_latam.txt CRC:00436dd96a size:5188121\n resource/csgo_norwegian.txt CRC:00f79e57f3 size:4924516\n resource/csgo_polish.txt CRC:003eee27c8 size:5321400\n resource/csgo_portuguese.txt CRC:00ed24ede6 size:5059879\n-resource/csgo_romanian.txt CRC:00726dbe1b size:5270911\n+resource/csgo_romanian.txt CRC:00b3958fb9 size:5270915\n resource/csgo_russian.txt CRC:00ffa91341 size:6563734\n resource/csgo_schinese.txt CRC:000d6871a9 size:4931452\n resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645\n resource/csgo_spanish.txt CRC:00f5db4811 size:5159573\n resource/csgo_swedish.txt CRC:00b8b4e017 size:5031803\n resource/csgo_tchinese.txt CRC:008252f083 size:4627815\n resource/csgo_thai.txt CRC:00f47187a0 size:8128621\n-resource/csgo_turkish.txt CRC:0004ab0a9f size:5165343\n+resource/csgo_turkish.txt CRC:00ea144dfc size:5165506\n resource/csgo_ukrainian.txt CRC:00ab17d5bc size:6621012\n resource/csgo_vietnamese.txt CRC:00985185c2 size:5450532\n resource/game.gameevents CRC:0090de10bc size:9837"
        },
        {
          "filename": "game/csgo/pak01_dir/panorama/scripts/matchinfo.js",
          "status": "modified",
          "additions": 4,
          "deletions": 2,
          "changes": 6,
          "patch": "@@ -392,8 +392,10 @@ var matchInfo;\n         elPlayerRow.AddClass('no-hover');\n         elParentPanel.Data().activePlayerRow = elPlayerRow;\n         let isLive = Boolean(MatchInfoAPI.IsLive(elParentPanel.Data().matchId));\n-        if (isLive == false) {\n-            elParentPanel.FindChildInLayoutFile('id-mi-player-stats').RemoveClass('mi-player-stats__collapse');\n+        let hasRoundStats = Boolean(MatchInfoAPI.GetMatchPlayerRoundStats(elParentPanel.Data().matchId, elPlayerRow.Data().playerXuid, \"round_wins\"));\n+        elParentPanel.FindChildInLayoutFile('id-mi-player-stats').SetHasClass('mi-player-stats__collapse', isLive || !hasRoundStats);\n+        if (!hasRoundStats) {\n+            return;\n         }\n         let elStatsContainer = elParentPanel.FindChildInLayoutFile('id-mi-round-stats__container');\n         let elTickLabels = elParentPanel.FindChildInLayoutFile('id-mi-round-stats__tick-labels');"
        },
        {
          "filename": "game/csgo/pak01_dir/resource/csgo_english.txt",
          "status": "modified",
          "additions": 5,
          "deletions": 0,
          "changes": 5,
          "patch": "@@ -46172,6 +46172,11 @@\n \t\t\"SFUI_Lobby_StatusRichPresence_retakes_community\"\t\t\t\t\"Community Retakes\"\n \t\t\"SFUI_Lobby_StatusRichPresence_retakes_watch\"\t\t\t\t\t\"Watching Retakes\"\n \t\t\"SFUI_Lobby_StatusRichPresence_retakes_review\"\t\t\t\t\t\"Replaying Retakes\"\n+\t\t\"SFUI_Lobby_StatusRichPresence_workshop_lobby\"\t\t\t\t\t\"In Workshop Map Lobby\"\n+\t\t\"SFUI_Lobby_StatusRichPresence_workshop_game\"\t\t\t\t\t\"Playing Workshop Map\"\n+\t\t\"SFUI_Lobby_StatusRichPresence_workshop_community\"\t\t\t\t\"Community Workshop Map\"\n+\t\t\"SFUI_Lobby_StatusRichPresence_workshop_watch\"\t\t\t\t\t\"Watching Workshop Map\"\n+\t\t\"SFUI_Lobby_StatusRichPresence_workshop_review\"\t\t\t\t\t\"Replaying Workshop Map\"\n \t\t\"SFUI_Lobby_StatusRichPresenceSeparator_classic_competitive\"\t\t\t\" \"\n \n \t\t\"SFUI_PSNPresence_SinglePlayer\"\t\t\"Single Player\""
        },
        {
          "filename": "game/csgo/steam.inf",
          "status": "modified",
          "additions": 6,
          "deletions": 6,
          "changes": 12,
          "patch": "@@ -1,9 +1,9 @@\n-ClientVersion=2000939\n-ServerVersion=2000939\n-PatchVersion=1.41.9.4\n+ClientVersion=2000940\n+ServerVersion=2000940\n+PatchVersion=1.41.9.5\n ProductName=cs2\n appID=730\n ServerAppID=2347773\n-SourceRevision=11191540\n-VersionDate=Oct 30 2026\n-VersionTime=13:55:25\n+SourceRevision=11198439\n+VersionDate=Nov 02 2026\n+VersionTime=16:17:08"
        },
        {
          "filename": "manifests/manifest_2347770.txt",
          "status": "modified",
          "additions": 12,
          "deletions": 12,
          "changes": 24,
          "patch": "@@ -1,16 +1,16 @@\n Content Manifest for Depot 2347770 \n \n-Manifest ID / date     : 6694633556888099985 / 10/30/2026 21:05:03 \n+Manifest ID / date     : 3690356453703667427 / 11/03/2026 00:25:56 \n Total number of files  : 2992 \n-Total number of chunks : 65063 \n-Total bytes on disk    : 65051805863 \n-Total bytes compressed : 55573428128 \n+Total number of chunks : 65055 \n+Total bytes on disk    : 65048085465 \n+Total bytes compressed : 55568715408 \n \n \n           Size Chunks File SHA                                 Flags Name\n-            10      1 2d6149740ea5c8f6b2d653ccf3f38a0d2a294ac3     0 game\\bin\\built_from_cl.txt\n-         10347      1 cf297ff72b6c1648a9cecd8868cfac716c658e3c     0 game\\bin\\win64\\csgo.signatures\n-          8941      1 ec38742284e7338bb190a5eb2ff6f77c2a534438     0 game\\bin\\win64\\vpk.signatures\n+            10      1 e1aceebbdd3814eb1f3e4216702f7dc8e3ca6465     0 game\\bin\\built_from_cl.txt\n+         10347      1 34e431cd4393ac0204703f2a6d9f19c224fd1479     0 game\\bin\\win64\\csgo.signatures\n+          8941      1 f2e4452e9be7e5f6ccbbbd7979082a1321dd0aed     0 game\\bin\\win64\\vpk.signatures\n          51357      1 0f5112698b482f8c1190c89192a4c0c8b0e50198     0 game\\core\\cfg\\sfm_default_animation_groups.vcfg\n           2270      1 ab4e0ee92367ba6d28a89dae8f6000631ffdb641     0 game\\core\\cfg\\user_keys_default.vcfg\n           2474      1 c4ff2f85048812f02c2403b0675208acfc00c7b0     0 game\\core\\gameinfo.gi\n@@ -2438,7 +2438,7 @@ Total bytes compressed : 55573428128\n      118404050    113 796c7932cfeb6772b51013f28bd99bfdfb40483d     0 game\\csgo\\pak01_033.vpk\n      116169795    111 e382335666c33007e4a346ded29843a08e8656eb     0 game\\csgo\\pak01_034.vpk\n      104201764    102 d897179aaadd2b0de26e19afe39037903f6f424a     0 game\\csgo\\pak01_035.vpk\n-     105234684    129 3493b2d21b1aecc2a0b56c7338a9fcc06f512e91     0 game\\csgo\\pak01_036.vpk\n+     120988884    138 f58ecf9bfb4813e19e008a7a63c2f7d48b0a059c     0 game\\csgo\\pak01_036.vpk\n      109137813    105 c1c5d1aeea369e80997338b7f41f8cadb17bbfdb     0 game\\csgo\\pak01_037.vpk\n      116538440    112 cf02841fa129fbb93933f539cc8ae0fcb54de2d9     0 game\\csgo\\pak01_038.vpk\n      103037018    103 83bd86a8c8cdc17b353c54cd4cf6a1e347a59e63     0 game\\csgo\\pak01_039.vpk\n@@ -2773,7 +2773,7 @@ Total bytes compressed : 55573428128\n       99943692    100 e8da516e0d51337a189cdcd953278f762ac0a654     0 game\\csgo\\pak01_368.vpk\n      105708781    101 0f96f5bfaa0444b7e7d9913d86fff385c279a181     0 game\\csgo\\pak01_369.vpk\n      105059948    102 8bdc949a2182d103f63b3a1a78de3db43945c3ef     0 game\\csgo\\pak01_370.vpk\n-     104830224    106 3d6f89be56c08ce63e224dcbe1f2e221c26e4a6b     0 game\\csgo\\pak01_371.vpk\n+     105268310    110 183c4b74cc2532675a6687a5bb28a032236ade11     0 game\\csgo\\pak01_371.vpk\n      105742452    106 5600349636412e27a10f5d7d7fdf2a524137b014     0 game\\csgo\\pak01_372.vpk\n      108035952    108 6b86e3e0c916b225f852abbf47c5f31915726e30     0 game\\csgo\\pak01_373.vpk\n      103105895    100 04531aca5df46681795ded2401e7382bd2982909     0 game\\csgo\\pak01_374.vpk\n@@ -2906,8 +2906,8 @@ Total bytes compressed : 55573428128\n       99621956    106 9d2ae31cb7b16513b47b2aa6bc1a5b55a6ad8d43     0 game\\csgo\\pak01_501.vpk\n       99618250    105 568b65b644448b85efe132f8eaebe59c309c3fb3     0 game\\csgo\\pak01_502.vpk\n      100220508    102 60654a3f3231ef5de3b458ed332ba064c153c465     0 game\\csgo\\pak01_503.vpk\n-      61294166     64 7e4515c2e23cc6b96ef870aff144182d3aa0bc84     0 game\\csgo\\pak01_504.vpk\n-       7713358      8 860cb1f89ad46cd24ec82d18dca3f975cc951465     0 game\\csgo\\pak01_dir.vpk\n+      41381566     46 444eee2d83cbd067eec75b923992fa35b130c2d4     0 game\\csgo\\pak01_504.vpk\n+       7713274      8 7811a1e71538f431f6e160c41171ffa9efd0af6c     0 game\\csgo\\pak01_dir.vpk\n          11893      1 d2f5c237fcac89835ab901bf3cc83850c71d9b46     0 game\\csgo\\panorama\\fonts\\fonts.conf\n         107848      1 90edfc11fa568cd0fb5b9d6e6d369dddadfdb8c4     0 game\\csgo\\panorama\\fonts\\notomono-regular.ttf\n         310556      1 84e39ddc72cd1d2ac4be132d235979f10f916c2b     0 game\\csgo\\panorama\\fonts\\notosans-bold.ttf\n@@ -2996,7 +2996,7 @@ Total bytes compressed : 55573428128\n      303670574    290 d2d77a7357436cf6fb69b704cebc84718609f70e     0 game\\csgo\\shaders_vulkan_003.vpk\n       25004138     28 7a80e74bbd9d763f27ad8788694da6d9d81cc99e     0 game\\csgo\\shaders_vulkan_004.vpk\n          41884      1 a9b38a712dcebbc8a985763a9134ec66c4264688     0 game\\csgo\\shaders_vulkan_dir.vpk\n-           190      1 6bd54113491e0ded55a8f7d0f773905099323118     0 game\\csgo\\steam.inf\n+           190      1 2acf249fb98158c6b47a3af8f6254953ed9e3f50     0 game\\csgo\\steam.inf\n            209      1 cb2eaab8dbda9f075491a5410326356e127f60ec     0 game\\csgo_lv\\gameinfo.gi\n            135      1 7769174b103a021d6390cb2a31b758dbfff04639     0 game\\csgo_lv\\gameinfo_branchspecific.gi\n         473822      1 f5ca24bf12b20fee2ffb5d8bbc465ba8805d8abe     0 game\\thirdpartylegalnotices.txt"
        },
        {
          "filename": "manifests/manifest_2347771.txt",
          "status": "modified",
          "additions": 55,
          "deletions": 55,
          "changes": 110,
          "patch": "@@ -1,30 +1,30 @@\n Content Manifest for Depot 2347771 \n \n-Manifest ID / date     : 4494425425081083634 / 10/30/2026 21:05:41 \n+Manifest ID / date     : 5808144614069275570 / 11/03/2026 00:26:34 \n Total number of files  : 183 \n Total number of chunks : 7219 \n Total bytes on disk    : 7753537022 \n-Total bytes compressed : 5011481952 \n+Total bytes compressed : 5011473536 \n \n \n           Size Chunks File SHA                                 Flags Name\n         181608      1 0bc12517a8ee4173867d54081a6d26527ab62672     0 game\\bin\\win64\\amd_ags_x64.dll\n-       9329816      9 c44f498f1874785f148aa743fab6e5ee4c017041     0 game\\bin\\win64\\animationsystem.dll\n-      48612504     48 a51eee7b1cc096c6245497e9b098945fafa0a3af     0 game\\bin\\win64\\assetpreview.dll\n+       9329816      9 bf7814eef68259386519836a0575675b2f53fe03     0 game\\bin\\win64\\animationsystem.dll\n+      48612504     48 a382d90a63b0a9a1e9efd1b3df018af1844cb3ba     0 game\\bin\\win64\\assetpreview.dll\n         754024      1 84aaa5491087ffb7aa5453f48bdf3a837839f770     0 game\\bin\\win64\\ati_compress_wrapper.dll\n-        167576      1 080aa6cc967fa8780455da6cd6c900dffed7abc6     0 game\\bin\\win64\\bugreporter_filequeue.dll\n+        167576      1 50ccfcf9e39a00f79de635fae3b788376d9f3b99     0 game\\bin\\win64\\bugreporter_filequeue.dll\n        1271960      2 24eaed4030eeb1880ad94ad59d43e39894815e78     0 game\\bin\\win64\\cairo.dll\n        2967704      3 543876c222172ce98b127e0b2fc6b3ea11f91f79     0 game\\bin\\win64\\cs2.exe\n        4346120      5 612e6f443d927330b9b8ac13cc4a2a6b959cee48     0 game\\bin\\win64\\d3dcompiler_47.dll\n        1558912      2 4ef5d229709e40f3f84e46c3a28341eadbd1a044     0 game\\bin\\win64\\dbghelp.dll\n       21996904     21 bc499749a83cd7cd52673ecaa1c74760a20ba714     0 game\\bin\\win64\\embree3.dll\n-       7498392      8 ed638d59cca76998e79547d3766d4f6eb96840a4     0 game\\bin\\win64\\engine2.dll\n-       2260120      3 9ac3cc8658e9280d2dbd0f4a82aace65c34ecd32     0 game\\bin\\win64\\filesystem_stdio.dll\n+       7498392      8 185f14e77381beea23078bc58a1d7bd0cef5e845     0 game\\bin\\win64\\engine2.dll\n+       2260120      3 e6b2f2f01a06dd404f49cf333f68ddce1a5aebf3     0 game\\bin\\win64\\filesystem_stdio.dll\n           2373      1 58812342d882cc4b5cb2469606929aa413e0ca16     0 game\\bin\\win64\\foreign.signatures\n        5736000      6 7d1f621599d315bbda1c7d2129b689a999a20bd8     0 game\\bin\\win64\\gfsdk_aftermath_lib.x64.dll\n-        755864      1 501db249b47d2312d13524508e8c801991b6747f     0 game\\bin\\win64\\helpsystem.dll\n-        248472      1 4be7eb4d74567baeaf51a4686dbc81a8051787bc     0 game\\bin\\win64\\imemanager.dll\n-        302232      1 8d74403cf1ddbdd542be88b27a1a59a5c7f4772f     0 game\\bin\\win64\\inputsystem.dll\n+        755864      1 83ed4f0304dcc6579093607217950b3b006a5975     0 game\\bin\\win64\\helpsystem.dll\n+        248472      1 ff5cd135d038fb3cdeafde6b4fd46618025a78da     0 game\\bin\\win64\\imemanager.dll\n+        302232      1 0eb5de06e385590668a23f5293ee7414196215ca     0 game\\bin\\win64\\inputsystem.dll\n        6627176      7 49b2ad8a4e67451776d9c4e62c7aaf62a51e9735     0 game\\bin\\win64\\libavcodec-58.dll\n        1847656      2 612200abbd317ae2c2173e52248cb5bcdcf6a9a1     0 game\\bin\\win64\\libavformat-58.dll\n         756584      1 8949c887bd27fe265d1b4df08eb2d86cc74695a5     0 game\\bin\\win64\\libavresample-4.dll\n@@ -40,21 +40,21 @@ Total bytes compressed : 5011481952\n         400744      1 a4a6273b4de588fa2302d45bcc994fecfb6c5fea     0 game\\bin\\win64\\libpango-1.0-0.dll\n         389992      1 a3d673d56314c10a6b742e88b4261dc9df857269     0 game\\bin\\win64\\libpangoft2-1.0-0.dll\n        1283432      2 9867b4ab6b1a430242eae51aa2b1700a1ace4a2e     0 game\\bin\\win64\\libswscale-5.dll\n-        382104      1 386d54a0a1ba3ff051f148b25ec0defd5df67078     0 game\\bin\\win64\\localize.dll\n-       1428632      2 23bb3cfd4d4fe730eef8b5a18946e6bd74ab12c6     0 game\\bin\\win64\\materialsystem2.dll\n-       1664664      2 573dfb7361d93fe2bdd63ebbf132f571467e16e3     0 game\\bin\\win64\\meshsystem.dll\n-       1314968      2 1bac0b3b4639d8d47fbc6990308098a8ab1e4280     0 game\\bin\\win64\\navsystem.dll\n-       2841752      3 9a853bdb1755f40bda4e2c67cd0f55c0fd1bd4b5     0 game\\bin\\win64\\networksystem.dll\n-        147608      1 dc132099ef45f5d24cdf46ff0f4e8b95f272e03a     0 game\\bin\\win64\\p4lib.dll\n-       6108312      6 1d85b21366ba2cc6a7bd5869807140e1730ab074     0 game\\bin\\win64\\panorama.dll\n-       2748056      3 7884a9f4258e84378ad7effdee02d56255d0a82a     0 game\\bin\\win64\\panoramauiclient.dll\n-       2997912      3 199e25a095143d3a8b62ded12f74da9497aaf780     0 game\\bin\\win64\\panorama_text_pango.dll\n-       6460568      7 a6f468c64c6f133e72575694e80a5c3b1fc16dc0     0 game\\bin\\win64\\particles.dll\n+        382104      1 2117557c22f9b58b6d0da2ba91a90fc2d7e52f9f     0 game\\bin\\win64\\localize.dll\n+       1428632      2 d6e30c118d0f4bb139529a01d254199c71748d5c     0 game\\bin\\win64\\materialsystem2.dll\n+       1664664      2 bfc3eb19939b3f38d85ec27b8d1bec77414b5c99     0 game\\bin\\win64\\meshsystem.dll\n+       1314968      2 d41c0a00bc9e80ff0958412831ca483a9ad0f918     0 game\\bin\\win64\\navsystem.dll\n+       2841752      3 2b96877b91a753e024ebd164036098c31b41ead7     0 game\\bin\\win64\\networksystem.dll\n+        147608      1 f8b63f70ca58f6b7882b829430c9fb3cdc67487a     0 game\\bin\\win64\\p4lib.dll\n+       6108312      6 94048c04cd1acea67d05dfe3f46972b979569617     0 game\\bin\\win64\\panorama.dll\n+       2748056      3 2773a945a7eecf0f7722c91ce3147c8150cce087     0 game\\bin\\win64\\panoramauiclient.dll\n+       2997912      3 9d3d1b368b8231038f7d54739985db3e80a47d4d     0 game\\bin\\win64\\panorama_text_pango.dll\n+       6460568      7 fc7d1bac01a248f2af72a48746325208722072da     0 game\\bin\\win64\\particles.dll\n       53322904     53 19e9e40c9a4780b26353e1a4d78f2a4f61ff8f3c     0 game\\bin\\win64\\phonon.dll\n         567656      1 79759ec5c92853b73627da14e5e70f6c6c580a78     0 game\\bin\\win64\\phonon4.dll\n-      13950616     14 32da607e886aeed748459d9306a6917762edab13     0 game\\bin\\win64\\physicsbuilder.dll\n-       1522840      2 2e39fa5b15eaca75c30c5da1464348c9c0e23f33     0 game\\bin\\win64\\propertyeditor.dll\n-       2031768      2 bfbb7085355668eb93e95a48cf7b5312f576e72c     0 game\\bin\\win64\\pulse_system.dll\n+      13950616     14 d97d9e5d6a64e98bd812ebe70a023c39a24e833b     0 game\\bin\\win64\\physicsbuilder.dll\n+       1522840      2 eba06453afcdd6d6bf4b608fcc3fe6dcde592cb7     0 game\\bin\\win64\\propertyeditor.dll\n+       2031768      2 6f40ef4d08911950fad3e1a7fb65b4ec1672b3ee     0 game\\bin\\win64\\pulse_system.dll\n         131432      1 3177661f6e066460f2c859d2d5453323b68d6eda     0 game\\bin\\win64\\Qt5Concurrent.dll\n        6288744      6 5f5173c825810bbd849e32b5e6e2cb32f6c456d2     0 game\\bin\\win64\\Qt5Core.dll\n        7007080      7 08882a63e4c0962b33376da66224655f2b1d5e06     0 game\\bin\\win64\\Qt5Gui.dll\n@@ -67,53 +67,53 @@ Total bytes compressed : 5011481952\n        1616384      2 f5dc8fe31229639bd3fe28b52249af29722e0301     0 game\\bin\\win64\\qt5_plugins\\platforms\\qwindows.dll\n         231424      1 8fc6fa3f8cda0ffc55725d817c782115322cd574     0 game\\bin\\win64\\qt5_plugins\\styles\\qwindowsvistastyle.dll\n         828928      1 bbb2cff7f465f33d68bb00cb32c4ca897334cc94     0 game\\bin\\win64\\qtadvanceddocking-qt5.dll\n-       4545688      5 051d860ce08f10ec2a0d0345ca8f1727e337152a     0 game\\bin\\win64\\rendersystemdx11.dll\n-       1774744      2 5b6210ed355a8b9cd9a2aa7312e3bb7c08516484     0 game\\bin\\win64\\rendersystemempty.dll\n-       6249624      7 7fda1b8745d98cdbcc8fe7a1153ac6de25db01d1     0 game\\bin\\win64\\rendersystemvulkan.dll\n-      56351896     54 ae2b2266c510a9efe65a2220bb38dba42dac6e46     0 game\\bin\\win64\\resourcecompiler.dll\n-        532632      1 3eb3b6bd25b276fb670f1474260267907db9cd16     0 game\\bin\\win64\\resourcesystem.dll\n-       1297048      2 a098eda7437c0f2bd2eee3e113421c958f2aba69     0 game\\bin\\win64\\scenefilecache.dll\n-       7094936      7 2a0d7c4734b5058b0dcf8e270630c9a8a9dab4b8     0 game\\bin\\win64\\scenesystem.dll\n-        445592      1 a2d1ab7e9bfefb9df339767031cf6b6ce7a1a43e     0 game\\bin\\win64\\schemasystem.dll\n+       4545688      5 ad12c77a510d514d29c61b7e3a515fea41864047     0 game\\bin\\win64\\rendersystemdx11.dll\n+       1774744      2 5cc9557830aaf4ee91c22d08568bb27a0f673528     0 game\\bin\\win64\\rendersystemempty.dll\n+       6249624      7 994dbf58e75bf4b3d0b54e70b1613f946c050d08     0 game\\bin\\win64\\rendersystemvulkan.dll\n+      56351896     54 4dafe44305d9966c865bcc78460f31acf5153bf9     0 game\\bin\\win64\\resourcecompiler.dll\n+        532632      1 c62dfbb1cee3f7553bfcf99b4fbac724a5341841     0 game\\bin\\win64\\resourcesystem.dll\n+       1297048      2 94c9536c1a0b4ed2b736c41c386d08652ff81654     0 game\\bin\\win64\\scenefilecache.dll\n+       7094936      7 9bb7594bcd332c617df4b6a9db62c8886991f84d     0 game\\bin\\win64\\scenesystem.dll\n+        445592      1 61a9c15eab213fbb579ef604310fd28eee47145e     0 game\\bin\\win64\\schemasystem.dll\n        2891928      3 2455bae3c453025d4d481afebdc517ac9e3f3659     0 game\\bin\\win64\\SDL3.dll\n-       5838488      6 dd30ad36fdcfb5d9f59b2cfb46b0bef25184328f     0 game\\bin\\win64\\soundsystem.dll\n-       3547288      4 2ed24977ac906ca1596d83f466669849116c2619     0 game\\bin\\win64\\steamaudio.dll\n+       5838488      6 2c7068a3059c8057b9280de287cead9c2ae3a0de     0 game\\bin\\win64\\soundsystem.dll\n+       3547288      4 dcd7e7502e53c738b5b86b29bd5dcd8ae23e53a1     0 game\\bin\\win64\\steamaudio.dll\n        4290200      5 b2a6c8bdb391737a00e9d32a186d726da2037aae     0 game\\bin\\win64\\steamnetworkingsockets.dll\n         317080      1 a9fd85dbfdcee3209768facb284b8788df41c3d3     0 game\\bin\\win64\\steam_api64.dll\n-        887448      1 213fce1c7bfac044eaf350a00f5e7c10870df8ae     0 game\\bin\\win64\\subtools\\convarhelper_subtool.dll\n-        227992      1 e3f03807f29613a9401c411b6ce7a50d09976b4f     0 game\\bin\\win64\\subtools\\dashboard_subtool.dll\n-        366232      1 38825442ff3adaf635c82e502c350008d847d242     0 game\\bin\\win64\\subtools\\netgraph_subtool.dll\n-        418968      1 1b3bdc723a1dcd18222285efe5d395e46223a864     0 game\\bin\\win64\\subtools\\soundviewer_subtool.dll\n-        338584      1 e2990d2f36d45f5c5321d57f4bf2e4ee9fdfae75     0 game\\bin\\win64\\subtools\\vprof_subtool.dll\n+        887448      1 51b273640034e3bf523a5899ea9d377b64e70c15     0 game\\bin\\win64\\subtools\\convarhelper_subtool.dll\n+        227992      1 e534813280d8a18b42833bdb80cf6f440ea791ad     0 game\\bin\\win64\\subtools\\dashboard_subtool.dll\n+        366232      1 514ff31ef4596425d671a13b0721e5ac1e96ec5b     0 game\\bin\\win64\\subtools\\netgraph_subtool.dll\n+        418968      1 fddeb0c0f40fe6ea7c3b6f0a00712fe9ee45955d     0 game\\bin\\win64\\subtools\\soundviewer_subtool.dll\n+        338584      1 6965c56d222b1947c5a0f4e746cb35e92349ce71     0 game\\bin\\win64\\subtools\\vprof_subtool.dll\n         149264      1 4b46db2a99a47ff6a6ee376f4d79f5298bff28a2     0 game\\bin\\win64\\symsrv.dll\n           1473      1 a2f63b30356a09266d8e598c4a4949ad00733230     0 game\\bin\\win64\\system.signatures\n-       3979928      4 7a95e7c564b75d4e207eb013d8797c46c392edad     0 game\\bin\\win64\\tier0.dll\n-      13708952     14 683fd7f433475c1fb83f58ff4d9bac6f2df76ec1     0 game\\bin\\win64\\toolframework2.dll\n+       3979928      4 2dc971f4ba4b15a18c2cb2b189cb6bb696549e20     0 game\\bin\\win64\\tier0.dll\n+      13708952     14 944b6e3fce2c1c2526a39d4c65da569e96a74a48     0 game\\bin\\win64\\toolframework2.dll\n       50473832     49 29b8401736bcbb130ad79cde21b1cb70c4fefabf     0 game\\bin\\win64\\v8.dll\n-        233624      1 08fbefa2846b1129d3195ea107e54529b6a75d6b     0 game\\bin\\win64\\v8system.dll\n+        233624      1 e0be570be2c322f5d7765f85a779773dc2d301ae     0 game\\bin\\win64\\v8system.dll\n        3937128      4 3a8e40f31868314b88d6514cd096dd0908f24a1b     0 game\\bin\\win64\\v8_icui18n.dll\n        2849640      3 95d6436822bcf47bb4315c0c20d69775662163b6     0 game\\bin\\win64\\v8_icuuc.dll\n        1637736      2 8402ca7e7ffb4c8db27c05c7d7c3d10c224a0750     0 game\\bin\\win64\\v8_libbase.dll\n        1455464      2 9beacc20acdc683129c258a97432e6beb8701d71     0 game\\bin\\win64\\v8_libplatform.dll\n         844136      1 97b323fba40640622eb756c42206dc088474b21a     0 game\\bin\\win64\\v8_zlib.dll\n-        194200      1 4f1f86e04e54f20e423971760257bffd0af1e81c     0 game\\bin\\win64\\valve_avi.dll\n-      11384472     12 78fbfadb81c05286f0c6f0006dfcde493248e087     0 game\\bin\\win64\\valve_webm.dll\n-        177304      1 53fe6ef4fff3e1f843be723e792fb02bdcd7a6c6     0 game\\bin\\win64\\valve_wmf.dll\n-        259736      1 6750a03108261019c3c8762094c3cecd156c07f4     0 game\\bin\\win64\\vconcomm.dll\n-       5105816      5 3884e04f808764c89f0b9ddf940183897c241456     0 game\\bin\\win64\\vconsole2.exe\n-       1327256      2 c7ecf73ad6654517f163f23bdfa7e5ed62cbd3b2     0 game\\bin\\win64\\vfx_dx11.dll\n+        194200      1 5860e5e47341acb69dcfe7e80e22462e3acf6f21     0 game\\bin\\win64\\valve_avi.dll\n+      11384472     12 a9a817e4576f9d0579e7c165fca5fed87079f643     0 game\\bin\\win64\\valve_webm.dll\n+        177304      1 597b00148c9434443daf6f09058a16e82fe98a08     0 game\\bin\\win64\\valve_wmf.dll\n+        259736      1 c17af6d351fed715ec6335204e04aff779647c41     0 game\\bin\\win64\\vconcomm.dll\n+       5105816      5 1f4298f214e0b6425cc8acdde412048919011563     0 game\\bin\\win64\\vconsole2.exe\n+       1327256      2 61b7e2e78c4a28ce0a739204fdd66ca771c6fad0     0 game\\bin\\win64\\vfx_dx11.dll\n        4610448      5 6e02ca508c3fcbd7972475e7b1530d0a2dfa12c3     0 game\\bin\\win64\\video64.dll\n-       1855640      2 c407a13221df9390f71a999a14ab40bb7d70eef4     0 game\\bin\\win64\\visbuilder.dll\n-       4829848      5 1d443f6452208cde31a8c6e84103758ded32a8b7     0 game\\bin\\win64\\vphysics2.dll\n-       1352856      2 64f98a410a72087c75c51c0f07cc1db49fc5a639     0 game\\bin\\win64\\vscript.dll\n-       2029720      2 9b117aa56a622b6a6026c8bfa8ba65b03222efa0     0 game\\bin\\win64\\worldrenderer.dll\n+       1855640      2 2c43f071e8ba595080b487b437e97af0526efb2b     0 game\\bin\\win64\\visbuilder.dll\n+       4829848      5 0ae0801a6394bc9b1aa70304c9eebf831620f0bc     0 game\\bin\\win64\\vphysics2.dll\n+       1352856      2 1ab1c7fa28d18fb621fd2a3f38ff255d3dc6bb92     0 game\\bin\\win64\\vscript.dll\n+       2029720      2 82c110e168cd9741d1f818c6cc26f909152e65af     0 game\\bin\\win64\\worldrenderer.dll\n        3185298      4 10bea5cfe6883540880c748e9506a04ad11e53ca     0 game\\core\\shaders_pc_000.vpk\n          25563      1 72204b8136ab7b8df21a52fb0b8b674f8c578b06     0 game\\core\\shaders_pc_dir.vpk\n        1728360      2 4e48ff45949c7f3cd8fd8ab5b7514ae27f44e53a     0 game\\csgo\\bin\\legacy\\csgo_legacy_app.exe\n-      39224472     38 b5ad5ca0a78e816cf93836327b42d5a5ef49dcab     0 game\\csgo\\bin\\win64\\client.dll\n-       1389208      2 40c6db9d0b1a07915441df9e7f002375f1bbad7a     0 game\\csgo\\bin\\win64\\host.dll\n-       1890968      2 9aedfe7565fa06c398d7c4a0017bfc6490567b4d     0 game\\csgo\\bin\\win64\\matchmaking.dll\n-      34690200     34 7eb4d9b19948117424d575b158aa11c565d71eec     0 game\\csgo\\bin\\win64\\server.dll\n+      39224472     38 51a449b7cac525d9470b3d98debc6a43467ead20     0 game\\csgo\\bin\\win64\\client.dll\n+       1389208      2 425f2ec89bdaa5b0d2ca47945fa08ec906661749     0 game\\csgo\\bin\\win64\\host.dll\n+       1890968      2 ebcf0d685e5347a5e246521cc0ee694f5d266bb3     0 game\\csgo\\bin\\win64\\matchmaking.dll\n+      34690200     34 b3c3e96f47acbdcf00655a3d7e5db509480eeef5     0 game\\csgo\\bin\\win64\\server.dll\n      115209034    117 4bbd01e43063ebade958bb509725b1b48c811b00     0 game\\csgo\\shaders_pc_000.vpk\n      189827159    182 7829b4ede09333c4e30a53d1ef958b9baeaeac39     0 game\\csgo\\shaders_pc_001.vpk\n       38973836     41 55f4f1a11b02a8a25a77a452d24ae14aa04b9f0b     0 game\\csgo\\shaders_pc_002.vpk"
        },
        {
          "filename": "manifests/manifest_2347773.txt",
          "status": "modified",
          "additions": 32,
          "deletions": 32,
          "changes": 64,
          "patch": "@@ -1,53 +1,53 @@\n Content Manifest for Depot 2347773 \n \n-Manifest ID / date     : 6232960523750647649 / 10/30/2026 21:05:58 \n+Manifest ID / date     : 4551386601247986792 / 11/03/2026 00:27:00 \n Total number of files  : 135 \n Total number of chunks : 6673 \n-Total bytes on disk    : 7224464934 \n-Total bytes compressed : 4605726512 \n+Total bytes on disk    : 7224465798 \n+Total bytes compressed : 4605728448 \n \n \n           Size Chunks File SHA                                 Flags Name\n         155548      1 6f37e2bbe028e2b198f87972fc7265422a44b4b2     0 game\\bin\\linuxsteamrt64\\cs2\n          84104      1 17f3c133b5c62e6e2bbb0280e038912414412579     0 game\\bin\\linuxsteamrt64\\fltlnx64.flt\n-      15438136     15 eff263174b3593ea6d8906c05749c219a16d26b1     0 game\\bin\\linuxsteamrt64\\libanimationsystem.so\n+      15438136     15 aea2634b8346eb8e971473a5ee7110674643441c     0 game\\bin\\linuxsteamrt64\\libanimationsystem.so\n        3678216      4 68f95c77a3ab19b380f142ab7e6ccb543af9d37c     0 game\\bin\\linuxsteamrt64\\libavcodec.so.58\n         888848      1 bcfdd74b8bc4268cc6af190a10c8d64d27b71bc9     0 game\\bin\\linuxsteamrt64\\libavformat.so.58\n         129496      1 4895da33d08a56dfb48daa79a3bcee9f9c361649     0 game\\bin\\linuxsteamrt64\\libavresample.so.4\n         712672      1 451e7c11727fefe58f2cca8fc0e0cd0bc562f43e     0 game\\bin\\linuxsteamrt64\\libavutil.so.56\n        1596148      2 b96dfdf2fe9a36436fd4f04ca78e292982ea15b1     0 game\\bin\\linuxsteamrt64\\libcairo.so\n-      11158432     11 e4ecff8b413f8d55553aabc4840d33f384aefdf3     0 game\\bin\\linuxsteamrt64\\libengine2.so\n-       3108744      3 8d3a0ab5d79de09b04d8a27011a697ca4528fb2d     0 game\\bin\\linuxsteamrt64\\libfilesystem_stdio.so\n+      11158432     11 b8fd6c32f218cb3bce5c2a333fd3adf3c6214940     0 game\\bin\\linuxsteamrt64\\libengine2.so\n+       3108744      3 d3cae622c8ce4cf58a810da91e903461d0aa22fd     0 game\\bin\\linuxsteamrt64\\libfilesystem_stdio.so\n        1304272      2 0af1352041c54e16129773dc8d038872f9f839be     0 game\\bin\\linuxsteamrt64\\libfontconfig.so.1\n        3930056      4 0b64e7c4eab1a6313867cb39c0fafbeb026aac7f     0 game\\bin\\linuxsteamrt64\\libfreetype.so.6\n-        513732      1 fdc1e2cc13a6ddd503628eb25a9339ce43ed8d84     0 game\\bin\\linuxsteamrt64\\libinputsystem.so\n-        648856      1 17746564434c03f97488384cf1f717bf72223a10     0 game\\bin\\linuxsteamrt64\\liblocalize.so\n-       1795744      2 118c122d1835900fefc44a0e44f86575e8a1a8a5     0 game\\bin\\linuxsteamrt64\\libmaterialsystem2.so\n-       2011620      2 169d7d3b32aaf3b22770b10c518b6bbde6a8622b     0 game\\bin\\linuxsteamrt64\\libmeshsystem.so\n+        513732      1 7c14219443cdb6f8859ba69a44bab1f9d194a2fd     0 game\\bin\\linuxsteamrt64\\libinputsystem.so\n+        648856      1 42cfa49393332d46fde5739d59724594ce97b29c     0 game\\bin\\linuxsteamrt64\\liblocalize.so\n+       1795744      2 8aec8095fdc80f31e42b85a16872cf49772ec09a     0 game\\bin\\linuxsteamrt64\\libmaterialsystem2.so\n+       2011620      2 61da167872eea90673fbe6b0d711e071571a1aa4     0 game\\bin\\linuxsteamrt64\\libmeshsystem.so\n        1051154      2 312f15ffc6ca79979618858b7e371c056b5b74b2     0 game\\bin\\linuxsteamrt64\\libmpg123.so.0\n-       4864820      5 a3d12dd40f7f10e698208b1eaf476b8ceaf2adb9     0 game\\bin\\linuxsteamrt64\\libnetworksystem.so\n+       4864820      5 246923dc3c9b6b367c93d4730df1dee021e50ad7     0 game\\bin\\linuxsteamrt64\\libnetworksystem.so\n          35112      1 5f38ba115a525c4dee3dea7d9625a2164b84d457     0 game\\bin\\linuxsteamrt64\\libogg.so.0\n        1278424      2 e99953922de86b898b2f0c9abc38ae24c6aea2b4     0 game\\bin\\linuxsteamrt64\\libpango-1.0.so.0\n         442632      1 9e20da60c2343c610624175113428f4089236585     0 game\\bin\\linuxsteamrt64\\libpangoft2-1.0.so.0\n-       7025168      7 25c479f43f885302caa79fb0806570c8f1269366     0 game\\bin\\linuxsteamrt64\\libpanorama.so\n-       4878328      5 fff1135ac405f121ff3af28642ea4632c719a919     0 game\\bin\\linuxsteamrt64\\libpanoramauiclient.so\n+       7025424      7 8ba8a923f234038c7c1ae98e956675bfdafecbf1     0 game\\bin\\linuxsteamrt64\\libpanorama.so\n+       4878456      5 9ee4ef64197746622cb4026e6073d752cb19d806     0 game\\bin\\linuxsteamrt64\\libpanoramauiclient.so\n        3202820      4 fec2f55b60399acd70d543ea35633f89a97eb771     0 game\\bin\\linuxsteamrt64\\libpanorama_text_pango.so\n-       8612056      9 91cb91e6fa1e19dc70d96f6a5622838c7d782de2     0 game\\bin\\linuxsteamrt64\\libparticles.so\n+       8612056      9 4d746f89b7d06f57b7b6ef1a8bf8f169924fab5a     0 game\\bin\\linuxsteamrt64\\libparticles.so\n       40786720     40 850311e7b530d04bcfbdee1e3e7d026a7791098d     0 game\\bin\\linuxsteamrt64\\libphonon.so\n-       2357916      3 87b82e6936fca5db0a85ba5004dd6b5f31068839     0 game\\bin\\linuxsteamrt64\\libpulse_system.so\n-       3679424      4 c7c6c991afc6346f6ef464752fbc36ebad94e7ec     0 game\\bin\\linuxsteamrt64\\librendersystemempty.so\n-       9199516     10 90af184604f6e3d5b70d29c9a7b2399fd33b4473     0 game\\bin\\linuxsteamrt64\\librendersystemvulkan.so\n-        800200      1 95465d864c6871d583ca4fd0576109020b34b42b     0 game\\bin\\linuxsteamrt64\\libresourcesystem.so\n-       3936472      4 fe116e09ced35241f4331094a54235dc8dd652ae     0 game\\bin\\linuxsteamrt64\\libscenefilecache.so\n-      10777468     11 3a9bd9792e999e94206fda1dadeacf2d32c96477     0 game\\bin\\linuxsteamrt64\\libscenesystem.so\n-        713948      1 ad85dae76aad400f723e768ee7286fc6993c7c2f     0 game\\bin\\linuxsteamrt64\\libschemasystem.so\n+       2357916      3 a0122e3156918f8c58a7f6be93fc823243a54b6f     0 game\\bin\\linuxsteamrt64\\libpulse_system.so\n+       3679424      4 e2225dec8d51bdfc0d53a6a54d54849487df9e89     0 game\\bin\\linuxsteamrt64\\librendersystemempty.so\n+       9199516     10 b2c9ee0d939b25727cb56dbd89fbee4755d98aa0     0 game\\bin\\linuxsteamrt64\\librendersystemvulkan.so\n+        800200      1 77686038b3b2d330b48bddf55902d173b1f842a8     0 game\\bin\\linuxsteamrt64\\libresourcesystem.so\n+       3936472      4 e302a9468e39d94d4f00965610cc401be4ed3627     0 game\\bin\\linuxsteamrt64\\libscenefilecache.so\n+      10777468     11 9c804ca45ac80e79f0b883babb937ef21d14579a     0 game\\bin\\linuxsteamrt64\\libscenesystem.so\n+        713948      1 783bccbe42131eaf715fbe5ad20f64dbf60da3bc     0 game\\bin\\linuxsteamrt64\\libschemasystem.so\n        3229400      4 0558f1091e79b187e42491955cf362112598cff5     0 game\\bin\\linuxsteamrt64\\libSDL3.so.0\n-       7962196      8 f8b3d7618016aef0270517c79848a225837296b8     0 game\\bin\\linuxsteamrt64\\libsoundsystem.so\n-       4771364      5 57b51902f63f93920f5bea8e86feb5b5adcda44e     0 game\\bin\\linuxsteamrt64\\libsteamaudio.so\n+       7962196      8 859737510ae097d5fd87007727d403203e1f94eb     0 game\\bin\\linuxsteamrt64\\libsoundsystem.so\n+       4771364      5 264949d42b595935f4ac27a6f31cbc06e9fea71c     0 game\\bin\\linuxsteamrt64\\libsteamaudio.so\n        5692434      6 9ec4204cb535bb2c204a69c2d7d15e2b2c9682a1     0 game\\bin\\linuxsteamrt64\\libsteamnetworkingsockets.so\n         381976      1 c109666c839a433b5ff8f635ad173cde77bdcdb6     0 game\\bin\\linuxsteamrt64\\libsteam_api.so\n         555448      1 a1191c624317a97fbf634aa13990bc12abd45179     0 game\\bin\\linuxsteamrt64\\libswscale.so.5\n-       5028700      5 e68e1cc5a0c06f7694b07627b9196de05a4f7131     0 game\\bin\\linuxsteamrt64\\libtier0.so\n+       5028700      5 8f63a592519742cf277888dc1a9d6dbcc49d6dad     0 game\\bin\\linuxsteamrt64\\libtier0.so\n       30769216     30 a3ef228ee95892e08350e73af7a4063d24334c15     0 game\\bin\\linuxsteamrt64\\libv8.so\n         480560      1 414fb2fac6d9e14c08115f7f68da98e33ef347d2     0 game\\bin\\linuxsteamrt64\\libv8system.so\n        2926872      3 e84e468c1885ff699fdda290c1aed696b2fcc6cc     0 game\\bin\\linuxsteamrt64\\libv8_icui18n.so\n@@ -56,20 +56,20 @@ Total bytes compressed : 4605726512\n        1172208      2 b22b9ba29bffe328d33c6a1790e5f2b81736bf13     0 game\\bin\\linuxsteamrt64\\libv8_libcpp.so\n         113320      1 a4144e9f7d534ba89e1b9dd47de7c636819d43e0     0 game\\bin\\linuxsteamrt64\\libv8_libplatform.so\n         110600      1 1f3829ba17a72c8c705b66d0a48bfbd60d9b9e1d     0 game\\bin\\linuxsteamrt64\\libv8_zlib.so\n-        494128      1 aa118060f902be05fd2b5e07ac10a8af20c78b29     0 game\\bin\\linuxsteamrt64\\libvconcomm.so\n+        494128      1 39626ca8171e6ce123f84f0b55126a0e5f8d9759     0 game\\bin\\linuxsteamrt64\\libvconcomm.so\n        7032600      7 f892d251c04221fc7e54c32c379a368b8f041bee     0 game\\bin\\linuxsteamrt64\\libvideo.so\n         183104      1 236012fc609253612d606f5670749387d751a6eb     0 game\\bin\\linuxsteamrt64\\libvorbis.so.0\n         690400      1 b5d3043cadc61cd22fa21ee22eae3546cc7f621b     0 game\\bin\\linuxsteamrt64\\libvorbisenc.so.2\n          35360      1 3c4c4fc86877c37c8f637ceae9c91795adfd23d4     0 game\\bin\\linuxsteamrt64\\libvorbisfile.so.3\n-       5739752      6 b864fa89943f572e78239863c7016133c600044e     0 game\\bin\\linuxsteamrt64\\libvphysics2.so\n+       5739752      6 b8a02c1664a9fe22ddc74ecb9a5848342c26ae66     0 game\\bin\\linuxsteamrt64\\libvphysics2.so\n        3205768      4 7ee108b86e414426587fcf8d64e037c7f3f78544     0 game\\bin\\linuxsteamrt64\\libvpx.so.6\n-       1296400      2 f63aa2c6334168781aa9b5bd2db22c0cc3a98a71     0 game\\bin\\linuxsteamrt64\\libvscript.so\n-       4570212      5 9401bc49adf98aa264340e34e93dfc06fd786adc     0 game\\bin\\linuxsteamrt64\\libworldrenderer.so\n+       1296400      2 bd6d7e2be9b1a526f017bc474c84296569cf23d7     0 game\\bin\\linuxsteamrt64\\libvscript.so\n+       4570212      5 7464ba7da046b1de971e290bfcf582d20aeaedde     0 game\\bin\\linuxsteamrt64\\libworldrenderer.so\n           3822      1 956919b920713ce452f46c20cf8643674f7543f7     0 game\\cs2.sh\n-      74208376     71 a0729807ba98a01f7c8fde6b2a787897403028f6     0 game\\csgo\\bin\\linuxsteamrt64\\libclient.so\n-       3184412      4 2a6ef4e4bdf777c3ccd9d2d11c8cfce69baeb82f     0 game\\csgo\\bin\\linuxsteamrt64\\libhost.so\n-       3775044      4 4a6bd2fa9528edbac347b03c837c3158d93bca75     0 game\\csgo\\bin\\linuxsteamrt64\\libmatchmaking.so\n-      41807640     40 da6d2163b63dbc977b94d454dd3eb1ceb322e3a5     0 game\\csgo\\bin\\linuxsteamrt64\\libserver.so\n+      74208760     71 34c9b737c072b81db28a1e84bb5c72404ce9bd19     0 game\\csgo\\bin\\linuxsteamrt64\\libclient.so\n+       3184412      4 adad77afb94069ba33399c4ed33a5b4f3a64fb04     0 game\\csgo\\bin\\linuxsteamrt64\\libhost.so\n+       3775044      4 5770b453a084c4d0bb77ca94860111b7bfdaaadf     0 game\\csgo\\bin\\linuxsteamrt64\\libmatchmaking.so\n+      41807736     40 cb4bab97878a1f04990edf9b68d1240f473b606e     0 game\\csgo\\bin\\linuxsteamrt64\\libserver.so\n      182648578    175 d4b7d7aea361a8b94c54e79904d642d712a1a3f5     0 game\\csgo_community_addons\\cs_shelter\\cs_shelter_000.vpk\n      107052112    105 2c61877687a4e433f04a62340fb3ce54b70e039c     0 game\\csgo_community_addons\\cs_shelter\\cs_shelter_001.vpk\n      106101480    104 e5dc305d96a55ae88a396ac6d98037209b4520ce     0 game\\csgo_community_addons\\cs_shelter\\cs_shelter_002.vpk"
        },
        {
          "filename": "manifests/manifest_2347779.txt",
          "status": "modified",
          "additions": 30,
          "deletions": 30,
          "changes": 60,
          "patch": "@@ -1,10 +1,10 @@\n Content Manifest for Depot 2347779 \n \n-Manifest ID / date     : 6999460720639345485 / 10/30/2026 21:06:20 \n+Manifest ID / date     : 9144463342521858931 / 11/03/2026 00:27:26 \n Total number of files  : 909 \n Total number of chunks : 2523 \n-Total bytes on disk    : 2108138499 \n-Total bytes compressed : 576286240 \n+Total bytes on disk    : 2108139011 \n+Total bytes compressed : 576285616 \n \n \n           Size Chunks File SHA                                 Flags Name\n@@ -633,18 +633,18 @@ Total bytes compressed : 576286240\n             34      1 5ae7a5871cb358698c8a47d83b787447ebb23b53     0 content\\csgo_addons\\workshop_items\\workshop_items.txt\n          32991      1 9d6322a3e2262994d74bb905f9fedcea2e5505b8     0 game\\bin\\assettypes_common.txt\n           3734      1 970059aac54dddba1b88fdec2836afd7261e5a2f     0 game\\bin\\sdkenginetools.txt\n-       3728024      4 cdf9adddba6dab0bb14a296393128ae45c6351a7     0 game\\bin\\win64\\assetbrowser.dll\n-      33821336     33 526ed6a6ddf2c2d7ff3a0086e635daa8732e2049     0 game\\bin\\win64\\assetrename.dll\n-       5703320      6 69aef54a5be46a22842ba8a8671ef057da9ffedd     0 game\\bin\\win64\\assetsystem.dll\n+       3728024      4 f188f8ac78b13b7f9cbf9bb3a5cc0e8426d8df33     0 game\\bin\\win64\\assetbrowser.dll\n+      33821336     33 584e63a192942b91df259e8aef86a9c262567e38     0 game\\bin\\win64\\assetrename.dll\n+       5703320      6 265f267641ffa2f5f8eacca5ce3ae23c95c15b01     0 game\\bin\\win64\\assetsystem.dll\n        1529856      2 45e7d0873608e5424312fa289a270f2faacfe8fa     0 game\\bin\\win64\\bc7e.dll\n-        396952      1 3a1580720932ad35bdc8455fea40739014877638     0 game\\bin\\win64\\cs2_build_econ_items_workshop.exe\n-         13866      1 6e66eefa3c87d4a1c8b0971d9c9006ad4bed4f81     0 game\\bin\\win64\\csgo.signatures\n-       1271448      2 41ff225a0583e28a3755588aac5634c5db7af5c4     0 game\\bin\\win64\\csgocfg.exe\n-      15683736     15 2e0961f7f4e0776a11546c4f8a6ee8797cd7a478     0 game\\bin\\win64\\cs_mdl_import.exe\n-       1196696      2 f3364d2c801c80b4e2eb6d8c76a6ec0aca706962     0 game\\bin\\win64\\dmxconvert.exe\n-       3682968      4 21d3a8712c8d71e2dcc790a44f5c8cda24f79ab7     0 game\\bin\\win64\\exportsystem.dll\n+        396952      1 d40100945a08d047d65a8f8c1ba557351467136b     0 game\\bin\\win64\\cs2_build_econ_items_workshop.exe\n+         13866      1 22ce12bf18f6df3737c2ac7a83452663ed531f04     0 game\\bin\\win64\\csgo.signatures\n+       1271448      2 e0c0511657da151a4b8546e1ccb0f2eb5e6c6a40     0 game\\bin\\win64\\csgocfg.exe\n+      15683736     15 2787c3be064fd2215239c7fe9cb6f573d4984d9a     0 game\\bin\\win64\\cs_mdl_import.exe\n+       1196696      2 5691c2eec39a867bdb053d6880e5bc18b0bfde2a     0 game\\bin\\win64\\dmxconvert.exe\n+       3682968      4 e974da9fba42ae47defaf2d0c0c6bb8e1aba76cf     0 game\\bin\\win64\\exportsystem.dll\n        1418240      2 d1cc730f23d2b2f8567555d0c09a36dfd01e45c9     0 game\\bin\\win64\\ispc_texcomp.dll\n-      16949912     17 c45e12842ab3f33a26a6088d9bf6646e2fe9ae33     0 game\\bin\\win64\\modeldoc_utils.dll\n+      16949912     17 96d357b1830088fa13a52c230e2744c419424ae5     0 game\\bin\\win64\\modeldoc_utils.dll\n         177280      1 27c1a881c6648129f95646e61e6f101d15ddd692     0 game\\bin\\win64\\OpenImageDenoise.dll\n       50625664     49 cb2153ac3d4f75ddfb071802c9dbb39c48acf078     0 game\\bin\\win64\\OpenImageDenoise_core.dll\n         513664      1 be8640db91ff826e381a9b6ea1a89e5fec462c5c     0 game\\bin\\win64\\OpenImageDenoise_device_cpu.dll\n@@ -654,26 +654,26 @@ Total bytes compressed : 576286240\n         831616      1 7ca261e89897f9905ffc656b84e7f0d5c49dd896     0 game\\bin\\win64\\pi_level_zero.dll\n          95360      1 e7364c7c47a730233631c86b1993b2b5098df426     0 game\\bin\\win64\\pi_win_proxy_loader.dll\n         165528      1 8fb641fb82a8e7e70f6c6f683ba73b981cccc873     0 game\\bin\\win64\\resourcecompiler.exe\n-       1479832      2 ee88306dfc4d55150545ecb2c269172d54e86b40     0 game\\bin\\win64\\resourcecopy.exe\n-       3925656      4 79fa01cfc438e65c2bffa4b7e06f6dedb8f0b5b2     0 game\\bin\\win64\\resourceinfo.exe\n-       1511576      2 c5c369b26b718e196d7e8ca38063af69574a1e5a     0 game\\bin\\win64\\smartprops.dll\n-      18281112     19 fda0033b3177971213cc9e0e90a7ac0bff8ac742     0 game\\bin\\win64\\source1import.exe\n+       1479832      2 da427e2f64c2ba8a3dc34687d82656fb095f97b5     0 game\\bin\\win64\\resourcecopy.exe\n+       3925656      4 af3704a0daf835577cb996711dba9bfd755b62f0     0 game\\bin\\win64\\resourceinfo.exe\n+       1511576      2 5166fc0459e04f4c1399ab78760bd23fcc1374bd     0 game\\bin\\win64\\smartprops.dll\n+      18281112     19 f11c5023e92886cbeb328234a466c3acb06af547     0 game\\bin\\win64\\source1import.exe\n        4600960      5 ee4319b51e4210bb9046ec3ddee39878ab4ad33c     0 game\\bin\\win64\\sycl7.dll\n         319616      1 668b7a5c4c4f9456f73a6014df1b02ae05480195     0 game\\bin\\win64\\tbb12.dll\n          47744      1 6169fdd71db33cc70ef4e8c853edd73571ffc538     0 game\\bin\\win64\\tbbbind.dll\n          47744      1 5e52608c5ff4fffb626a9ab3a81a0913c132fd93     0 game\\bin\\win64\\tbbbind_2_0.dll\n          48768      1 b28a6fd65fe96ff562b07fcbcfe740e63a73604a     0 game\\bin\\win64\\tbbbind_2_5.dll\n-      14937240     15 f0ef2480f60bb6e9dc51d39f7c1438fb090580f9     0 game\\bin\\win64\\toolscenenodes.dll\n-       6680216      7 54df7544ec5c62db5d5665fb1d4d93e3fd3c2715     0 game\\bin\\win64\\tools\\cs2_item_editor.dll\n-       2348184      3 b88d5b6645fd70323781fedbf3278493bc17e4c8     0 game\\bin\\win64\\tools\\cs2_workshop_manager.dll\n-      39611544     39 a0ec8807bcb2012b0a15f083f816256536603c2e     0 game\\bin\\win64\\tools\\hammer.dll\n-       4787352      5 a94d36e185c5af92cdaa77b43e6d3164b93e3b1e     0 game\\bin\\win64\\tools\\met.dll\n-      27271832     27 2bccca8deac7cd9fd2e28071af16763ded581220     0 game\\bin\\win64\\tools\\modeldoc_editor.dll\n-       9320088      9 398d5e8f49b7fed99fc89ebdd4580fb99255e2ec     0 game\\bin\\win64\\tools\\pet.dll\n-       7924888      8 c7729a84c9e833d9ecf7b10bd0bc2847e0db9589     0 game\\bin\\win64\\tools\\postprocessingeditor.dll\n-      13459608     13 ef695e294d8f374b855b2178a1cc57d014ee46d1     0 game\\bin\\win64\\tools\\sfm.dll\n-       1532568      2 3cb34f647837b87d48d4581ef24d8283a803cb2b     0 game\\bin\\win64\\tools\\subrecteditor.dll\n-       3269272      4 ffdd183287816b80b05233abd7261ba3a15221fb     0 game\\bin\\win64\\vrad3.dll\n+      14937240     15 3186fdb1ad19348d2fdc8150909b4a5c97bcb28c     0 game\\bin\\win64\\toolscenenodes.dll\n+       6680216      7 d04da3fbc0469caf5cf5c740f7b7a2a47f534b48     0 game\\bin\\win64\\tools\\cs2_item_editor.dll\n+       2348184      3 264cb8f108565161c07f98a7613501fe214bab9e     0 game\\bin\\win64\\tools\\cs2_workshop_manager.dll\n+      39611544     39 33f8a100af6c403c134f05b7f51b6acee9ffeda3     0 game\\bin\\win64\\tools\\hammer.dll\n+       4787352      5 60d9beb0c22f69363f18a07d3bf10288bc9ad742     0 game\\bin\\win64\\tools\\met.dll\n+      27271832     27 86e536006e7616a8cee816722b2ac49bf46cfbe2     0 game\\bin\\win64\\tools\\modeldoc_editor.dll\n+       9320088      9 e6e84532df1bd0ad7c2d493d77daf6358fae614e     0 game\\bin\\win64\\tools\\pet.dll\n+       7924888      8 4dd16fa1eddda0dbfa587915b0283734cf80987b     0 game\\bin\\win64\\tools\\postprocessingeditor.dll\n+      13459608     13 b324c9a2bd2e57c2201ade4a64e594bd329f12b1     0 game\\bin\\win64\\tools\\sfm.dll\n+       1532568      2 93859458c875526b6751d47449cfb097dc80f0e5     0 game\\bin\\win64\\tools\\subrecteditor.dll\n+       3269272      4 809cb8eff22456e59dc5b6198adffc8ffcdf4b39     0 game\\bin\\win64\\vrad3.dll\n         165528      1 c1c90737ec6f5507a45e5beb66308ddb430b8fab     0 game\\bin\\win64\\vrad3.exe\n          74744      1 fdcd0602e39a727985c5b41524c26c5b1f0e4635     0 game\\core\\ai_basenpc.fgd\n          40196      1 0ef10aaa7fb9d6f248ea7b9bed4f676cbb2a769b     0 game\\core\\ai_defaultnpc.fgd\n@@ -687,7 +687,7 @@ Total bytes compressed : 576286240\n           2004      1 5cb2856b8584f65147b80cd8c87e1cbe1c155992     0 game\\core\\postprocessing.fgd\n         423652      1 c5428fef616a47986946d6c793ec643e42b85246     0 game\\core\\readonly_tools_asset_info.bin\n           4922      1 ef927dc90ee64b75629aea8e9b62e8f5dcb0864b     0 game\\core\\vdata_base.fgd\n-      17946264     18 555499df53336fd6e9bb6c2e7a85702220fbeda4     0 game\\csgo\\bin\\win64\\modtools.dll\n+      17946776     18 5a39ede87a3d07051eef69cbf31e70b649ad7b8a     0 game\\csgo\\bin\\win64\\modtools.dll\n          89997      1 e5c2f5ffa14a73b9d5dbc8e967a7371a505d3df2     0 game\\csgo\\csgo.fgd\n         398843      1 5ccbe56ddcb35b7e10316f10ab5294742a75b391     0 game\\csgo\\import_scripts\\bin\\base.fgd\n          55534      1 d1dd4689259623923344c03ba682713d4427d7b7     0 game\\csgo\\import_scripts\\bin\\csgo.fgd\n@@ -721,7 +721,7 @@ Total bytes compressed : 576286240\n         133435      1 5c5acf7bffba281b1fb2de939a6953c385e26ac3     0 game\\csgo\\lighting\\postprocessing\\editor\\toolsscene_default.vpost_c\n           3823      1 aaa9517703492629cade78571c39f5fdc2c417e3     0 game\\csgo\\models_gamedata.fgd\n           1559      1 ccef3c777e99029f1956e3ad23a718a99fd36d14     0 game\\csgo\\postprocessing.fgd\n-      50760417     51 a1997ec54c03935c14e37f7748fecf207030dc7c     0 game\\csgo\\readonly_tools_asset_info.bin\n+      50760417     51 2864b89d3750e3547f9063365e334dca0fcd55c5     0 game\\csgo\\readonly_tools_asset_info.bin\n           3009      1 8374c54025aad8c3d4a72b5f7f198d99951b7844     0 game\\csgo\\tools\\cs2_icon_gen\\icon_camera.png\n           2390      1 436ef3b91600906f462a33b9973b3f0955ddf1d6     0 game\\csgo\\tools\\cs2_icon_gen\\icon_item.png\n           2566      1 d78fd6c17e836a35c1cff4b375de7928ea5aea40     0 game\\csgo\\tools\\cs2_icon_gen\\icon_light_fill.png"
        },
        {
          "filename": "manifests/manifest_731.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 731 \n \n-Manifest ID / date     : 3579580227224146060 / 10/30/2026 21:03:36 \n+Manifest ID / date     : 5799502335586127231 / 11/03/2026 00:24:30 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36     0 game\\bin\\content_built_from_cl.txt\n+             8      1 759958d606a65558944eea2a1f6f5d7f6de48b65     0 game\\bin\\content_built_from_cl.txt"
        },
        {
          "filename": "manifests/manifest_732.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 732 \n \n-Manifest ID / date     : 4813741465053806363 / 10/30/2026 21:03:43 \n+Manifest ID / date     : 4514904948984964204 / 11/03/2026 00:24:37 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36     0 game\\bin\\content_built_from_cl.txt\n+             8      1 759958d606a65558944eea2a1f6f5d7f6de48b65     0 game\\bin\\content_built_from_cl.txt"
        },
        {
          "filename": "manifests/manifest_733.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 733 \n \n-Manifest ID / date     : 7325926150770753053 / 10/30/2026 21:03:50 \n+Manifest ID / date     : 4581807251902851325 / 11/03/2026 00:24:44 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36     0 game\\bin\\content_built_from_cl.txt\n+             8      1 759958d606a65558944eea2a1f6f5d7f6de48b65     0 game\\bin\\content_built_from_cl.txt"
        },
        {
          "filename": "manifests/manifest_734.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 734 \n \n-Manifest ID / date     : 263743024181583359 / 10/30/2026 21:03:56 \n+Manifest ID / date     : 519374194040118223 / 11/03/2026 00:24:50 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36     0 game\\bin\\content_built_from_cl.txt\n+             8      1 759958d606a65558944eea2a1f6f5d7f6de48b65     0 game\\bin\\content_built_from_cl.txt"
        },
        {
          "filename": "manifests/manifest_735.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 735 \n \n-Manifest ID / date     : 5004729745720806412 / 10/30/2026 21:04:02 \n+Manifest ID / date     : 7430157609109467345 / 11/03/2026 00:24:57 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36     0 game\\bin\\content_built_from_cl.txt\n+             8      1 759958d606a65558944eea2a1f6f5d7f6de48b65     0 game\\bin\\content_built_from_cl.txt"
        }
      ]
    },
    {
      "event_id": "gh:0003758",
      "detected_at_utc": "2026-11-13T14:09:50.989Z",
      "commit_date_utc": "2026-10-30T22:16:46Z",
      "commit": {
        "sha": "00037586b57e4f3efabf50076a15ce2a6c2f3004",
        "short": "0003758",
        "message": "2000939 | 116 files | M\tgame/bin/built_from_cl.txt, M\tgame/csgo/bin/win64/server_strings.txt, M\tgame/csgo/pak01_dir.txt, M\tgame/csgo/pak01_dir/soundevents/music/3kliksphilip_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/adambeyer_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/alrt_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/altare_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/amontobin_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/austinwintory_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/austinwintory_02/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/austinwintory_03/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/austinwintory_04/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/awolnation_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/bbnos_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soun",
        "url": "https://github.com/SteamTracking/GameTracking-CS2/commit/00037586b57e4f3efabf50076a15ce2a6c2f3004"
      },
      "classification": {
        "tags": [
          "misc",
          "content-change"
        ],
        "important_files": []
      },
      "ai_summary": "General update: “2000939 | 116 files | M\tgame/bin/built_from_cl.txt, M\tgame/csgo/bin/win64/server_strings.txt, M\tgame/csgo/pak01_dir.txt, M\tgame/csgo/pak01_dir/soundevents/music/3kliksphilip_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/adambeyer_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/alrt_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/altare_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/amontobin_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/austinwintory_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/austinwintory_02/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/austinwintory_03/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/austinwintory_04/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/awolnation_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soundevents/music/bbnos_01/game_sounds_music.vsndevts, M\tgame/csgo/pak01_dir/soun” Files touched: game/bin/built_from_cl.txt, game/csgo/bin/win64/server_strings.txt, game/csgo/pak01_dir.txt.",
      "stats": {
        "files_changed": 116,
        "additions": 381,
        "deletions": 419
      },
      "files": [
        {
          "filename": "game/bin/built_from_cl.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 1,
          "changes": 2,
          "patch": "@@ -1 +1 @@\n-11180900\n+11191483"
        },
        {
          "filename": "game/csgo/bin/win64/server_strings.txt",
          "status": "modified",
          "additions": 1,
          "deletions": 0,
          "changes": 1,
          "patch": "@@ -21566,6 +21566,7 @@ camera_path_delete\\n\n camera_path_load\\n\n camera_path_save\\n\n campaign\n+campaign completion bitfield\n campaign_definitions\n can't find SRP server param\n canRemoveVertex: Out of memory 'edges' (%d)."
        },
        {
          "filename": "game/csgo/pak01_dir.txt",
          "status": "modified",
          "additions": 130,
          "deletions": 160,
          "changes": 290,
          "patch": "@@ -1414,14 +1414,6 @@ animation/anims/viewmodel/rifle/rifle_galilar/lookat01_transfix_galilar.vnmclip_\n animation/anims/viewmodel/rifle/rifle_galilar/reload_galilar.vnmclip_c CRC:002e81444d size:32222\n animation/anims/viewmodel/rifle/rifle_galilar/reload_silent_galilar.vnmclip_c CRC:007be49685 size:57651\n animation/anims/viewmodel/rifle/rifle_galilar/shoot1_galilar.vnmclip_c CRC:0024b715f6 size:12180\n-animation/anims/viewmodel/rifle/rifle_lar/draw_lar.vnmclip_c CRC:00195a603d size:12050\n-animation/anims/viewmodel/rifle/rifle_lar/idle_lar.vnmclip_c CRC:00dd4e78ce size:4327\n-animation/anims/viewmodel/rifle/rifle_lar/ironsight_fidget_lar.vnmclip_c CRC:009c8c4bea size:4353\n-animation/anims/viewmodel/rifle/rifle_lar/ironsight_shoot_lar.vnmclip_c CRC:0020eaa126 size:9624\n-animation/anims/viewmodel/rifle/rifle_lar/lookat01_lar.vnmclip_c CRC:00612040ab size:19900\n-animation/anims/viewmodel/rifle/rifle_lar/reload_lar.vnmclip_c CRC:0072310f73 size:15165\n-animation/anims/viewmodel/rifle/rifle_lar/reload_silent_lar.vnmclip_c CRC:00a7e06c3c size:25769\n-animation/anims/viewmodel/rifle/rifle_lar/shoot1_lar.vnmclip_c CRC:006a09e8a8 size:10602\n animation/anims/viewmodel/rifle/rifle_m249/bullet_hide_m249.vnmclip+non_additive.vnmclip_c CRC:00eb7d47bd size:4631\n animation/anims/viewmodel/rifle/rifle_m249/bullet_hide_m249.vnmclip_c CRC:00ac511261 size:3063\n animation/anims/viewmodel/rifle/rifle_m249/draw_m249.vnmclip_c CRC:0061f41b42 size:18212\n@@ -2622,18 +2614,6 @@ animation/anims/world/rifle/rifle_galilar/reload_galilar.vnmclip_c CRC:007edfa8e\n animation/anims/world/rifle/rifle_galilar/reload_galilar_silent.vnmclip_c CRC:00064d0caa size:36690\n animation/anims/world/rifle/rifle_galilar/shoot_galilar.vnmclip+non_additive.vnmclip_c CRC:009b1495e0 size:13167\n animation/anims/world/rifle/rifle_galilar/shoot_galilar.vnmclip_c CRC:009fa743bb size:12148\n-animation/anims/world/rifle/rifle_lar/draw_crouch_lar.vnmclip_c CRC:00c4e0164b size:13700\n-animation/anims/world/rifle/rifle_lar/draw_lar.vnmclip_c CRC:0076c887ee size:15634\n-animation/anims/world/rifle/rifle_lar/idle_crouch_lar.vnmclip+non_additive.vnmclip_c CRC:002a6cbaeb size:4611\n-animation/anims/world/rifle/rifle_lar/idle_crouch_lar.vnmclip_c CRC:004a4afe19 size:4500\n-animation/anims/world/rifle/rifle_lar/idle_lar.vnmclip+non_additive.vnmclip_c CRC:0075193580 size:4607\n-animation/anims/world/rifle/rifle_lar/idle_lar.vnmclip_c CRC:00bae309e1 size:4429\n-animation/anims/world/rifle/rifle_lar/reload_crouch_lar.vnmclip_c CRC:00ee6855a2 size:25041\n-animation/anims/world/rifle/rifle_lar/reload_crouch_lar_silent.vnmclip_c CRC:006d162091 size:25041\n-animation/anims/world/rifle/rifle_lar/reload_lar.vnmclip_c CRC:00e235493c size:24967\n-animation/anims/world/rifle/rifle_lar/reload_lar_silent.vnmclip_c CRC:00bdca8355 size:24983\n-animation/anims/world/rifle/rifle_lar/shoot_lar.vnmclip+non_additive.vnmclip_c CRC:000f15329a size:10385\n-animation/anims/world/rifle/rifle_lar/shoot_lar.vnmclip_c CRC:003f8279a8 size:9377\n animation/anims/world/rifle/rifle_m249/draw_crouch_m249.vnmclip_c CRC:00fec3b9a7 size:15499\n animation/anims/world/rifle/rifle_m249/draw_m249.vnmclip_c CRC:00b587170e size:14892\n animation/anims/world/rifle/rifle_m249/idle_crouch_m249.vnmclip+non_additive.vnmclip_c CRC:008005a391 size:4572\n@@ -3276,7 +3256,6 @@ animation/skeletons/weapons/knife_stiletto.vnmskel_c CRC:00a7950052 size:1540\n animation/skeletons/weapons/knife_tactical.vnmskel_c CRC:00c7120e9a size:1493\n animation/skeletons/weapons/knife_talon.vnmskel_c CRC:00b191dfab size:1491\n animation/skeletons/weapons/knife_ursus.vnmskel_c CRC:00f9abbf7c size:1464\n-animation/skeletons/weapons/lar.vnmskel_c CRC:001cd323ec size:1689\n animation/skeletons/weapons/m249.vnmskel_c CRC:00ee32cbea size:2976\n animation/skeletons/weapons/m4a1_silencer.vnmskel_c CRC:0012527b96 size:1754\n animation/skeletons/weapons/m4a4.vnmskel_c CRC:00151b57cf size:1658\n@@ -81960,7 +81939,6 @@ panorama/images/econ/weapons/base_weapons/weapon_knife_tactical_png.vtex_c CRC:0\n panorama/images/econ/weapons/base_weapons/weapon_knife_twinblade_png.vtex_c CRC:00c68858dd size:122667\n panorama/images/econ/weapons/base_weapons/weapon_knife_ursus_png.vtex_c CRC:00760b6745 size:115614\n panorama/images/econ/weapons/base_weapons/weapon_knife_widowmaker_png.vtex_c CRC:005841e323 size:146607\n-panorama/images/econ/weapons/base_weapons/weapon_lar_png.vtex_c CRC:004244988f size:78190\n panorama/images/econ/weapons/base_weapons/weapon_m249_png.vtex_c CRC:004ce94674 size:166667\n panorama/images/econ/weapons/base_weapons/weapon_m4a1_png.vtex_c CRC:00ab6dcc85 size:154316\n panorama/images/econ/weapons/base_weapons/weapon_m4a1_silencer_png.vtex_c CRC:00b4030a2b size:88074\n@@ -82224,7 +82202,6 @@ panorama/images/icons/equipment/knife_twinblade.vsvg_c CRC:00e767f94b size:4109\n panorama/images/icons/equipment/knife_ursus.vsvg_c CRC:0083428279 size:8170\n panorama/images/icons/equipment/knife_widowmaker.vsvg_c CRC:0026b8d24c size:3837\n panorama/images/icons/equipment/knifegg.vsvg_c CRC:0029a517f7 size:4239\n-panorama/images/icons/equipment/lar.vsvg_c CRC:005b4c2f2c size:5479\n panorama/images/icons/equipment/m249.vsvg_c CRC:00be3f6faf size:8327\n panorama/images/icons/equipment/m4a1.vsvg_c CRC:00785c5ad4 size:5651\n panorama/images/icons/equipment/m4a1_silencer.vsvg_c CRC:009eada65d size:6212\n@@ -88002,36 +87979,36 @@ pulse/csgo_devonly/de_vertigo_script.vpulse_c CRC:00af116e39 size:4860\n radial_quickinventory.txt CRC:005a0c1bf5 size:1080\n rebuy.txt CRC:008332da3a size:1688\n resource/clientscheme.res CRC:00eb299496 size:14136\n-resource/csgo_brazilian.txt CRC:00a82282a2 size:5024585\n-resource/csgo_bulgarian.txt CRC:00ebe771bd size:7758533\n-resource/csgo_czech.txt CRC:005fe2aa54 size:5096987\n-resource/csgo_danish.txt CRC:000bc32d3d size:5003477\n-resource/csgo_dutch.txt CRC:00973afde0 size:5049304\n+resource/csgo_brazilian.txt CRC:0022c7c9bd size:5024748\n+resource/csgo_bulgarian.txt CRC:00e6aa803c size:7758759\n+resource/csgo_czech.txt CRC:00aa2da1f8 size:5097152\n+resource/csgo_danish.txt CRC:001655e064 size:5003477\n+resource/csgo_dutch.txt CRC:007e635df4 size:5049457\n resource/csgo_english.txt CRC:00a7f600cd size:4878645\n-resource/csgo_finnish.txt CRC:005d413fc3 size:4960257\n-resource/csgo_french.txt CRC:00d2063a7e size:5254356\n-resource/csgo_german.txt CRC:006b195d73 size:5164887\n-resource/csgo_greek.txt CRC:00cd04acb2 size:7151367\n-resource/csgo_hungarian.txt CRC:0028d04f96 size:5078385\n-resource/csgo_indonesian.txt CRC:00cd08196f size:4729034\n-resource/csgo_italian.txt CRC:00e843396f size:5178073\n-resource/csgo_japanese.txt CRC:0015bd64d3 size:5332761\n-resource/csgo_koreana.txt CRC:00753724c5 size:5096308\n-resource/csgo_latam.txt CRC:005efb1433 size:5188121\n-resource/csgo_norwegian.txt CRC:00ea089aaa size:4924516\n-resource/csgo_polish.txt CRC:002378ea91 size:5321400\n-resource/csgo_portuguese.txt CRC:005085ecf4 size:5059708\n-resource/csgo_romanian.txt CRC:006ffb7342 size:5270911\n-resource/csgo_russian.txt CRC:00e2df329d size:6563506\n-resource/csgo_schinese.txt CRC:00e7f44b7d size:4931303\n+resource/csgo_finnish.txt CRC:0040d7f29a size:4960257\n+resource/csgo_french.txt CRC:00cf90f727 size:5254356\n+resource/csgo_german.txt CRC:00768f902a size:5164887\n+resource/csgo_greek.txt CRC:00d09261eb size:7151367\n+resource/csgo_hungarian.txt CRC:0009ea7f21 size:5078539\n+resource/csgo_indonesian.txt CRC:00d09ed436 size:4729034\n+resource/csgo_italian.txt CRC:00f5d5f436 size:5178073\n+resource/csgo_japanese.txt CRC:008a06f43d size:5332955\n+resource/csgo_koreana.txt CRC:0068a1e99c size:5096308\n+resource/csgo_latam.txt CRC:00436dd96a size:5188121\n+resource/csgo_norwegian.txt CRC:00f79e57f3 size:4924516\n+resource/csgo_polish.txt CRC:003eee27c8 size:5321400\n+resource/csgo_portuguese.txt CRC:00ed24ede6 size:5059879\n+resource/csgo_romanian.txt CRC:00726dbe1b size:5270911\n+resource/csgo_russian.txt CRC:00ffa91341 size:6563734\n+resource/csgo_schinese.txt CRC:000d6871a9 size:4931452\n resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645\n-resource/csgo_spanish.txt CRC:00e84d8548 size:5159573\n-resource/csgo_swedish.txt CRC:00a5222d4e size:5031803\n-resource/csgo_tchinese.txt CRC:009fc43dda size:4627815\n-resource/csgo_thai.txt CRC:00e9e74af9 size:8128621\n-resource/csgo_turkish.txt CRC:00193dc7c6 size:5165343\n-resource/csgo_ukrainian.txt CRC:00b68118e5 size:6621012\n-resource/csgo_vietnamese.txt CRC:0085c7489b size:5450532\n+resource/csgo_spanish.txt CRC:00f5db4811 size:5159573\n+resource/csgo_swedish.txt CRC:00b8b4e017 size:5031803\n+resource/csgo_tchinese.txt CRC:008252f083 size:4627815\n+resource/csgo_thai.txt CRC:00f47187a0 size:8128621\n+resource/csgo_turkish.txt CRC:0004ab0a9f size:5165343\n+resource/csgo_ukrainian.txt CRC:00ab17d5bc size:6621012\n+resource/csgo_vietnamese.txt CRC:00985185c2 size:5450532\n resource/game.gameevents CRC:0090de10bc size:9837\n resource/halflife2.vfont CRC:00b064848c size:58000\n resource/mod.gameevents CRC:0035ddf423 size:20770\n@@ -88265,108 +88242,108 @@ soundevents/game_sounds_stopsoundevents.vsndevts_c CRC:00d6805181 size:1193\n soundevents/game_sounds_ui.vsndevts_c CRC:00d0987180 size:28368\n soundevents/game_sounds_weapons.vsndevts_c CRC:003629ddc2 size:50712\n soundevents/game_sounds_world.vsndevts_c CRC:00756a5064 size:6292\n-soundevents/music/3kliksphilip_01/game_sounds_music.vsndevts_c CRC:00e17cc3c1 size:4597\n-soundevents/music/adambeyer_01/game_sounds_music.vsndevts_c CRC:00d073883c size:3999\n-soundevents/music/alrt_01/game_sounds_music.vsndevts_c CRC:00077a5f17 size:4293\n-soundevents/music/altare_01/game_sounds_music.vsndevts_c CRC:00d1108040 size:4004\n-soundevents/music/amontobin_01/game_sounds_music.vsndevts_c CRC:008445c8ab size:4185\n-soundevents/music/austinwintory_01/game_sounds_music.vsndevts_c CRC:0052dcf8da size:4038\n-soundevents/music/austinwintory_02/game_sounds_music.vsndevts_c CRC:0095c0e93e size:4004\n-soundevents/music/austinwintory_03/game_sounds_music.vsndevts_c CRC:0069739b86 size:3955\n-soundevents/music/austinwintory_04/game_sounds_music.vsndevts_c CRC:0089d00749 size:3999\n-soundevents/music/awolnation_01/game_sounds_music.vsndevts_c CRC:007c7353a4 size:4189\n-soundevents/music/bbnos_01/game_sounds_music.vsndevts_c CRC:00d4a61f6a size:3826\n-soundevents/music/beartooth_01/game_sounds_music.vsndevts_c CRC:00649de003 size:4078\n-soundevents/music/beartooth_02/game_sounds_music.vsndevts_c CRC:0083b20c2f size:4027\n-soundevents/music/benbromfield_01/game_sounds_music.vsndevts_c CRC:006e8f013c size:3981\n-soundevents/music/blitzkids_01/game_sounds_music.vsndevts_c CRC:0083981c37 size:4074\n-soundevents/music/borne_01/game_sounds_music.vsndevts_c CRC:0014c04994 size:4140\n-soundevents/music/chipzel_01/game_sounds_music.vsndevts_c CRC:004f5ed2ac size:3817\n-soundevents/music/damjanmravunac_01/game_sounds_music.vsndevts_c CRC:003c0334b7 size:4143\n-soundevents/music/danielsadowski_01/game_sounds_music.vsndevts_c CRC:003cb0f6a7 size:3833\n-soundevents/music/danielsadowski_02/game_sounds_music.vsndevts_c CRC:007ead238f size:3833\n-soundevents/music/danielsadowski_03/game_sounds_music.vsndevts_c CRC:0028f85928 size:3939\n-soundevents/music/danielsadowski_04/game_sounds_music.vsndevts_c CRC:00aba26504 size:3858\n-soundevents/music/danielsadowski_05/game_sounds_music.vsndevts_c CRC:0049d91cd7 size:3809\n-soundevents/music/darude_01/game_sounds_music.vsndevts_c CRC:00d6813173 size:4026\n-soundevents/music/denzelcurry_01/game_sounds_music.vsndevts_c CRC:00120be127 size:4114\n-soundevents/music/dren_01/game_sounds_music.vsndevts_c CRC:00e0ac049c size:4134\n-soundevents/music/dren_02/game_sounds_music.vsndevts_c CRC:00b7bcfa41 size:4206\n-soundevents/music/dren_03/game_sounds_music.vsndevts_c CRC:00fe8be7fb size:4041\n-soundevents/music/dryden_01/game_sounds_music.vsndevts_c CRC:0060a8add0 size:3846\n-soundevents/music/feedme_01/game_sounds_music.vsndevts_c CRC:00a484f37f size:3916\n-soundevents/music/freakydna_01/game_sounds_music.vsndevts_c CRC:004f9bba64 size:4050\n-soundevents/music/ghost_01/game_sounds_music.vsndevts_c CRC:00359d2569 size:3980\n-soundevents/music/hades_01/game_sounds_music.vsndevts_c CRC:00bfc19003 size:4207\n-soundevents/music/halo_01/game_sounds_music.vsndevts_c CRC:00ae1a18cf size:4035\n-soundevents/music/health_01/game_sounds_music.vsndevts_c CRC:002c7e5d51 size:3917\n-soundevents/music/hlalyx_01/game_sounds_music.vsndevts_c CRC:00a3ac22c7 size:3122\n-soundevents/music/hlb_01/game_sounds_music.vsndevts_c CRC:00a5d77e49 size:4108\n-soundevents/music/hotlinemiami_01/game_sounds_music.vsndevts_c CRC:004116bb44 size:4268\n-soundevents/music/hundredth_01/game_sounds_music.vsndevts_c CRC:00a7d3bf60 size:4283\n-soundevents/music/ianhultquist_01/game_sounds_music.vsndevts_c CRC:00ec028f97 size:4074\n-soundevents/music/isoxo_01/game_sounds_music.vsndevts_c CRC:0026807e36 size:3914\n-soundevents/music/jamesandthecoldgun_01/game_sounds_music.vsndevts_c CRC:0006ac8e42 size:4027\n-soundevents/music/jesseharlin_01/game_sounds_music.vsndevts_c CRC:003e6761f1 size:3883\n-soundevents/music/jonathanyoung_01/game_sounds_music.vsndevts_c CRC:00502f4e8e size:3832\n-soundevents/music/juelz_01/game_sounds_music.vsndevts_c CRC:00005095e1 size:4031\n-soundevents/music/juelz_02/game_sounds_music.vsndevts_c CRC:00cdcda320 size:4112\n-soundevents/music/kellybailey_01/game_sounds_music.vsndevts_c CRC:0076bf1c05 size:3921\n-soundevents/music/killermike_01/game_sounds_music.vsndevts_c CRC:00ce189c63 size:3903\n-soundevents/music/killscript_01/game_sounds_music.vsndevts_c CRC:001b37b2e1 size:3849\n-soundevents/music/kitheory_01/game_sounds_music.vsndevts_c CRC:00d5926e53 size:3872\n-soundevents/music/knock2_01/game_sounds_music.vsndevts_c CRC:00b98a46bf size:3886\n-soundevents/music/knock2_02/game_sounds_music.vsndevts_c CRC:004d159f64 size:3923\n-soundevents/music/laurashigihara_01/game_sounds_music.vsndevts_c CRC:00f925df2d size:4072\n-soundevents/music/lenniemoore_01/game_sounds_music.vsndevts_c CRC:0002a5468c size:4324\n-soundevents/music/mateomessina_01/game_sounds_music.vsndevts_c CRC:00ce613d04 size:4133\n-soundevents/music/mattlange_01/game_sounds_music.vsndevts_c CRC:00a47e8e4f size:3916\n-soundevents/music/mattlevine_01/game_sounds_music.vsndevts_c CRC:009e74a9a3 size:4055\n-soundevents/music/mattlevine_02/game_sounds_music.vsndevts_c CRC:00929421b1 size:4062\n-soundevents/music/meechydarko_01/game_sounds_music.vsndevts_c CRC:002c6f216b size:4158\n-soundevents/music/michaelbross_01/game_sounds_music.vsndevts_c CRC:00467977b8 size:3873\n-soundevents/music/midnightriders_01/game_sounds_music.vsndevts_c CRC:003befb5f4 size:4076\n-soundevents/music/mordfustang_01/game_sounds_music.vsndevts_c CRC:00c8875ada size:3931\n-soundevents/music/neckdeep_01/game_sounds_music.vsndevts_c CRC:00f361cb64 size:4206\n-soundevents/music/neckdeep_02/game_sounds_music.vsndevts_c CRC:008b925735 size:4359\n-soundevents/music/newbeatfund_01/game_sounds_music.vsndevts_c CRC:0076684d86 size:4053\n-soundevents/music/noisia_01/game_sounds_music.vsndevts_c CRC:0052b1f913 size:4011\n-soundevents/music/perfectworld_01/game_sounds_music.vsndevts_c CRC:000d4cc02d size:3846\n-soundevents/music/perfectworld_02/game_sounds_music.vsndevts_c CRC:009326fcd0 size:3901\n-soundevents/music/pirapus_01/game_sounds_music.vsndevts_c CRC:0026307603 size:4050\n-soundevents/music/proxy_01/game_sounds_music.vsndevts_c CRC:00464544ef size:4128\n-soundevents/music/pvris_01/game_sounds_music.vsndevts_c CRC:0044a47740 size:4314\n-soundevents/music/radcat_01/game_sounds_music.vsndevts_c CRC:00e120424d size:3889\n-soundevents/music/repiet_01/game_sounds_music.vsndevts_c CRC:00acdc844d size:4076\n-soundevents/music/roam_01/game_sounds_music.vsndevts_c CRC:0037a56337 size:4173\n-soundevents/music/robertallaire_01/game_sounds_music.vsndevts_c CRC:00b0007752 size:4277\n-soundevents/music/sammarshall_01/game_sounds_music.vsndevts_c CRC:002a81d7d8 size:3961\n-soundevents/music/sammarshall_02/game_sounds_music.vsndevts_c CRC:007447b1b6 size:4144\n-soundevents/music/sarahschachner_01/game_sounds_music.vsndevts_c CRC:00ae709e0f size:3954\n-soundevents/music/sasha_01/game_sounds_music.vsndevts_c CRC:0081561582 size:3804\n-soundevents/music/scarlxrd_01/game_sounds_music.vsndevts_c CRC:00a38e7f4a size:3845\n-soundevents/music/scarlxrd_02/game_sounds_music.vsndevts_c CRC:0029b15909 size:3977\n-soundevents/music/seanmurray_01/game_sounds_music.vsndevts_c CRC:0023bc9d3f size:4070\n-soundevents/music/selectiveresponse_01/game_sounds_music.vsndevts_c CRC:004a65645b size:3951\n-soundevents/music/shockone_01/game_sounds_music.vsndevts_c CRC:00ea1208f0 size:4002\n-soundevents/music/skog_01/game_sounds_music.vsndevts_c CRC:0029303ade size:4209\n-soundevents/music/skog_02/game_sounds_music.vsndevts_c CRC:0086f5fdd7 size:3981\n-soundevents/music/skog_03/game_sounds_music.vsndevts_c CRC:000b2e4d42 size:3829\n-soundevents/music/starjunk95_01/game_sounds_music.vsndevts_c CRC:00e8654d14 size:4295\n-soundevents/music/sullivanking_01/game_sounds_music.vsndevts_c CRC:00ed0333af size:4047\n-soundevents/music/theverkkars_01/game_sounds_music.vsndevts_c CRC:00189ff4d0 size:4039\n-soundevents/music/theverkkars_02/game_sounds_music.vsndevts_c CRC:00ea764f80 size:4096\n-soundevents/music/tigercub_01/game_sounds_music.vsndevts_c CRC:00dd1f0587 size:3818\n-soundevents/music/timhuling_01/game_sounds_music.vsndevts_c CRC:000de04cda size:4034\n-soundevents/music/timhuling_02/game_sounds_music.vsndevts_c CRC:00485e64c0 size:4042\n-soundevents/music/treeadams_01/game_sounds_music.vsndevts_c CRC:00b936701c size:3895\n-soundevents/music/treeadams_benbromfield_01/game_sounds_music.vsndevts_c CRC:002490202d size:4170\n-soundevents/music/troelsfolmann_01/game_sounds_music.vsndevts_c CRC:0023bdb4a1 size:4031\n-soundevents/music/twerl_01/game_sounds_music.vsndevts_c CRC:003c6f8667 size:3850\n-soundevents/music/twinatlantic_01/game_sounds_music.vsndevts_c CRC:0099347cee size:4197\n-soundevents/music/valve_01/game_sounds_music.vsndevts_c CRC:00119cbc38 size:3367\n-soundevents/music/valve_02/game_sounds_music.vsndevts_c CRC:00e3e778af size:3141\n-soundevents/music/valve_cs2_01/game_sounds_music.vsndevts_c CRC:00a60c5198 size:3920\n+soundevents/music/3kliksphilip_01/game_sounds_music.vsndevts_c CRC:00776a2ada size:4597\n+soundevents/music/adambeyer_01/game_sounds_music.vsndevts_c CRC:0059e4ee95 size:3999\n+soundevents/music/alrt_01/game_sounds_music.vsndevts_c CRC:00d5208f76 size:4293\n+soundevents/music/altare_01/game_sounds_music.vsndevts_c CRC:00f0d32ac2 size:4004\n+soundevents/music/amontobin_01/game_sounds_music.vsndevts_c CRC:00e345c17e size:4185\n+soundevents/music/austinwintory_01/game_sounds_music.vsndevts_c CRC:00c1b86e6f size:4038\n+soundevents/music/austinwintory_02/game_sounds_music.vsndevts_c CRC:00f4002576 size:4004\n+soundevents/music/austinwintory_03/game_sounds_music.vsndevts_c CRC:00f740c8fd size:3955\n+soundevents/music/austinwintory_04/game_sounds_music.vsndevts_c CRC:008ce0c1b1 size:3999\n+soundevents/music/awolnation_01/game_sounds_music.vsndevts_c CRC:006594357c size:4189\n+soundevents/music/bbnos_01/game_sounds_music.vsndevts_c CRC:007005f629 size:3826\n+soundevents/music/beartooth_01/game_sounds_music.vsndevts_c CRC:00441880be size:4078\n+soundevents/music/beartooth_02/game_sounds_music.vsndevts_c CRC:00006cc5c5 size:4027\n+soundevents/music/benbromfield_01/game_sounds_music.vsndevts_c CRC:00e4727f4f size:3981\n+soundevents/music/blitzkids_01/game_sounds_music.vsndevts_c CRC:00dc606b17 size:4074\n+soundevents/music/borne_01/game_sounds_music.vsndevts_c CRC:00fa1071fa size:4156\n+soundevents/music/chipzel_01/game_sounds_music.vsndevts_c CRC:001529e21f size:3817\n+soundevents/music/damjanmravunac_01/game_sounds_music.vsndevts_c CRC:0090c0fbe4 size:4143\n+soundevents/music/danielsadowski_01/game_sounds_music.vsndevts_c CRC:0034299d1e size:3833\n+soundevents/music/danielsadowski_02/game_sounds_music.vsndevts_c CRC:005ae7f251 size:3833\n+soundevents/music/danielsadowski_03/game_sounds_music.vsndevts_c CRC:002b6d658c size:3939\n+soundevents/music/danielsadowski_04/game_sounds_music.vsndevts_c CRC:008185ece0 size:3858\n+soundevents/music/danielsadowski_05/game_sounds_music.vsndevts_c CRC:00200e99ea size:3809\n+soundevents/music/darude_01/game_sounds_music.vsndevts_c CRC:00b041213b size:4026\n+soundevents/music/denzelcurry_01/game_sounds_music.vsndevts_c CRC:003161c347 size:4114\n+soundevents/music/dren_01/game_sounds_music.vsndevts_c CRC:00a4330bce size:4134\n+soundevents/music/dren_02/game_sounds_music.vsndevts_c CRC:00e182be9f size:4206\n+soundevents/music/dren_03/game_sounds_music.vsndevts_c CRC:00fd97865b size:4041\n+soundevents/music/dryden_01/game_sounds_music.vsndevts_c CRC:0014642fbc size:3846\n+soundevents/music/feedme_01/game_sounds_music.vsndevts_c CRC:00544f22c8 size:3916\n+soundevents/music/freakydna_01/game_sounds_music.vsndevts_c CRC:0040122f80 size:4050\n+soundevents/music/ghost_01/game_sounds_music.vsndevts_c CRC:00c3366a28 size:3980\n+soundevents/music/hades_01/game_sounds_music.vsndevts_c CRC:00d947b718 size:4207\n+soundevents/music/halo_01/game_sounds_music.vsndevts_c CRC:00a5eae6e8 size:4035\n+soundevents/music/health_01/game_sounds_music.vsndevts_c CRC:008b320444 size:3917\n+soundevents/music/hlalyx_01/game_sounds_music.vsndevts_c CRC:00d690e8df size:3122\n+soundevents/music/hlb_01/game_sounds_music.vsndevts_c CRC:0026ddf3b7 size:4108\n+soundevents/music/hotlinemiami_01/game_sounds_music.vsndevts_c CRC:00633df5a4 size:4268\n+soundevents/music/hundredth_01/game_sounds_music.vsndevts_c CRC:000115086d size:4283\n+soundevents/music/ianhultquist_01/game_sounds_music.vsndevts_c CRC:00b101cc43 size:4074\n+soundevents/music/isoxo_01/game_sounds_music.vsndevts_c CRC:006dff4bf6 size:3914\n+soundevents/music/jamesandthecoldgun_01/game_sounds_music.vsndevts_c CRC:00cef4edee size:4027\n+soundevents/music/jesseharlin_01/game_sounds_music.vsndevts_c CRC:007544b555 size:3883\n+soundevents/music/jonathanyoung_01/game_sounds_music.vsndevts_c CRC:009be05054 size:3832\n+soundevents/music/juelz_01/game_sounds_music.vsndevts_c CRC:0087a99726 size:4031\n+soundevents/music/juelz_02/game_sounds_music.vsndevts_c CRC:00851878bb size:4112\n+soundevents/music/kellybailey_01/game_sounds_music.vsndevts_c CRC:00192fea8c size:3921\n+soundevents/music/killermike_01/game_sounds_music.vsndevts_c CRC:00b30c6e1a size:3903\n+soundevents/music/killscript_01/game_sounds_music.vsndevts_c CRC:00d57837a6 size:3849\n+soundevents/music/kitheory_01/game_sounds_music.vsndevts_c CRC:00dea0c9ca size:3872\n+soundevents/music/knock2_01/game_sounds_music.vsndevts_c CRC:0090ef6145 size:3886\n+soundevents/music/knock2_02/game_sounds_music.vsndevts_c CRC:00a0466ece size:3923\n+soundevents/music/laurashigihara_01/game_sounds_music.vsndevts_c CRC:005e2262e8 size:4072\n+soundevents/music/lenniemoore_01/game_sounds_music.vsndevts_c CRC:00d7bf7ae7 size:4324\n+soundevents/music/mateomessina_01/game_sounds_music.vsndevts_c CRC:001a654fe1 size:4133\n+soundevents/music/mattlange_01/game_sounds_music.vsndevts_c CRC:00b03558eb size:3916\n+soundevents/music/mattlevine_01/game_sounds_music.vsndevts_c CRC:000bb46a31 size:4055\n+soundevents/music/mattlevine_02/game_sounds_music.vsndevts_c CRC:0084207aa8 size:4062\n+soundevents/music/meechydarko_01/game_sounds_music.vsndevts_c CRC:0018ec467d size:4158\n+soundevents/music/michaelbross_01/game_sounds_music.vsndevts_c CRC:0038661537 size:3873\n+soundevents/music/midnightriders_01/game_sounds_music.vsndevts_c CRC:001d920b9a size:4076\n+soundevents/music/mordfustang_01/game_sounds_music.vsndevts_c CRC:006f35835e size:3931\n+soundevents/music/neckdeep_01/game_sounds_music.vsndevts_c CRC:001059f303 size:4206\n+soundevents/music/neckdeep_02/game_sounds_music.vsndevts_c CRC:00bdf64004 size:4359\n+soundevents/music/newbeatfund_01/game_sounds_music.vsndevts_c CRC:0002c4d404 size:4053\n+soundevents/music/noisia_01/game_sounds_music.vsndevts_c CRC:0025e23fe7 size:4011\n+soundevents/music/perfectworld_01/game_sounds_music.vsndevts_c CRC:0099d0a703 size:3846\n+soundevents/music/perfectworld_02/game_sounds_music.vsndevts_c CRC:00a939a2ad size:3901\n+soundevents/music/pirapus_01/game_sounds_music.vsndevts_c CRC:00381f963b size:4050\n+soundevents/music/proxy_01/game_sounds_music.vsndevts_c CRC:0078f5ea9f size:4128\n+soundevents/music/pvris_01/game_sounds_music.vsndevts_c CRC:008971ec4d size:4314\n+soundevents/music/radcat_01/game_sounds_music.vsndevts_c CRC:0043f822b5 size:3889\n+soundevents/music/repiet_01/game_sounds_music.vsndevts_c CRC:006678ad8a size:4076\n+soundevents/music/roam_01/game_sounds_music.vsndevts_c CRC:008389925f size:4173\n+soundevents/music/robertallaire_01/game_sounds_music.vsndevts_c CRC:00d51472bc size:4277\n+soundevents/music/sammarshall_01/game_sounds_music.vsndevts_c CRC:0059874202 size:3961\n+soundevents/music/sammarshall_02/game_sounds_music.vsndevts_c CRC:007694799e size:4144\n+soundevents/music/sarahschachner_01/game_sounds_music.vsndevts_c CRC:0052e4163c size:3954\n+soundevents/music/sasha_01/game_sounds_music.vsndevts_c CRC:00b85c25cc size:3804\n+soundevents/music/scarlxrd_01/game_sounds_music.vsndevts_c CRC:00b507826f size:3845\n+soundevents/music/scarlxrd_02/game_sounds_music.vsndevts_c CRC:00c9eceead size:3993\n+soundevents/music/seanmurray_01/game_sounds_music.vsndevts_c CRC:008d899837 size:4070\n+soundevents/music/selectiveresponse_01/game_sounds_music.vsndevts_c CRC:00753b6612 size:3951\n+soundevents/music/shockone_01/game_sounds_music.vsndevts_c CRC:0015a756c2 size:4002\n+soundevents/music/skog_01/game_sounds_music.vsndevts_c CRC:00c29b735d size:4209\n+soundevents/music/skog_02/game_sounds_music.vsndevts_c CRC:0078daf83a size:3981\n+soundevents/music/skog_03/game_sounds_music.vsndevts_c CRC:0057ed2d35 size:3829\n+soundevents/music/starjunk95_01/game_sounds_music.vsndevts_c CRC:00d11e9ff3 size:4295\n+soundevents/music/sullivanking_01/game_sounds_music.vsndevts_c CRC:00dd6e9603 size:4031\n+soundevents/music/theverkkars_01/game_sounds_music.vsndevts_c CRC:005d89f5b8 size:4039\n+soundevents/music/theverkkars_02/game_sounds_music.vsndevts_c CRC:00d8dc3b1d size:4096\n+soundevents/music/tigercub_01/game_sounds_music.vsndevts_c CRC:002d75ea0c size:3818\n+soundevents/music/timhuling_01/game_sounds_music.vsndevts_c CRC:002378d737 size:4034\n+soundevents/music/timhuling_02/game_sounds_music.vsndevts_c CRC:000409db09 size:4042\n+soundevents/music/treeadams_01/game_sounds_music.vsndevts_c CRC:008c7d8c7a size:3895\n+soundevents/music/treeadams_benbromfield_01/game_sounds_music.vsndevts_c CRC:00a664c49b size:4170\n+soundevents/music/troelsfolmann_01/game_sounds_music.vsndevts_c CRC:00376742a4 size:4031\n+soundevents/music/twerl_01/game_sounds_music.vsndevts_c CRC:00d3fafcf7 size:3850\n+soundevents/music/twinatlantic_01/game_sounds_music.vsndevts_c CRC:00a22e3dc8 size:4197\n+soundevents/music/valve_01/game_sounds_music.vsndevts_c CRC:004a9e237d size:3367\n+soundevents/music/valve_02/game_sounds_music.vsndevts_c CRC:00010b09bc size:3141\n+soundevents/music/valve_cs2_01/game_sounds_music.vsndevts_c CRC:00bec3ffd5 size:3920\n soundevents/soundevents_from_tools.vsndevts_c CRC:00a0f1a071 size:942\n soundevents/soundevents_manifest.vrman_c CRC:0079a0a6ca size:23877\n soundevents/soundevents_manifest_csgo_imported.vrman_c CRC:00239a171a size:712\n@@ -135977,13 +135954,6 @@ weapons/models/knife/knife_ursus/materials/composite_inputs/knife_ursus_pos_pfm_\n weapons/models/knife/knife_ursus/materials/composite_inputs/knife_ursus_surface_tga_ad201805.vtex_c CRC:0033c08ae7 size:554767\n weapons/models/knife/knife_ursus/materials/weapon_knife_ursus.vmat_c CRC:00c660f578 size:3832\n weapons/models/knife/knife_ursus/weapon_knife_ursus.vmdl_c CRC:001d21284c size:83447\n-weapons/models/lar/materials/weapon_rif_lar.vmat_c CRC:00dd005dd3 size:7476\n-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_albedo_jpg_a9420be9.vtex_c CRC:0006e63f39 size:3507116\n-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_emissive_jpg_9d61adb2.vtex_c CRC:003a925511 size:61547\n-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_normal_png_419b046c.vtex_c CRC:00a304009f size:4881460\n-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_roughness_jpg_55597ce4.vtex_c CRC:00b49da714 size:3653534\n-weapons/models/lar/mesh/fbx/do_not_ship/lar_temp.vmat_c CRC:005542aa01 size:4324\n-weapons/models/lar/weapon_rif_lar.vmdl_c CRC:00c47aa6cf size:1326175\n weapons/models/m249/materials/composite_inputs/m249_substrate_color_psd_833b9c73.vtex_c CRC:004df43269 size:4512366\n weapons/models/m249/materials/composite_inputs/weapon_mach_m249_cavity_psd_a55d713.vtex_c CRC:000fa7b910 size:788553\n weapons/models/m249/materials/composite_inputs/weapon_mach_m249_composite_inputs.vmat_c CRC:00e5c9f686 size:3849"
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/3kliksphilip_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -400,7 +400,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -425,7 +425,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/adambeyer_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -334,7 +334,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -359,7 +359,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/alrt_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -370,7 +370,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -395,7 +395,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/altare_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -333,7 +333,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -358,7 +358,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/amontobin_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -403,7 +403,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -428,7 +428,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/austinwintory_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -330,7 +330,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -355,7 +355,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/austinwintory_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -336,7 +336,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -361,7 +361,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/austinwintory_03/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -336,7 +336,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -361,7 +361,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/austinwintory_04/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -336,7 +336,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -361,7 +361,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/awolnation_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -364,7 +364,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -389,7 +389,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/bbnos_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -302,7 +302,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -327,7 +327,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/beartooth_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -336,7 +336,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -361,7 +361,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/beartooth_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -333,7 +333,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -358,7 +358,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/benbromfield_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -306,7 +306,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -331,7 +331,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/blitzkids_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -339,7 +339,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -364,7 +364,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/borne_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -370,7 +370,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -395,7 +395,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/chipzel_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -302,7 +302,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -327,7 +327,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/damjanmravunac_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -339,7 +339,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -364,7 +364,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/danielsadowski_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -305,7 +305,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -330,7 +330,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/danielsadowski_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -308,7 +308,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -333,7 +333,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/danielsadowski_03/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -308,7 +308,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -333,7 +333,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/danielsadowski_04/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -305,7 +305,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -330,7 +330,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/danielsadowski_05/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -302,7 +302,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -327,7 +327,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/darude_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -367,7 +367,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -392,7 +392,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/denzelcurry_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -346,7 +346,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -371,7 +371,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/dren_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -358,7 +358,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -383,7 +383,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/dren_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -367,7 +367,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -392,7 +392,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/dren_03/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -358,7 +358,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -383,7 +383,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/dryden_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -334,7 +334,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -359,7 +359,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/feedme_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -306,7 +306,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -331,7 +331,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/freakydna_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -370,7 +370,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -395,7 +395,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/ghost_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -322,7 +322,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -347,7 +347,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/hades_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -349,7 +349,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -374,7 +374,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/halo_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -333,7 +333,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -358,7 +358,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/health_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -318,7 +318,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -343,7 +343,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/hlalyx_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -351,7 +351,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -375,7 +375,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/hlb_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -367,7 +367,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -392,7 +392,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/hotlinemiami_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -351,7 +351,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -376,7 +376,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/hundredth_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -370,7 +370,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -395,7 +395,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/ianhultquist_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -367,7 +367,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -392,7 +392,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/isoxo_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -336,7 +336,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -361,7 +361,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/jamesandthecoldgun_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -333,7 +333,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -358,7 +358,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/jesseharlin_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -308,7 +308,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -333,7 +333,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/jonathanyoung_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -302,7 +302,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -327,7 +327,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/juelz_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -336,7 +336,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -361,7 +361,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/juelz_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -334,7 +334,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -359,7 +359,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/kellybailey_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -306,7 +306,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -331,7 +331,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/killermike_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -318,7 +318,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -343,7 +343,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/killscript_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -306,7 +306,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -331,7 +331,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/kitheory_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -305,7 +305,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -330,7 +330,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/knock2_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -309,7 +309,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -334,7 +334,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/knock2_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -330,7 +330,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -355,7 +355,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/laurashigihara_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -358,7 +358,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -383,7 +383,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/lenniemoore_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -376,7 +376,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -401,7 +401,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/mateomessina_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -376,7 +376,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -401,7 +401,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/mattlange_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -309,7 +309,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -334,7 +334,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/mattlevine_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -367,7 +367,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -392,7 +392,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/mattlevine_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -358,7 +358,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -383,7 +383,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/meechydarko_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -346,7 +346,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -371,7 +371,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/michaelbross_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -305,7 +305,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -330,7 +330,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/midnightriders_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -336,7 +336,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -361,7 +361,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/mordfustang_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -336,7 +336,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -361,7 +361,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/neckdeep_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -361,7 +361,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -386,7 +386,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/neckdeep_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -379,7 +379,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -404,7 +404,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/newbeatfund_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -336,7 +336,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -361,7 +361,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/noisia_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -348,7 +348,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -373,7 +373,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/perfectworld_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -305,7 +305,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -330,7 +330,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/perfectworld_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -326,7 +326,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -351,7 +351,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/pirapus_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -333,7 +333,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -358,7 +358,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/proxy_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -339,7 +339,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -364,7 +364,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/pvris_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -376,7 +376,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -401,7 +401,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/radcat_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -336,7 +336,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -361,7 +361,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/repiet_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -357,7 +357,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -382,7 +382,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/roam_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -364,7 +364,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -389,7 +389,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/robertallaire_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -354,7 +354,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -379,7 +379,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/sammarshall_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -348,7 +348,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -373,7 +373,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/sammarshall_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -376,7 +376,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -401,7 +401,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/sarahschachner_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -334,7 +334,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -359,7 +359,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/sasha_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -302,7 +302,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -327,7 +327,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/scarlxrd_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -302,7 +302,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -327,7 +327,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/scarlxrd_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -313,7 +313,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -338,7 +338,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/seanmurray_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -330,7 +330,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -355,7 +355,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/selectiveresponse_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -336,7 +336,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -361,7 +361,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/shockone_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -333,7 +333,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -358,7 +358,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/skog_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -354,7 +354,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -379,7 +379,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/skog_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -320,7 +320,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -345,7 +345,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/skog_03/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -308,7 +308,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -333,7 +333,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/starjunk95_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -367,7 +367,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -392,7 +392,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/sullivanking_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -333,7 +333,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -358,7 +358,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/theverkkars_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -330,7 +330,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -355,7 +355,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/theverkkars_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -336,7 +336,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -361,7 +361,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/tigercub_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -302,7 +302,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -327,7 +327,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/timhuling_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -367,7 +367,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -392,7 +392,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/timhuling_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -322,7 +322,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -347,7 +347,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/treeadams_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -306,7 +306,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -331,7 +331,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/treeadams_benbromfield_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -342,7 +342,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -367,7 +367,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/troelsfolmann_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -333,7 +333,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -358,7 +358,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/twerl_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -330,7 +330,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -355,7 +355,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/twinatlantic_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -364,7 +364,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -389,7 +389,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/valve_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -352,7 +352,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -376,7 +376,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/valve_02/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -298,7 +298,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -322,7 +322,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/pak01_dir/soundevents/music/valve_cs2_01/game_sounds_music.vsndevts",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -312,7 +312,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\"\n@@ -337,7 +337,7 @@\n \t\tpriority = 4.0\n \t\tstop_music_except_mvp = \"true\"\n \t\tvolume_fade_out_input_max = 1.6\n-\t\tloop_track = \"true\"\n+\t\tloop_track = \"false\"\n \t\tshould_queue_track = \"true\"\n \t\tskip_if_muted = \"true\"\n \t\ttest_mvp_block = \"true\""
        },
        {
          "filename": "game/csgo/readonly_tools_asset_info.txt",
          "status": "modified",
          "additions": 0,
          "deletions": 9,
          "changes": 9,
          "patch": "@@ -134920,15 +134920,6 @@ sounds/graphs/reverb_6_largeroom.vsnd\n sounds/graphs/reverb_7_mediumhall.vsnd\n sounds/graphs/reverb_8_mediumcarpetroom.vsnd\n sounds/graphs/reverb_9_mediumchamber.vsnd\n-panorama/images/icons/equipment/lar.vsvg\n panorama/layout/hud/hudmutators.vxml\n panorama/styles/hud/hudmutators.vcss\n sounds/graphs/bighead_pitch.vsnd\n-weapons/models/lar/weapon_rif_lar.vmdl\n-weapons/models/lar/materials/weapon_rif_lar.vmat\n-weapons/models/lar/mesh/fbx/do_not_ship/lar_temp.vmat\n-panorama/images/econ/weapons/base_weapons/weapon_lar_png.vtex\n-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_albedo_jpg_a9420be9.vtex\n-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_emissive_jpg_9d61adb2.vtex\n-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_normal_png_419b046c.vtex\n-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_roughness_jpg_55597ce4.vtex"
        },
        {
          "filename": "game/csgo/steam.inf",
          "status": "modified",
          "additions": 6,
          "deletions": 6,
          "changes": 12,
          "patch": "@@ -1,9 +1,9 @@\n-ClientVersion=2000938\n-ServerVersion=2000938\n-PatchVersion=1.41.9.3\n+ClientVersion=2000939\n+ServerVersion=2000939\n+PatchVersion=1.41.9.4\n ProductName=cs2\n appID=730\n ServerAppID=2347773\n-SourceRevision=11181008\n-VersionDate=Oct 28 2026\n-VersionTime=13:49:20\n+SourceRevision=11191540\n+VersionDate=Oct 30 2026\n+VersionTime=13:55:25"
        },
        {
          "filename": "manifests/manifest_2347770.txt",
          "status": "modified",
          "additions": 12,
          "deletions": 12,
          "changes": 24,
          "patch": "@@ -1,16 +1,16 @@\n Content Manifest for Depot 2347770 \n \n-Manifest ID / date     : 8833146750479675564 / 10/28/2026 20:57:52 \n+Manifest ID / date     : 6694633556888099985 / 10/30/2026 21:05:03 \n Total number of files  : 2992 \n-Total number of chunks : 65074 \n-Total bytes on disk    : 65065602283 \n-Total bytes compressed : 55586326720 \n+Total number of chunks : 65063 \n+Total bytes on disk    : 65051805863 \n+Total bytes compressed : 55573428128 \n \n \n           Size Chunks File SHA                                 Flags Name\n-            10      1 cbdd67858201fbb67a3af7ec944ee3d8137ade56     0 game\\bin\\built_from_cl.txt\n-         10347      1 e50c5dc3f0367da59129c5be7332559bd2fc0918     0 game\\bin\\win64\\csgo.signatures\n-          8941      1 97782ee451748c773a7732f9fb410892906422a3     0 game\\bin\\win64\\vpk.signatures\n+            10      1 2d6149740ea5c8f6b2d653ccf3f38a0d2a294ac3     0 game\\bin\\built_from_cl.txt\n+         10347      1 cf297ff72b6c1648a9cecd8868cfac716c658e3c     0 game\\bin\\win64\\csgo.signatures\n+          8941      1 ec38742284e7338bb190a5eb2ff6f77c2a534438     0 game\\bin\\win64\\vpk.signatures\n          51357      1 0f5112698b482f8c1190c89192a4c0c8b0e50198     0 game\\core\\cfg\\sfm_default_animation_groups.vcfg\n           2270      1 ab4e0ee92367ba6d28a89dae8f6000631ffdb641     0 game\\core\\cfg\\user_keys_default.vcfg\n           2474      1 c4ff2f85048812f02c2403b0675208acfc00c7b0     0 game\\core\\gameinfo.gi\n@@ -2438,7 +2438,7 @@ Total bytes compressed : 55586326720\n      118404050    113 796c7932cfeb6772b51013f28bd99bfdfb40483d     0 game\\csgo\\pak01_033.vpk\n      116169795    111 e382335666c33007e4a346ded29843a08e8656eb     0 game\\csgo\\pak01_034.vpk\n      104201764    102 d897179aaadd2b0de26e19afe39037903f6f424a     0 game\\csgo\\pak01_035.vpk\n-     106521791    129 37f5f0b02681e7ffa2052a4b139680303910cf18     0 game\\csgo\\pak01_036.vpk\n+     105234684    129 3493b2d21b1aecc2a0b56c7338a9fcc06f512e91     0 game\\csgo\\pak01_036.vpk\n      109137813    105 c1c5d1aeea369e80997338b7f41f8cadb17bbfdb     0 game\\csgo\\pak01_037.vpk\n      116538440    112 cf02841fa129fbb93933f539cc8ae0fcb54de2d9     0 game\\csgo\\pak01_038.vpk\n      103037018    103 83bd86a8c8cdc17b353c54cd4cf6a1e347a59e63     0 game\\csgo\\pak01_039.vpk\n@@ -2903,11 +2903,11 @@ Total bytes compressed : 55586326720\n      103652491    105 97b078393d02aaed75aa0d5f232ec9573a608d48     0 game\\csgo\\pak01_498.vpk\n      105338067    116 4af7ebb5429b351ff2b76c4f9b300cd176157ada     0 game\\csgo\\pak01_499.vpk\n      102090495    101 6cac088baddee5012d7a47318b06d119f3cbb859     0 game\\csgo\\pak01_500.vpk\n-      99621966    105 a36d3ad51113077cf85943cd5a96a10581c7edaf     0 game\\csgo\\pak01_501.vpk\n+      99621956    106 9d2ae31cb7b16513b47b2aa6bc1a5b55a6ad8d43     0 game\\csgo\\pak01_501.vpk\n       99618250    105 568b65b644448b85efe132f8eaebe59c309c3fb3     0 game\\csgo\\pak01_502.vpk\n      100220508    102 60654a3f3231ef5de3b458ed332ba064c153c465     0 game\\csgo\\pak01_503.vpk\n-      73801782     76 e868db78c1f025ef727560bdeeac4a627960590d     0 game\\csgo\\pak01_504.vpk\n-       7715045      8 c8514c1fed295f92b27cf36ba7eea751c5b3273a     0 game\\csgo\\pak01_dir.vpk\n+      61294166     64 7e4515c2e23cc6b96ef870aff144182d3aa0bc84     0 game\\csgo\\pak01_504.vpk\n+       7713358      8 860cb1f89ad46cd24ec82d18dca3f975cc951465     0 game\\csgo\\pak01_dir.vpk\n          11893      1 d2f5c237fcac89835ab901bf3cc83850c71d9b46     0 game\\csgo\\panorama\\fonts\\fonts.conf\n         107848      1 90edfc11fa568cd0fb5b9d6e6d369dddadfdb8c4     0 game\\csgo\\panorama\\fonts\\notomono-regular.ttf\n         310556      1 84e39ddc72cd1d2ac4be132d235979f10f916c2b     0 game\\csgo\\panorama\\fonts\\notosans-bold.ttf\n@@ -2996,7 +2996,7 @@ Total bytes compressed : 55586326720\n      303670574    290 d2d77a7357436cf6fb69b704cebc84718609f70e     0 game\\csgo\\shaders_vulkan_003.vpk\n       25004138     28 7a80e74bbd9d763f27ad8788694da6d9d81cc99e     0 game\\csgo\\shaders_vulkan_004.vpk\n          41884      1 a9b38a712dcebbc8a985763a9134ec66c4264688     0 game\\csgo\\shaders_vulkan_dir.vpk\n-           190      1 3cd68d9dfada742adc3209d9d4bcdfd63c2e2b7a     0 game\\csgo\\steam.inf\n+           190      1 6bd54113491e0ded55a8f7d0f773905099323118     0 game\\csgo\\steam.inf\n            209      1 cb2eaab8dbda9f075491a5410326356e127f60ec     0 game\\csgo_lv\\gameinfo.gi\n            135      1 7769174b103a021d6390cb2a31b758dbfff04639     0 game\\csgo_lv\\gameinfo_branchspecific.gi\n         473822      1 f5ca24bf12b20fee2ffb5d8bbc465ba8805d8abe     0 game\\thirdpartylegalnotices.txt"
        },
        {
          "filename": "manifests/manifest_2347771.txt",
          "status": "modified",
          "additions": 6,
          "deletions": 6,
          "changes": 12,
          "patch": "@@ -1,10 +1,10 @@\n Content Manifest for Depot 2347771 \n \n-Manifest ID / date     : 5218696177408015009 / 10/28/2026 20:58:30 \n+Manifest ID / date     : 4494425425081083634 / 10/30/2026 21:05:41 \n Total number of files  : 183 \n Total number of chunks : 7219 \n-Total bytes on disk    : 7753536510 \n-Total bytes compressed : 5011478400 \n+Total bytes on disk    : 7753537022 \n+Total bytes compressed : 5011481952 \n \n \n           Size Chunks File SHA                                 Flags Name\n@@ -76,7 +76,7 @@ Total bytes compressed : 5011478400\n        7094936      7 2a0d7c4734b5058b0dcf8e270630c9a8a9dab4b8     0 game\\bin\\win64\\scenesystem.dll\n         445592      1 a2d1ab7e9bfefb9df339767031cf6b6ce7a1a43e     0 game\\bin\\win64\\schemasystem.dll\n        2891928      3 2455bae3c453025d4d481afebdc517ac9e3f3659     0 game\\bin\\win64\\SDL3.dll\n-       5837976      6 19e6268724b2f6b56795d32f048ff957967ba2f1     0 game\\bin\\win64\\soundsystem.dll\n+       5838488      6 dd30ad36fdcfb5d9f59b2cfb46b0bef25184328f     0 game\\bin\\win64\\soundsystem.dll\n        3547288      4 2ed24977ac906ca1596d83f466669849116c2619     0 game\\bin\\win64\\steamaudio.dll\n        4290200      5 b2a6c8bdb391737a00e9d32a186d726da2037aae     0 game\\bin\\win64\\steamnetworkingsockets.dll\n         317080      1 a9fd85dbfdcee3209768facb284b8788df41c3d3     0 game\\bin\\win64\\steam_api64.dll\n@@ -110,10 +110,10 @@ Total bytes compressed : 5011478400\n        3185298      4 10bea5cfe6883540880c748e9506a04ad11e53ca     0 game\\core\\shaders_pc_000.vpk\n          25563      1 72204b8136ab7b8df21a52fb0b8b674f8c578b06     0 game\\core\\shaders_pc_dir.vpk\n        1728360      2 4e48ff45949c7f3cd8fd8ab5b7514ae27f44e53a     0 game\\csgo\\bin\\legacy\\csgo_legacy_app.exe\n-      39224472     38 1024028a050cc8bef7a9e9ec193ba1b9f951660c     0 game\\csgo\\bin\\win64\\client.dll\n+      39224472     38 b5ad5ca0a78e816cf93836327b42d5a5ef49dcab     0 game\\csgo\\bin\\win64\\client.dll\n        1389208      2 40c6db9d0b1a07915441df9e7f002375f1bbad7a     0 game\\csgo\\bin\\win64\\host.dll\n        1890968      2 9aedfe7565fa06c398d7c4a0017bfc6490567b4d     0 game\\csgo\\bin\\win64\\matchmaking.dll\n-      34690200     34 bc9cad39ac62e7154f8de2f0aee6b0c2075d88f5     0 game\\csgo\\bin\\win64\\server.dll\n+      34690200     34 7eb4d9b19948117424d575b158aa11c565d71eec     0 game\\csgo\\bin\\win64\\server.dll\n      115209034    117 4bbd01e43063ebade958bb509725b1b48c811b00     0 game\\csgo\\shaders_pc_000.vpk\n      189827159    182 7829b4ede09333c4e30a53d1ef958b9baeaeac39     0 game\\csgo\\shaders_pc_001.vpk\n       38973836     41 55f4f1a11b02a8a25a77a452d24ae14aa04b9f0b     0 game\\csgo\\shaders_pc_002.vpk"
        },
        {
          "filename": "manifests/manifest_2347773.txt",
          "status": "modified",
          "additions": 6,
          "deletions": 6,
          "changes": 12,
          "patch": "@@ -1,10 +1,10 @@\n Content Manifest for Depot 2347773 \n \n-Manifest ID / date     : 3474977783625240452 / 10/28/2026 20:58:51 \n+Manifest ID / date     : 6232960523750647649 / 10/30/2026 21:05:58 \n Total number of files  : 135 \n Total number of chunks : 6673 \n-Total bytes on disk    : 7224463846 \n-Total bytes compressed : 4605724896 \n+Total bytes on disk    : 7224464934 \n+Total bytes compressed : 4605726512 \n \n \n           Size Chunks File SHA                                 Flags Name\n@@ -42,7 +42,7 @@ Total bytes compressed : 4605724896\n       10777468     11 3a9bd9792e999e94206fda1dadeacf2d32c96477     0 game\\bin\\linuxsteamrt64\\libscenesystem.so\n         713948      1 ad85dae76aad400f723e768ee7286fc6993c7c2f     0 game\\bin\\linuxsteamrt64\\libschemasystem.so\n        3229400      4 0558f1091e79b187e42491955cf362112598cff5     0 game\\bin\\linuxsteamrt64\\libSDL3.so.0\n-       7961876      8 ab5e72fe683cd977926ef1d273990dd0f1b829fd     0 game\\bin\\linuxsteamrt64\\libsoundsystem.so\n+       7962196      8 f8b3d7618016aef0270517c79848a225837296b8     0 game\\bin\\linuxsteamrt64\\libsoundsystem.so\n        4771364      5 57b51902f63f93920f5bea8e86feb5b5adcda44e     0 game\\bin\\linuxsteamrt64\\libsteamaudio.so\n        5692434      6 9ec4204cb535bb2c204a69c2d7d15e2b2c9682a1     0 game\\bin\\linuxsteamrt64\\libsteamnetworkingsockets.so\n         381976      1 c109666c839a433b5ff8f635ad173cde77bdcdb6     0 game\\bin\\linuxsteamrt64\\libsteam_api.so\n@@ -66,10 +66,10 @@ Total bytes compressed : 4605724896\n        1296400      2 f63aa2c6334168781aa9b5bd2db22c0cc3a98a71     0 game\\bin\\linuxsteamrt64\\libvscript.so\n        4570212      5 9401bc49adf98aa264340e34e93dfc06fd786adc     0 game\\bin\\linuxsteamrt64\\libworldrenderer.so\n           3822      1 956919b920713ce452f46c20cf8643674f7543f7     0 game\\cs2.sh\n-      74208120     71 6424d7e40ea57f83d0f1a8d49278ddef029a8d94     0 game\\csgo\\bin\\linuxsteamrt64\\libclient.so\n+      74208376     71 a0729807ba98a01f7c8fde6b2a787897403028f6     0 game\\csgo\\bin\\linuxsteamrt64\\libclient.so\n        3184412      4 2a6ef4e4bdf777c3ccd9d2d11c8cfce69baeb82f     0 game\\csgo\\bin\\linuxsteamrt64\\libhost.so\n        3775044      4 4a6bd2fa9528edbac347b03c837c3158d93bca75     0 game\\csgo\\bin\\linuxsteamrt64\\libmatchmaking.so\n-      41807128     40 caa2892202b928cf2a671fc04fb7c4f4e41b8f81     0 game\\csgo\\bin\\linuxsteamrt64\\libserver.so\n+      41807640     40 da6d2163b63dbc977b94d454dd3eb1ceb322e3a5     0 game\\csgo\\bin\\linuxsteamrt64\\libserver.so\n      182648578    175 d4b7d7aea361a8b94c54e79904d642d712a1a3f5     0 game\\csgo_community_addons\\cs_shelter\\cs_shelter_000.vpk\n      107052112    105 2c61877687a4e433f04a62340fb3ce54b70e039c     0 game\\csgo_community_addons\\cs_shelter\\cs_shelter_001.vpk\n      106101480    104 e5dc305d96a55ae88a396ac6d98037209b4520ce     0 game\\csgo_community_addons\\cs_shelter\\cs_shelter_002.vpk"
        },
        {
          "filename": "manifests/manifest_2347779.txt",
          "status": "modified",
          "additions": 5,
          "deletions": 5,
          "changes": 10,
          "patch": "@@ -1,9 +1,9 @@\n Content Manifest for Depot 2347779 \n \n-Manifest ID / date     : 2888303856247423407 / 10/28/2026 20:59:18 \n+Manifest ID / date     : 6999460720639345485 / 10/30/2026 21:06:20 \n Total number of files  : 909 \n-Total number of chunks : 2524 \n-Total bytes on disk    : 2108142576 \n+Total number of chunks : 2523 \n+Total bytes on disk    : 2108138499 \n Total bytes compressed : 576286240 \n \n \n@@ -638,7 +638,7 @@ Total bytes compressed : 576286240\n        5703320      6 69aef54a5be46a22842ba8a8671ef057da9ffedd     0 game\\bin\\win64\\assetsystem.dll\n        1529856      2 45e7d0873608e5424312fa289a270f2faacfe8fa     0 game\\bin\\win64\\bc7e.dll\n         396952      1 3a1580720932ad35bdc8455fea40739014877638     0 game\\bin\\win64\\cs2_build_econ_items_workshop.exe\n-         13866      1 62ca0b9e4c3a3df901dbd1b5f3d2d4d5dead27b5     0 game\\bin\\win64\\csgo.signatures\n+         13866      1 6e66eefa3c87d4a1c8b0971d9c9006ad4bed4f81     0 game\\bin\\win64\\csgo.signatures\n        1271448      2 41ff225a0583e28a3755588aac5634c5db7af5c4     0 game\\bin\\win64\\csgocfg.exe\n       15683736     15 2e0961f7f4e0776a11546c4f8a6ee8797cd7a478     0 game\\bin\\win64\\cs_mdl_import.exe\n        1196696      2 f3364d2c801c80b4e2eb6d8c76a6ec0aca706962     0 game\\bin\\win64\\dmxconvert.exe\n@@ -721,7 +721,7 @@ Total bytes compressed : 576286240\n         133435      1 5c5acf7bffba281b1fb2de939a6953c385e26ac3     0 game\\csgo\\lighting\\postprocessing\\editor\\toolsscene_default.vpost_c\n           3823      1 aaa9517703492629cade78571c39f5fdc2c417e3     0 game\\csgo\\models_gamedata.fgd\n           1559      1 ccef3c777e99029f1956e3ad23a718a99fd36d14     0 game\\csgo\\postprocessing.fgd\n-      50764494     52 9bf42a6c2e4924dab630257854137646df9fe384     0 game\\csgo\\readonly_tools_asset_info.bin\n+      50760417     51 a1997ec54c03935c14e37f7748fecf207030dc7c     0 game\\csgo\\readonly_tools_asset_info.bin\n           3009      1 8374c54025aad8c3d4a72b5f7f198d99951b7844     0 game\\csgo\\tools\\cs2_icon_gen\\icon_camera.png\n           2390      1 436ef3b91600906f462a33b9973b3f0955ddf1d6     0 game\\csgo\\tools\\cs2_icon_gen\\icon_item.png\n           2566      1 d78fd6c17e836a35c1cff4b375de7928ea5aea40     0 game\\csgo\\tools\\cs2_icon_gen\\icon_light_fill.png"
        },
        {
          "filename": "manifests/manifest_731.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 731 \n \n-Manifest ID / date     : 6136897076417766099 / 10/28/2026 20:56:26 \n+Manifest ID / date     : 3579580227224146060 / 10/30/2026 21:03:36 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 6dbe87f2df31621a39a598c8ac5d32af40524a01     0 game\\bin\\content_built_from_cl.txt\n+             8      1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36     0 game\\bin\\content_built_from_cl.txt"
        },
        {
          "filename": "manifests/manifest_732.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 732 \n \n-Manifest ID / date     : 7263089472237994766 / 10/28/2026 20:56:33 \n+Manifest ID / date     : 4813741465053806363 / 10/30/2026 21:03:43 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 6dbe87f2df31621a39a598c8ac5d32af40524a01     0 game\\bin\\content_built_from_cl.txt\n+             8      1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36     0 game\\bin\\content_built_from_cl.txt"
        },
        {
          "filename": "manifests/manifest_733.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 733 \n \n-Manifest ID / date     : 7014388039653554958 / 10/28/2026 20:56:39 \n+Manifest ID / date     : 7325926150770753053 / 10/30/2026 21:03:50 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 6dbe87f2df31621a39a598c8ac5d32af40524a01     0 game\\bin\\content_built_from_cl.txt\n+             8      1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36     0 game\\bin\\content_built_from_cl.txt"
        },
        {
          "filename": "manifests/manifest_734.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 734 \n \n-Manifest ID / date     : 7940209396320497378 / 10/28/2026 20:56:46 \n+Manifest ID / date     : 263743024181583359 / 10/30/2026 21:03:56 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 6dbe87f2df31621a39a598c8ac5d32af40524a01     0 game\\bin\\content_built_from_cl.txt\n+             8      1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36     0 game\\bin\\content_built_from_cl.txt"
        },
        {
          "filename": "manifests/manifest_735.txt",
          "status": "modified",
          "additions": 2,
          "deletions": 2,
          "changes": 4,
          "patch": "@@ -1,11 +1,11 @@\n Content Manifest for Depot 735 \n \n-Manifest ID / date     : 4345444102999343217 / 10/28/2026 20:56:52 \n+Manifest ID / date     : 5004729745720806412 / 10/30/2026 21:04:02 \n Total number of files  : 1 \n Total number of chunks : 1 \n Total bytes on disk    : 8 \n Total bytes compressed : 64 \n \n \n           Size Chunks File SHA                                 Flags Name\n-             8      1 6dbe87f2df31621a39a598c8ac5d32af40524a01     0 game\\bin\\content_built_from_cl.txt\n+             8      1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36     0 game\\bin\\content_built_from_cl.txt"
        }
      ]
    },
    {
      "event_id": "gh:a16afd0",
      "detected_at_utc": "2026-11-13T14:09:51.308Z",
      "commit_date_utc": "2026-10-30T21:09:19Z",
      "commit": {
        "sha": "a16afd09b2983f4c30ac353e5e3eb852c6412502",
        "short": "a16afd0",
        "message": "Queue update runs instead of cancelling them",
        "url": "https://github.com/SteamTracking/GameTracking-CS2/commit/a16afd09b2983f4c30ac353e5e3eb852c6412502"
      },
      "classification": {
        "tags": [],
        "important_files": []
      },
      "ai_summary": "General update: “Queue update runs instead of cancelling them” Files touched: .github/workflows/update.yml.",
      "stats": {
        "files_changed": 1,
        "additions": 2,
        "deletions": 1
      },
      "files": [
        {
          "filename": ".github/workflows/update.yml",
          "status": "modified",
          "additions": 2,
          "deletions": 1,
          "changes": 3,
          "patch": "@@ -16,7 +16,8 @@ on:\n \n concurrency:\n     group: ${{ github.workflow }}\n-    cancel-in-progress: true\n+    cancel-in-progress: false\n+    queue: max\n \n jobs:\n     process:"
        }
      ]
    }
  ],
  "note": "Steam buildid via steamcmd is not available on Vercel serverless; using GitHub GameTracking commits instead."
}
11.11.2026, 23.05.21
Localization/resources update (game/csgo/pak01_dir/resource/csgo_english.txt).
Files changed: 130 • +11334 / -9250
scriptsuilocalizationassetsmisccontent-change
Changed files
DumpSource2/.stringsignore
modified • +66 / -18 • changes: 84
Show patch
@@ -4840,6 +4840,7 @@ Clear all watches from the game debug overlay
Clear buffered logging
Clear console output from all views.
Clear console output.
+Clear per-entity decode change callback stats
Clear the list of deferred soundevents for loading.
Clear the list of files that have been opened.
Clear the pause state of the server.
@@ -5878,8 +5879,8 @@ Draws line between two 3D Points.\n\tGreen if no collision\n\tRed is collides wi
Draws the current weapon's true inaccuracy + spread radius around the crosshair
Draws the overview map
Drive (dB)
+Drop a client if processing their messages consumes more than N ms of CPU time *PER SECOND*, sustained (token bucket fill rate)
Drop a client if processing their messages consumes more than N ms of CPU time in a burst (token bucket capacity)
-Drop a client if processing their messages consumes more than N ms of CPU time per second, sustained (token bucket fill rate)
Drop defuser on player death
Drop every Nth fragment
Drop healthshot on player death
@@ -7172,6 +7173,13 @@ From Player
From Rotations
From Velocity
From World
+Frost on players, weapons and chickens: -1 = the map's (info_map_parameters frostenabled), 0 = off, 1 = on (outdoors; melts indoors)
+Frost: barrel heat per shot (1 = hot enough to clear the whole barrel)
+Frost: distance under cover (no sky) over which the cold fades out (indoors)
+Frost: seconds after a molotov is lit before its rag starts to heat (the flame shows a moment after)
+Frost: seconds for a hot barrel to cool down
+Frost: seconds for a lit molotov's rag to reach full heat
+Frost: where the barrel heat sits, from the shell eject (0) to the muzzle (1)
Frozen
Full 3-Axis Rotation
Full Density Blend Weight
@@ -7359,6 +7367,7 @@ Gameplay State High
Gameplay State Low
Gamma-correct vertex colors
Gate
+GatherSendProxyResults only walks struct and array fields, skipping scalar fields.
Gaussian
General
General purpose timer. use 'stopwatch' to toggle or explicitly call 'stopwatch start' and/or 'stopwatch stop'.
@@ -8711,6 +8720,7 @@ Less aggressive fade out. The object will not fade out until it is smaller on sc
LessThan
LessThanEqual
LessonPanelLayoutFileTypes_t
+Let demo playback and the game rules start, dump and stop the vprof lite profiler on their own. The vprof_lite_start, vprof_lite_stop and vprof_lite_dump commands set this to 0 so that a script can drive the profiler itself.
Level Override
Level Volume
Level of validation for nav system. Higher will be slower.
@@ -9192,8 +9202,9 @@ Max number of broadcast http requests in flight. If there is a network issue, th
Max number of broadcast1 http requests in flight. If there is a network issue, the requests may start piling up, degrading server performance. If more than the specified number of requests are in flight, the new requests are dropped.
Max number of entities to transmit to player
Max number of kills for a single multikill event
-Max number of messages that can be queued in a netchan receive buffer for an ordinary connection from a client.
Max number of samples per triangle. Higher is more quality/slower.
+Max number of source engine messages an ordinary client connection may put in a single network frame. Exceeding this disconnects the client.
+Max number of source engine messages that can be queued in a netchan receive buffer for an ordinary connection from a client.
Max number of ticks to simulate per frame, after which simulation will start to slow down compared to real time.
Max number of timeouts each team can have per OT after all OT timeouts got added.
Max number of times a player may purchase any weapon per match
@@ -9234,6 +9245,7 @@ Maximum depth of smart prop evaluation stack during evaluation.
Maximum distance flames can spread from their initial ignition point
Maximum distance flames can spread from their initial ignition point for an incendiary
Maximum distance to transmit footstep sound effects.
+Maximum duration the client clock is allowed to drift from server snapshots, before the client snaps its clock to the latest server snapshot received
Maximum gain any HRTF could have during volume normalization.
Maximum lag compensation in seconds
Maximum length
@@ -9253,7 +9265,6 @@ Maximum number of probes to create when baking custom data (occlusion).
Maximum number of probes to create when baking paths.
Maximum number of probes to create when baking reverb.
Maximum number of ragdolls to show (-1 disables limit)
-Maximum number of ticks the clock is allowed to drift before the client snaps its clock to the server's.
Maximum number of undo levels
Maximum of how hard the hostage is pushed away from physics objects.
Maximum of how hard the player is pushed away from physics objects.
@@ -11185,6 +11196,7 @@ PanoramaUIClient001
PanoramaUIEngine001
PanoramaVideoPlayer
Parallalelize Filter
+Parallax occlusion mapping (Advanced Video setting): 0 = off, 1 = on
ParamSpanSample_t
ParamSpan_t
Parameter
@@ -11438,7 +11450,7 @@ Play a broadcast
Play a demo and report performance info.
Play a demo, report performance info, and then exit
Play a note from a specified sampler
-Play a recorded demo file (.dem ).
+Play a recorded demo file (.dem ). Options: start=<tick> end=<tick> timescale=<float> (run with no arguments for details).
Play a sound at a specified volume.
Play a sound.
Play demos in demo sequence.
@@ -11636,6 +11648,7 @@ Print out broadcast status
Print out hltv events
Print out information on existing particle systems
Print out number of active projected textures
+Print per-entity decode change callback stats
Print simple description of prediction copy fields for entindex
Print something every time we predict a command
Print spew related to server clock and ticking
@@ -12067,7 +12080,6 @@ Recursion Branch Split Scale
Recursion Depth
RecvProxy_Jumped
RecvProxy_PatchEconIndices
-RecvProxy_Rescued
RecvProxy_VoteOption
RecvProxy_VoteType
Recvmargin-based usercommand pacing will not speed up or slow down command pacing by more than N% compared to realtime
@@ -12961,6 +12973,9 @@ Secondary_Mode
Seconds after client connect during which extra frames are buffered to prevent non-delta'd update
Seconds between drowning ticks
Seconds between full frame embeddeds
+Seconds for the melted frost to dry
+Seconds indoors for full frost to melt
+Seconds outdoors for frost to grow to full
Seconds to fade the ChickensObscuredLayer mix layer in and out.
Seed (negative values=randomize)
Seed Input Var
@@ -13058,11 +13073,14 @@ Server queue reservation
Server tags. Used to provide extra information to clients when they're browsing for servers. Separate tags with a comma.
Server will listen for direct UDP connections on the configured port. This can be turned off to only listen for P2P/SDR connections.
Server will not allow the client to buffer up more than N ms of commands.
-Server will not buffer more than N kb from connected clients
-Server will not buffer more than N messages from connected clients
-Server will reject message larger than N kb
-Server will reject packets with more than N segments
+Server will reject uncompressed Source engine frame larger than N kb. Also sets limit on SteamNetworkingSockets message size
Server will stop generating substitute commands if client hasn't sent one, after N in a row
+Server: SteamNetworkingSockets will not buffer more than N kb from a connection that does not yet have a netchan
+Server: SteamNetworkingSockets will not buffer more than N kb from connected clients
+Server: SteamNetworkingSockets will not buffer more than N messages from a connection that does not yet have a netchan
+Server: SteamNetworkingSockets will not buffer more than N messages from connected clients
+Server: SteamNetworkingSockets will reject packets with more than N message segments
+Server: max SteamNetworkingSockets message size in kb accepted from a connection that does not yet have a netchan
ServerAuthoritative
ServerAuthoritativeWeaponSlot_t
ServerLog
@@ -15926,8 +15944,8 @@ Walk
Warmup time to use when all players have connected. 0 to disable.
Warmup time to use when the match will be cancelled (eg. due to a live VAC ban).
Warn if lag compensated head hitbox position doesn't match that on client.
+Warn if processing messages from a client consumes more than N ms of CPU time *PER SECOND*, sustained (token bucket fill rate)
Warn if processing messages from a client consumes more than N ms of CPU time in a burst (token bucket capacity)
-Warn if processing messages from a client consumes more than N ms of CPU time per second, sustained (token bucket fill rate)
Warp Orientation
Warp Position
Warp Section Tag
@@ -16002,6 +16020,7 @@ When a player disconnects, kill them first (triggering item drops, stats, etc.)
When a source has source-specific DSP, this can be used as an additional mix stage for the listener reverb amount.
When an animgraph is reloaded, should the underlying system restore all params?
When an asset is being recompiled the dependents will be recompiled only as needed, otherwise the original recompile mode will be passed on.
+When an entity is decoded from a baseline plus a wire delta, merge the two and decode once (true), or decode the baseline and then the delta as two passes (false, the old behaviour, which can invoke change callbacks with baseline values for an entity that already exists).
When computing respondents for a 'THEN ANY' rule, all rule-matching scores within this much of the best score will be considered.
When computing the transform at each path point ensure that there is no roll around the path relative to the up direction. This prevents objects from tilting side to side while still allowing them to tilt along the path (unlike Use Fixed Up which does not allow them to tilt along the path).
When condensing late commands. Should we compress multiple moves of button presses into the target move?
@@ -17100,7 +17119,7 @@ cl_clock_recvmargin_timeconstant_slowdown
cl_clock_recvmargin_timeconstant_speedup
cl_clock_recvmargin_window
cl_clockdbg
-cl_clockdrift_max_ticks
+cl_clockdrift_max_secs
cl_clutch_mode
cl_color
cl_connectionretrytime_p2p
@@ -17394,6 +17413,7 @@ cl_new_user_phase
cl_obs_interp_enable
cl_obs_interp_speed
cl_observed_bot_crosshair
+cl_packetentities_merge_before_decode
cl_paintkit_override
cl_panel_freeze_time_after_press
cl_parallel_readpacketentities
@@ -19368,6 +19388,7 @@ fresnel warp texture
friction
friction_scale
friendlyname
+frostenabled
fs_async_threads
fs_clear_open_duplicate_times
fs_dump_open_duplicate_times
@@ -23229,6 +23250,7 @@ m_bFreezePeriod
m_bFreezeTargetState
m_bFreezeTransitionActive
m_bFreshStartThisRound
+m_bFrostEnabled
m_bFrozen
m_bFullbright
m_bGPUCullSkybox
@@ -25593,7 +25615,6 @@ m_flDampedValue
m_flDamping
m_flDampingRatio
m_flDangerousTime
-m_flDeadOrRescuedTime
m_flDealtDamageToEnemyMostRecentTimestamp
m_flDeathCamTilt
m_flDeathDestroyTime
@@ -27243,6 +27264,7 @@ m_flTraceRadius
m_flTraceTolerance
m_flTracerDuration
m_flTrajectoryTrailEffectCreationTime
+m_flTransitionBlendTimeSeconds
m_flTransitionDurationSeconds
m_flTransitionPenalty
m_flTransitionSourcePathLocation
@@ -33556,6 +33578,8 @@ net_compresspackets_minsize
net_connections_stats
net_culloptimization
net_debug_to_file
+net_decode_callback_queue_stats_clear
+net_decode_callback_queue_stats_dump
net_detailed_canpacket_log
net_fakeclear
net_fakejitter
@@ -33564,7 +33588,17 @@ net_fakeloss
net_fakestatus
net_filelogging
net_fs_showindirections
-net_limit_sv_recv_max_message_size_kb
+net_gather_child_fields_only
+net_limit_sv_listen_max_message_size_kb
+net_limit_sv_listen_recvbuffer_kb
+net_limit_sv_listen_recvbuffer_msg
+net_limit_sv_message_process_time_ms_drop_burst
+net_limit_sv_message_process_time_ms_drop_rate_per_sec
+net_limit_sv_message_process_time_ms_warn_burst
+net_limit_sv_message_process_time_ms_warn_rate_per_sec
+net_limit_sv_recv_chan_buffer_messages
+net_limit_sv_recv_chan_msgs_per_frame
+net_limit_sv_recv_max_frame_size_kb
net_limit_sv_recv_segments_per_packet
net_limit_sv_recvbuffer_kb
net_limit_sv_recvbuffer_msg
@@ -34552,6 +34586,16 @@ r_csgo_enable_tonemapping
r_csgo_enable_translucent_screen_space
r_csgo_enable_volume_fog
r_csgo_firstpersonlegs_nearz_offset
+r_csgo_frost_dry_time
+r_csgo_frost_force
+r_csgo_frost_grow_time
+r_csgo_frost_heat_barrel_position
+r_csgo_frost_heat_cool_time
+r_csgo_frost_heat_light_delay
+r_csgo_frost_heat_light_time
+r_csgo_frost_heat_per_shot
+r_csgo_frost_indoor_distance
+r_csgo_frost_melt_time
r_csgo_fsr_enable_mip_bias
r_csgo_fsr_rcas_sharpness
r_csgo_fsr_upsample
@@ -34593,6 +34637,7 @@ r_csgo_no_shader_resolve
r_csgo_opaquerefract_viewmodel_depthcopy
r_csgo_opaquerefract_viewmodel_quality
r_csgo_outline_glow_scaledenom
+r_csgo_parallax
r_csgo_player_occlusion_query
r_csgo_player_occlusion_query_debug
r_csgo_postprocess_enable
@@ -36784,10 +36829,6 @@ sv_mover_maxslope
sv_mover_pogodampingratio
sv_mover_pogofrequency
sv_mute_players_with_social_penalties
-sv_net_client_message_process_time_ms_drop_burst
-sv_net_client_message_process_time_ms_drop_rate
-sv_net_client_message_process_time_ms_warn_burst
-sv_net_client_message_process_time_ms_warn_rate
sv_netprof_delta_sharing_temp
sv_networkvar_log_fullchanges
sv_networkvar_perfieldtracking
@@ -36852,7 +36893,6 @@ sv_rcon_maxfailures
sv_rcon_minfailures
sv_rcon_minfailuretime
sv_record_item_time_data
-sv_recvbuf_messages
sv_regeneration_force_on
sv_regeneration_wait_time
sv_region
@@ -37631,6 +37671,7 @@ vertical_align
videocfg_ao_detail
videocfg_fsr_detail
videocfg_hdr_detail
+videocfg_parallax_detail
videocfg_particle_detail
videocfg_shadow_quality
videocfg_texture_detail
@@ -37752,6 +37793,13 @@ vprof_dump_counters
vprof_generate_report
vprof_generate_report_budget
vprof_generate_report_hierarchy
+vprof_lite_auto
+vprof_lite_dump
+vprof_lite_dump [filename] [stop=1]\nWrite the vprof lite budget group statistics as CSV, then stop the profiler and clear its data.\nstop=0 leaves the profiler running with its data. The default filename is vprof_lite.csv in the mod directory;\nan absolute path is used as given. Sets vprof_lite_auto 0, so the game will not stop or dump the profiler on its own.
+vprof_lite_start
+vprof_lite_start [clear=1]\nStart the vprof lite profiler, clearing any data it holds. clear=0 keeps the data and continues adding to it.\nSets vprof_lite_auto 0, so the game will not stop or dump the profiler on its own.
+vprof_lite_stop
+vprof_lite_stop [clear=1]\nStop the vprof lite profiler and clear its data. clear=0 keeps the data, for engine_frametime_print_report or vprof_lite_dump.\nSets vprof_lite_auto 0, so the game will not start the profiler on its own.
vprof_loadhitstore_scale
vprof_off
vprof_on
DumpSource2/commands.txt
modified • +23 / -1 • changes: 24
Show patch
@@ -2357,6 +2357,12 @@ net_channels (release)
net_connections_stats (release)
Print detailed network statistics for each network connection
+net_decode_callback_queue_stats_clear (developmentonly defensive)
+ Clear per-entity decode change callback stats
+
+net_decode_callback_queue_stats_dump (developmentonly defensive)
+ Print per-entity decode change callback stats
+
net_fakeclear (release)
Clear all simulated network conditions
@@ -2576,7 +2582,7 @@ playcast (release)
Play a broadcast
playdemo (release)
- Play a recorded demo file (.dem ).
+ Play a recorded demo file (.dem ). Options: start=<tick> end=<tick> timescale=<float> (run with no arguments for details).
player_ping (gamedll client_can_execute)
Creates a ping notification where the player is looking.
@@ -3818,6 +3824,22 @@ vprof_generate_report_budget (developmentonly defensive)
vprof_generate_report_hierarchy (developmentonly defensive)
Generate a report to the console.
+vprof_lite_dump (developmentonly defensive)
+ vprof_lite_dump [filename] [stop=1]
+ Write the vprof lite budget group statistics as CSV, then stop the profiler and clear its data.
+ stop=0 leaves the profiler running with its data. The default filename is vprof_lite.csv in the mod directory;
+ an absolute path is used as given. Sets vprof_lite_auto 0, so the game will not stop or dump the profiler on its own.
+
+vprof_lite_start (developmentonly defensive)
+ vprof_lite_start [clear=1]
+ Start the vprof lite profiler, clearing any data it holds. clear=0 keeps the data and continues adding to it.
+ Sets vprof_lite_auto 0, so the game will not stop or dump the profiler on its own.
+
+vprof_lite_stop (developmentonly defensive)
+ vprof_lite_stop [clear=1]
+ Stop the vprof lite profiler and clear its data. clear=0 keeps the data, for engine_frametime_print_report or vprof_lite_dump.
+ Sets vprof_lite_auto 0, so the game will not start the profiler on its own.
+
vprof_loadhitstore_scale (developmentonly hidden)
Scale used when displaying load-hit-stores (0 = use default)
DumpSource2/convars.txt
modified • +80 / -23 • changes: 103
Show patch
@@ -982,8 +982,8 @@ cl_clock_recvmargin_window 4 (developmentonly)
cl_clockdbg false (developmentonly defensive)
<no description>
-cl_clockdrift_max_ticks 3 (min: 0, hidden release)
- Maximum number of ticks the clock is allowed to drift before the client snaps its clock to the server's.
+cl_clockdrift_max_secs 0.125 (min: 0, hidden release)
+ Maximum duration the client clock is allowed to drift from server snapshots, before the client snaps its clock to the latest server snapshot received
cl_clutch_mode false (clientdll release)
Silence voice and other distracting sounds until the end of round or next death.
@@ -1654,6 +1654,9 @@ cl_obs_interp_speed 1 (min: 0.25, max: 2.5, clientdll archive)
cl_observed_bot_crosshair 2 (clientdll archive release)
Crosshair shown when observing a bot. 0 = show your crosshair, 1 = show your crosshair only when the bot can be taken over (otherwise default), 2 = always show the default crosshair
+cl_packetentities_merge_before_decode true (developmentonly defensive)
+ When an entity is decoded from a baseline plus a wire delta, merge the two and decode once (true), or decode the baseline and then the delta as two passes (false, the old behaviour, which can invoke change callbacks with baseline values for an entity that already exists).
+
cl_paintkit_override "" (clientdll cheat release)
<no description>
@@ -4675,7 +4678,7 @@ lservercfgfile "listenserver.cfg" (developmentonly gamedll defensive)
lua_assert_on_error false (developmentonly defensive)
<no description>
-lua_is_currently_executing false (hidden dontrecord release flag_36)
+lua_is_currently_executing false (hidden dontrecord release vconsole_no_change_notify)
<no description>
lua_shipping_assert_on_error false (developmentonly defensive)
@@ -6573,17 +6576,47 @@ net_filelogging false (developmentonly)
net_fs_showindirections false (developmentonly)
<no description>
-net_limit_sv_recv_max_message_size_kb 32 (release)
- Server will reject message larger than N kb
+net_gather_child_fields_only false (release)
+ GatherSendProxyResults only walks struct and array fields, skipping scalar fields.
+
+net_limit_sv_listen_max_message_size_kb 3 (release)
+ Server: max SteamNetworkingSockets message size in kb accepted from a connection that does not yet have a netchan
+
+net_limit_sv_listen_recvbuffer_kb 16 (release)
+ Server: SteamNetworkingSockets will not buffer more than N kb from a connection that does not yet have a netchan
+
+net_limit_sv_listen_recvbuffer_msg 4 (release)
+ Server: SteamNetworkingSockets will not buffer more than N messages from a connection that does not yet have a netchan
+
+net_limit_sv_message_process_time_ms_drop_burst 300 (release)
+ Drop a client if processing their messages consumes more than N ms of CPU time in a burst (token bucket capacity)
+
+net_limit_sv_message_process_time_ms_drop_rate_per_sec 500 (release)
+ Drop a client if processing their messages consumes more than N ms of CPU time *PER SECOND*, sustained (token bucket fill rate)
+
+net_limit_sv_message_process_time_ms_warn_burst 50 (release)
+ Warn if processing messages from a client consumes more than N ms of CPU time in a burst (token bucket capacity)
+
+net_limit_sv_message_process_time_ms_warn_rate_per_sec 150 (release)
+ Warn if processing messages from a client consumes more than N ms of CPU time *PER SECOND*, sustained (token bucket fill rate)
+
+net_limit_sv_recv_chan_buffer_messages 1000 (release)
+ Max number of source engine messages that can be queued in a netchan receive buffer for an ordinary connection from a client.
+
+net_limit_sv_recv_chan_msgs_per_frame 500 (release)
+ Max number of source engine messages an ordinary client connection may put in a single network frame. Exceeding this disconnects the client.
+
+net_limit_sv_recv_max_frame_size_kb 64 (release)
+ Server will reject uncompressed Source engine frame larger than N kb. Also sets limit on SteamNetworkingSockets message size
net_limit_sv_recv_segments_per_packet 50 (release)
- Server will reject packets with more than N segments
+ Server: SteamNetworkingSockets will reject packets with more than N message segments
net_limit_sv_recvbuffer_kb 128 (release)
- Server will not buffer more than N kb from connected clients
+ Server: SteamNetworkingSockets will not buffer more than N kb from connected clients
net_limit_sv_recvbuffer_msg 100 (release)
- Server will not buffer more than N messages from connected clients
+ Server: SteamNetworkingSockets will not buffer more than N messages from connected clients
net_log_processing false (developmentonly defensive)
Log network processing
@@ -7620,6 +7653,36 @@ r_csgo_enable_volume_fog false (developmentonly clientdll)
r_csgo_firstpersonlegs_nearz_offset 0.1 (developmentonly clientdll)
<no description>
+r_csgo_frost_dry_time 20 (developmentonly clientdll)
+ Seconds for the melted frost to dry
+
+r_csgo_frost_force -1 (developmentonly clientdll)
+ Frost on players, weapons and chickens: -1 = the map's (info_map_parameters frostenabled), 0 = off, 1 = on (outdoors; melts indoors)
+
+r_csgo_frost_grow_time 10 (developmentonly clientdll)
+ Seconds outdoors for frost to grow to full
+
+r_csgo_frost_heat_barrel_position 0.33 (developmentonly clientdll)
+ Frost: where the barrel heat sits, from the shell eject (0) to the muzzle (1)
+
+r_csgo_frost_heat_cool_time 20 (developmentonly clientdll)
+ Frost: seconds for a hot barrel to cool down
+
+r_csgo_frost_heat_light_delay 1 (developmentonly clientdll)
+ Frost: seconds after a molotov is lit before its rag starts to heat (the flame shows a moment after)
+
+r_csgo_frost_heat_light_time 10 (developmentonly clientdll)
+ Frost: seconds for a lit molotov's rag to reach full heat
+
+r_csgo_frost_heat_per_shot 0.05 (developmentonly clientdll)
+ Frost: barrel heat per shot (1 = hot enough to clear the whole barrel)
+
+r_csgo_frost_indoor_distance 128 (developmentonly clientdll)
+ Frost: distance under cover (no sky) over which the cold fades out (indoors)
+
+r_csgo_frost_melt_time 10 (developmentonly clientdll)
+ Seconds indoors for full frost to melt
+
r_csgo_fsr_enable_mip_bias true (developmentonly clientdll defensive)
Apply negative mip bias when rendering with FSR.
@@ -7743,6 +7806,9 @@ r_csgo_opaquerefract_viewmodel_quality 1 (developmentonly clientdll)
r_csgo_outline_glow_scaledenom 1 (developmentonly clientdll cheat)
<no description>
+r_csgo_parallax 1 (developmentonly clientdll defensive)
+ Parallax occlusion mapping (Advanced Video setting): 0 = off, 1 = on
+
r_csgo_player_occlusion_query true (developmentonly clientdll)
<no description>
@@ -11454,18 +11520,6 @@ sv_mover_pogofrequency 10 (developmentonly gamedll clientdll notify replicated d
sv_mute_players_with_social_penalties true (developmentonly gamedll defensive)
<no description>
-sv_net_client_message_process_time_ms_drop_burst 500 (release)
- Drop a client if processing their messages consumes more than N ms of CPU time in a burst (token bucket capacity)
-
-sv_net_client_message_process_time_ms_drop_rate 200 (release)
- Drop a client if processing their messages consumes more than N ms of CPU time per second, sustained (token bucket fill rate)
-
-sv_net_client_message_process_time_ms_warn_burst 50 (release)
- Warn if processing messages from a client consumes more than N ms of CPU time in a burst (token bucket capacity)
-
-sv_net_client_message_process_time_ms_warn_rate 5 (release)
- Warn if processing messages from a client consumes more than N ms of CPU time per second, sustained (token bucket fill rate)
-
sv_netprof_delta_sharing_temp false (release)
Temp counter for measuring performance impact of some network changes. To be removed by the end of Sept 2026
@@ -11652,9 +11706,6 @@ sv_rcon_minfailuretime 30 (min: 1, developmentonly defensive)
sv_record_item_time_data false (gamedll release)
Turn on recording of per player item time data into the server log.
-sv_recvbuf_messages 1024 (developmentonly defensive)
- Max number of messages that can be queued in a netchan receive buffer for an ordinary connection from a client.
-
sv_regeneration_force_on false (gamedll cheat)
Cheat to test regenerative health systems
@@ -12687,6 +12738,9 @@ videocfg_fsr_detail 0 (developmentonly clientdll defensive)
videocfg_hdr_detail -1 (developmentonly clientdll defensive)
<no description>
+videocfg_parallax_detail 0 (developmentonly clientdll defensive)
+ <no description>
+
videocfg_particle_detail 1 (developmentonly clientdll defensive)
<no description>
@@ -12900,6 +12954,9 @@ vprof_counters 0 (developmentonly defensive)
vprof_counters_show_minmax false (developmentonly defensive)
<no description>
+vprof_lite_auto true (release)
+ Let demo playback and the game rules start, dump and stop the vprof lite profiler on their own. The vprof_lite_start, vprof_lite_stop and vprof_lite_dump commands set this to 0 so that a script can drive the profiler itself.
+
vprof_scope_entity_clientthink false (developmentonly clientdll hidden defensive)
Does nothing whatsoever.
DumpSource2/entities/client.fgd
modified • +1 / -0 • changes: 1
Show patch
@@ -1815,6 +1815,7 @@
envpuddlerippledirection(float) // FIELD_FLOAT32 m_flEnvPuddleRippleDirection
envwetnesscoverage(float) // FIELD_FLOAT32 m_flEnvWetnessCoverage
envwetnessdryingamount(float) // FIELD_FLOAT32 m_flEnvWetnessDryingAmount
+ frostenabled(boolean) // FIELD_BOOLEAN m_bFrostEnabled
input FireWinCondition(integer) // PVAL_INT param
]
DumpSource2/entities/server.fgd
modified • +1 / -0 • changes: 1
Show patch
@@ -3108,6 +3108,7 @@
envpuddlerippledirection(float) // FIELD_FLOAT32 m_flEnvPuddleRippleDirection
envwetnesscoverage(float) // FIELD_FLOAT32 m_flEnvWetnessCoverage
envwetnessdryingamount(float) // FIELD_FLOAT32 m_flEnvWetnessDryingAmount
+ frostenabled(boolean) // FIELD_BOOLEAN m_bFrostEnabled
input FireWinCondition(integer) // PVAL_INT param
]
DumpSource2/module_metadata/client/resource_manifests.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -278,7 +278,7 @@ GameStartup "RenderingPipelineCsgoManifest" // src/game/client/cstrike15/renderi
materials/dev/water_droplets.vtex
materials/dev/water_waves.vtex
materials/dev/water_flowing.vtex
- materials/dev/snow_sparkle.vtex
+ materials/dev/frost.vtex
materials/dev/rain_ripples.vtex
materials/dev/custom_cubemap_001.vtex
materials/dev/overlay_smoke.vmat
DumpSource2/network/client.txt
modified • +2 / -3 • changes: 5
Show patch
@@ -58,7 +58,6 @@ CBaseFilter
CBasePlayerController
include by name: m_pEntity, m_flSimulationTime, m_flCreateTime, m_iTeamNum, m_nNextThinkTick, m_fFlags
include by user group: LocalPlayerExclusive, LocalPlayerAndPredictorsExclusive
- overrides: m_nNextThinkTick userGroup LocalPlayerAndPredictorsExclusive
user group proxies: LocalPlayerExclusive, LocalTeamExclusive, LocalPlayerAndObserversExclusive, LocalPlayerAndPredictorsExclusive
replay compat fields: m_skeletonInstance\.m_vecOrigin\..*| OnReplayCompat_GameSceneNodeOriginAngles
uint32 m_nTickBase (priority: 1; user groups: LocalPlayerAndPredictorsExclusive)
@@ -994,7 +993,7 @@ C_BasePlayerPawn
exclude by name: m_pWeaponServices, m_pItemServices, m_pAutoaimServices, m_pObserverServices, m_pWaterServices, m_pUseServices, m_pFlashlightServices, m_pMovementServices
include by user group: Player, Water, LocalPlayerExclusive, LocalPlayerAndPredictorsExclusive
exclude by user group: FogController
- overrides: CNetworkOriginCellCoordQuantizedVector::m_vecX bitCount 32, CNetworkOriginCellCoordQuantizedVector::m_vecY bitCount 32, CNetworkOriginCellCoordQuantizedVector::m_vecZ bitCount 32, m_lifeState changeCallback OnLifeStateChanged, m_nNextThinkTick userGroup LocalPlayerAndPredictorsExclusive
+ overrides: CNetworkOriginCellCoordQuantizedVector::m_vecX bitCount 32, CNetworkOriginCellCoordQuantizedVector::m_vecY bitCount 32, CNetworkOriginCellCoordQuantizedVector::m_vecZ bitCount 32, m_lifeState changeCallback OnLifeStateChanged
user group proxies: LocalPlayerExclusive
CPlayer_WeaponServices * m_pWeaponServices
CPlayer_ItemServices * m_pItemServices
@@ -1829,7 +1828,7 @@ C_Hostage
CHandle< CBaseEntity> m_leader (sent as: ehandle)
CountdownTimer m_reuseTimer
Vector m_vel
- bool m_isRescued (change callbacks: RecvProxy_Rescued)
+ bool m_isRescued
bool m_jumpedThisFrame (change callbacks: RecvProxy_Jumped)
int m_nHostageState (change callbacks: OnHostageStateChanged)
bool m_bHandsHaveBeenCut
DumpSource2/network/server.txt
modified • +0 / -1 • changes: 1
Show patch
@@ -273,7 +273,6 @@ CBasePlatTrain
CBasePlayerController
include by name: m_pEntity, m_flSimulationTime, m_flCreateTime, m_iTeamNum, m_nNextThinkTick, m_fFlags
include by user group: LocalPlayerExclusive, LocalPlayerAndPredictorsExclusive
- overrides: m_nNextThinkTick userGroup LocalPlayerAndPredictorsExclusive
user group proxies: LocalPlayerExclusive, LocalTeamExclusive, LocalPlayerAndObserversExclusive, LocalPlayerAndPredictorsExclusive
network class
uint32 m_nTickBase (priority: 1; user groups: LocalPlayerAndPredictorsExclusive)
DumpSource2/schemas/client/CMapInfo.h
modified • +1 / -0 • changes: 1
Show patch
@@ -15,4 +15,5 @@ class CMapInfo : public C_PointEntity
float32 m_flEnvPuddleRippleDirection;
float32 m_flEnvWetnessCoverage;
float32 m_flEnvWetnessDryingAmount;
+ bool m_bFrostEnabled;
};
DumpSource2/schemas/client/CNmAimCSNode__CDefinition.h
modified • +1 / -0 • changes: 1
Show patch
@@ -12,4 +12,5 @@ class CNmAimCSNode::CDefinition : public CNmPassthroughNode::CDefinition
float32 m_flHandIKBlendInTimeSeconds;
float32 m_flActionBlendTimeSeconds;
float32 m_flPlantingBlendTimeSeconds;
+ float32 m_flTransitionBlendTimeSeconds;
};
DumpSource2/schemas/client/C_Hostage.h
modified • +0 / -1 • changes: 1
Show patch
@@ -14,7 +14,6 @@ class C_Hostage : public C_BaseCombatCharacter
GameTime_t m_flRescueStartTime;
GameTime_t m_flGrabSuccessTime;
GameTime_t m_flDropStartTime;
- GameTime_t m_flDeadOrRescuedTime;
CountdownTimer m_blinkTimer;
VectorWS m_lookAt;
CountdownTimer m_lookAroundTimer;
DumpSource2/schemas/client/EventClientPollNetworking_t.h
modified • +1 / -0 • changes: 1
Show patch
@@ -2,4 +2,5 @@
class EventClientPollNetworking_t
{
int32 m_nTickCount;
+ int32 m_nTotalTicks;
};
DumpSource2/schemas/modtools/CNmGraphDocAimCSNode.h
modified • +1 / -0 • changes: 1
Show patch
@@ -4,4 +4,5 @@ class CNmGraphDocAimCSNode : public CNmGraphDocFlowNode
float32 m_flActionBlendTimeSeconds; // = 0.4
float32 m_flHandIKBlendInTimeSeconds; // = 0.3
float32 m_flPlantingBlendTimeSeconds; // = 0.2
+ float32 m_flTransitionBlendTimeSeconds; // = 0.3
};
DumpSource2/schemas/server/CMapInfo.h
modified • +1 / -0 • changes: 1
Show patch
@@ -15,4 +15,5 @@ class CMapInfo : public CPointEntity
float32 m_flEnvPuddleRippleDirection;
float32 m_flEnvWetnessCoverage;
float32 m_flEnvWetnessDryingAmount;
+ bool m_bFrostEnabled;
};
Protobufs/netmessages.proto
modified • +2 / -1 • changes: 3
Show patch
@@ -418,9 +418,10 @@ message CSVCMsg_CreateStringTable {
optional int32 user_data_size_bits = 5;
optional int32 flags = 6;
optional bytes string_data = 7;
- optional int32 uncompressed_size = 8;
optional bool data_compressed = 9;
optional bool using_varint_bitcounts = 10;
+
+ reserved 8;
}
message CSVCMsg_UpdateStringTable {
Protobufs/source2_steam_stats.proto
modified • +4 / -0 • changes: 4
Show patch
@@ -24,6 +24,9 @@ message CMsgSource2SystemSpecs {
optional string cpu_brand = 2;
optional uint32 cpu_model = 3;
optional uint32 cpu_num_physical = 4;
+ optional uint32 cpu_num_logical = 5;
+ optional uint32 cpu_num_performance = 6;
+ optional uint32 cpu_num_efficiency = 7;
optional uint32 ram_physical_total_mb = 21;
optional string gpu_rendersystem_dll_name = 41;
optional uint32 gpu_vendor_id = 42;
@@ -34,6 +37,7 @@ message CMsgSource2SystemSpecs {
optional uint32 gpu_texture_memory_size_mb = 47;
optional uint32 backbuffer_width = 51;
optional uint32 backbuffer_height = 52;
+ optional uint32 thread_pool_workers = 61;
}
message CMsgSource2VProfLiteReportItem {
game/bin/built_from_cl.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -1 +1 @@
-11206685
+11228763
game/bin/win64/animationsystem_strings.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -2586,6 +2586,7 @@ Cant find specified effector bone ID ('%s') for two bone IK
Ceiling - round float up to nearest integer)
Ceiling Float
Chain Lookat
+Chain Lookat Task - Trying to perform a chain lookat on top of an additive pose, this is not allowed!
Check Requirement
Check Type
Check if any element of 'a' compares equal to 'element'.
game/bin/win64/csgocfg.exe_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -167,7 +167,7 @@
.CRT$XIAC
.fgd
/e,/select,"
-15:32:27
+09:24:20
1AcceptIfItemPicked()
1OnAccept()
1OnAddonDoubleClicked()
game/bin/win64/engine2_strings.txt
modified • +71 / -121 • changes: 192
Show patch
@@ -624,7 +624,6 @@ $tI(knN
%s ProcessBaselineAck: null frame snapshot (%d)\n
%s Received SpawnGroup_LoadCompleted on client '%s'\n
%s Unload\n
-%s [%d]
%s [%s from %d to %d - %d entities]
%s [%s]
%s allocation count overflow
@@ -799,6 +798,7 @@ $tI(knN
' in trial: "
'%s' already awaiting full update\n
'%s' is malformed\n
+'%s' is not a boolean; use %s=0 or %s=1\n
(%d,%d)
(*MARK) must have an argument
(*VERB) not recognized
@@ -864,6 +864,7 @@ $tI(knN
, clipping_threshold:
, compression_gain_db:
, crest_factor_margin:
+, data cleared
, enable_digital_adaptive:
, enable_limiter:
, enforce_high_pass_filtering:
@@ -873,6 +874,8 @@ $tI(knN
, ignored.
, initial_gain_db:
, initial_level:
+, keeping data
+, keeping existing data
, level:
, localization %s
, max_gain_change_db_per_second:
@@ -1693,7 +1696,6 @@ $tI(knN
.?AVCHLTVFrame@@
.?AVCHLTVServer@@
.?AVCHLTVServerAsync@@
-.?AVCHiddenFieldValuePrinter@@
.?AVCHostStateMgr@@
.?AVCHostSubscribeForProfileEvents@@
.?AVCHttpCallback@CHLTVBroadcast@@
@@ -1715,7 +1717,6 @@ $tI(knN
.?AVCLambdaJob@?1???$QueueJobWithFlags@V<lambda_1>@?BK@??ServerBeginSimulate@CNetworkGameServerBase@@UEAAXAEBUEventServerBeginSimulate_t@@@Z@@IThreadPool@@QEAA?AV?$CSmartPtr@VCThreadedJob@@VCRefCountAccessor@@@@PEBDW4JobPriority_t@@I$$QEAV<lambda_1>@?BK@??ServerBeginSimulate@CNetworkGameServerBase@@UEAAXAEBUEventServerBeginSimulate_t@@@Z@@Z@
.?AVCLambdaJob@?1???$QueueJobWithFlags@V<lambda_1>@?L@??LaunchAsyncBeginRenderingViewsJob@CRenderService@@UEAAXAEBUEventClientPreOutput_t@@_N@Z@@IThreadPool@@QEAA?AV?$CSmartPtr@VCThreadedJob@@VCRefCountAccessor@@@@PEBDW4JobPriority_t@@I$$QEAV<lambda_1>@?L@??LaunchAsyncBeginRenderingViewsJob@CRenderService@@UEAAXAEBUEventClientPreOutput_t@@_N@Z@@Z@
.?AVCLambdaJob@?1???$QueueJobWithFlags@V<lambda_2>@?BA@??LaunchAsyncBeginRenderingViewsJob@CRenderService@@UEAAXAEBUEventClientPreOutput_t@@_N@Z@@IThreadPool@@QEAA?AV?$CSmartPtr@VCThreadedJob@@VCRefCountAccessor@@@@PEBDW4JobPriority_t@@I$$QEAV<lambda_2>@?BA@??LaunchAsyncBeginRenderingViewsJob@CRenderService@@UEAAXAEBUEventClientPreOutput_t@@_N@Z@@Z@
-.?AVCLambdaJob@?1???$QueueJobWithFlags@V<lambda_3>@?BJ@??ProcessReadPacketEntitiesWorkItems@CNetworkGameClient@@AEAAXW4RPEStatType_t@@AEAVCEntityReadInfo@@@Z@@IThreadPool@@QEAA?AV?$CSmartPtr@VCThreadedJob@@VCRefCountAccessor@@@@PEBDW4JobPriority_t@@I$$QEAV<lambda_3>@?BJ@??ProcessReadPacketEntitiesWorkItems@CNetworkGameClient@@AEAAXW4RPEStatType_t@@AEAVCEntityReadInfo@@@Z@@Z@
.?AVCLoadAutoCompletionFunctor@@
.?AVCLoadSpawnGroupsPrerequisite@@
.?AVCLoadStartupResourcePrerequisite@@
@@ -1836,71 +1837,6 @@ $tI(knN
.?AVCPipedCommandLogRedirector@@
.?AVCPlayDemoClientPrerequisite@@
.?AVCPostConnectCallback@@
-.?AVCProtobufBinding@?$CNetMessagePB@$03VCNETMsg_Tick@@$0BA@$0A@$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$04VCNETMsg_StringCmd@@$08$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$05VCNETMsg_SetConVar@@$08$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$06VCNETMsg_SignonState@@$09$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$07VCNETMsg_SpawnGroup_Load@@$0P@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$08VCNETMsg_SpawnGroup_ManifestUpdate@@$0P@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0?0VC2S_CONNECTION_Message@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0?0VC2S_CONNECT_Message@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0?0VNetMessageConnectionClosed@@$0L@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0?0VNetMessageConnectionCrashed@@$0L@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0?0VNetMessageSplitscreenUserChanged@@$0L@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BA@VCBidirMsg_RebroadcastGameEvent@@$04$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BB@VCBidirMsg_RebroadcastSource@@$04$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BD@VCBidirMsg_PredictionEvent@@$0A@$0A@$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BE@VCCLCMsg_ClientInfo@@$09$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BF@VCCLCMsg_Move@@$07$0A@$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BG@VCCLCMsg_VoiceData@@$05$0A@$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BH@VCCLCMsg_BaselineAck@@$0BA@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJ@VCCLCMsg_RespondCvarValue@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BL@VCCLCMsg_LoadingProgress@@$09$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BM@VCCLCMsg_SplitPlayerConnect@@$09$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BO@VCCLCMsg_SplitPlayerDisconnect@@$09$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BP@VCCLCMsg_ServerStatus@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0CB@VCCLCMsg_RequestPause@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0CC@V?$CBaseCmdKeyValues@VCCLCMsg_CmdKeyValues@@@@$08$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0CD@VCCLCMsg_RconServerDetails@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0CE@VCCLCMsg_HltvReplay@@$0BB@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0CF@VCCLCMsg_Diagnostic@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0CI@VCSVCMsg_ServerInfo@@$09$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0CJ@VCSVCMsg_FlattenedSerializerWrapper@@$09$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0CK@VCSVCMsg_ClassInfo@@$09$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0CL@VCSVCMsg_SetPause@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0CM@VCSVCMsg_CreateStringTable@@$09$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0CN@VCSVCMsg_UpdateStringTable@@$06$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0CO@VCSVCMsg_VoiceInit@@$09$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0CP@VCSVCMsg_VoiceData@@$05$0A@$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DA@VCSVCMsg_Print@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DB@VCSVCMsg_Sounds@@$03$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DC@VCSVCMsg_SetView@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DD@VCSVCMsg_ClearAllStringTables@@$09$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DE@V?$CBaseCmdKeyValues@VCSVCMsg_CmdKeyValues@@@@$08$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DG@VCSVCMsg_SplitScreen@@$09$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DH@VCSVCMsg_PacketEntities@@$0?0$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DI@VCSVCMsg_Prefetch@@$03$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DJ@VCSVCMsg_Menu@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DK@VCSVCMsg_GetCvarValue@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DL@VCSVCMsg_StopSound@@$03$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DM@VCSVCMsg_PeerList@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DN@VCSVCMsg_PacketReliable@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DO@VCSVCMsg_HLTVStatus@@$0A@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0DP@VCSVCMsg_ServerSteamID@@$0A@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0EAAAAAAA@VNetMessagePacketStart@@$0L@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0EAAAAAAB@VNetMessagePacketEnd@@$0L@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0EG@VCSVCMsg_FullFrameSplit@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0EH@VCSVCMsg_RconServerDetails@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0EI@VCSVCMsg_UserMessage@@$0N@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0EK@VCSVCMsg_HltvReplay@@$0BB@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0EL@VCCLCMsg_HltvFixupOperatorTick@@$0BB@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0EM@VCSVCMsg_UserCommands@@$0BB@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0EN@VCSVCMsg_NextMsgPredicted@@$0BB@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0EO@VCSVCMsg_EncryptedData@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0L@VCNETMsg_SpawnGroup_SetCreationTick@@$0P@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0M@VCNETMsg_SpawnGroup_Unload@@$0P@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0N@VCNETMsg_SpawnGroup_LoadCompleted@@$0P@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0P@VCNETMsg_DebugOverlay@@$0BA@$00$0A@@@
.?AVCPulseCell_Base@@
.?AVCPulseCell_BaseFlow@@
.?AVCPulseCell_BaseRequirement@@
@@ -2199,7 +2135,6 @@ $tI(knN
.?AVIPrerequisiteRegistry@@
.?AVIPrintChangedConvarsWriter@@
.?AVIProceduralLayerRenderer@@
-.?AVIProtobufBinding@@
.?AVIPulseCellDebugInfo@@
.?AVIPulseInstanceLoadAPI@@
.?AVIPulseInstanceSaveAPI@@
@@ -2452,6 +2387,7 @@ $tI(knN
00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
0123456789abcdef
0123456789abcdefghijklmnopqrstuvwxyz
+09:25:33
0: run all send jobs on main thread; 1: send jobs run asynchronously (except on dedicated server); 2: send jobs asynchronously; 3: send jobs run in parallel but block to not overlap the next tick; 4: main server clients' send jobs run in parallel, then HLTV server jobs; this approximately matches pre-async profile for a single HLTV server configuration
0=Off, 1=Surface Wireframe, 2=Transparent Wireframe
0=Off, 1=Visualize trace from camera, 2=Visualize occlusion, 3=Visualize far field trace from camera
@@ -2465,7 +2401,6 @@ $tI(knN
1#SNAN
1.2.11
127.0.0.1
-15:35:28
1:1: Tokens : ( T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | TOK_COLON | OPEN_BRACE | CLOSE_BRACE | OPEN_PAREN | CLOSE_PAREN | OPEN_BRACKET | CLOSE_BRACKET | SEMICOLON | OP_EQUAL | COMMA | DOUBLE_AND | NEGATIVE_TOK | DOUBLE_OR | LITERAL_TRUE | LITERAL_FALSE | POS_INTLITERAL | POS_FLOATLITERAL | SCOPE_QUALIFIER | ID | DOUBLE_QUOTED_STRING | SINGLE_QUOTED_STRING | SINGLE_LINE_COMMENT | ML_COMMENT | WS | UNRECOGNIZED );
200000
3$EE\f
@@ -2695,7 +2630,6 @@ $tI(knN
?GetType@netadr_t@@QEBA?AW4netadrtype_t@@XZ
?GetUint64@KeyValues@@QEBA_KPEBD_K@Z
?HandlerQueueHeartBeat@MiniDumpStandardData_t@@QEBAXXZ
-?HaveWriteLock_BlockReadsNow@CThreadRWLock_FastRead@@QEAAX_N@Z
?InitEmpty@CStrAutoEncode@@AEAAXXZ
?Insert@CBufferString@@QEAAPEBDHPEBDH_N@Z
?InternalPop@CTSListBase@@AEAAPEAUTSLNodeBase_t@@XZ
@@ -2758,7 +2692,6 @@ $tI(knN
?ReadAsBinary@KeyValues@@QEAA_NAEAVCUtlBuffer@@@Z
?RecursiveSaveToFile@KeyValues@@QEBAXAEAVCUtlBuffer@@H_N1@Z
?RegisterEventListener_Base@CEventDispatcher_Base@@IEAAXAEBVCUtlAbstractDelegate@@I_NAEAV?$CUtlVector@UEventListenerInfo_t@CEventDispatcher_Base@@HV?$CUtlVectorMemory_Growable@UEventListenerInfo_t@CEventDispatcher_Base@@H$0A@@@@@HPEBD@Z
-?Relinquish@CBufferString@@QEAAPEADW4EAllocationOption_t@1@@Z
?Remove@CUtlString@@QEBA?AV1@PEBD_N@Z
?RemoveAll@CUtlSymbolTable@@QEAAXXZ
?RemoveAt@CBufferString@@QEAAPEBDHH@Z
@@ -3218,10 +3151,9 @@ Bulgarian
By default, player must ack delta ticks in order. How to enforce it: 2 = kick all clients, 1 = kick only TV clients, 0 = do not kick.
By default, player must maintain a reliable connection to Steam servers. When player Steam session drops, enforce it: 2 = instantly kick, 1 = kick at next spawn, 0 = do not kick.
Bypass secure challenge on TV port
-C2S_CONNECTION_Message_t::GetProtobufBinding()->WriteToBuffer failed\n
+C2S_CONNECTION_Message_t::WriteSizeAndBodyToBuffer failed\n
C:\buildworker\csgo_rel_win64\build\_build_\engine2\_vpc_engine2\default\win64\_msvc_\Retail\engine2.pdb
C:\buildworker\csgo_rel_win64\build\src\bitmap\floatbitmap.cpp
-C:\buildworker\csgo_rel_win64\build\src\common\protobuf_helpers.cpp
C:\buildworker\csgo_rel_win64\build\src\engine2\basespawngroup.h
C:\buildworker\csgo_rel_win64\build\src\engine2\cl_demo.cpp
C:\buildworker\csgo_rel_win64\build\src\engine2\cl_ents_parse.cpp
@@ -3243,22 +3175,22 @@ C:\buildworker\csgo_rel_win64\build\src\engine2\loopmoderemoteconnect.cpp
C:\buildworker\csgo_rel_win64\build\src\engine2\looptypeclientserver.cpp
C:\buildworker\csgo_rel_win64\build\src\engine2\networkclientservice.cpp
C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameclient.cpp
-C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameclient.cpp:2666
-C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameclient.cpp:3674
-C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameclient.cpp:4458
-C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameclient.cpp:4754
+C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameclient.cpp:2681
+C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameclient.cpp:3706
+C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameclient.cpp:4550
+C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameclient.cpp:4846
C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameclientbase.cpp
C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameclientbase.cpp:2819
C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameclientbase.cpp:4519
C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameclientbase.cpp:4561
C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameserver.cpp
C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameserver.cpp:1053
C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameserverbase.cpp
-C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameserverbase.cpp:3085
-C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameserverbase.cpp:5769
-C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameserverbase.cpp:5835
-C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameserverbase.cpp:5924
-C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameserverbase.cpp:5930
+C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameserverbase.cpp:3086
+C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameserverbase.cpp:5764
+C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameserverbase.cpp:5830
+C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameserverbase.cpp:5919
+C:\buildworker\csgo_rel_win64\build\src\engine2\networkgameserverbase.cpp:5925
C:\buildworker\csgo_rel_win64\build\src\engine2\networkp2pservice.cpp
C:\buildworker\csgo_rel_win64\build\src\engine2\networkserverservice.cpp
C:\buildworker\csgo_rel_win64\build\src\engine2\networkstringtable.cpp
@@ -3547,7 +3479,6 @@ CHLTVClientState::ProcessClassInfo: expecting to re-create serializers from serv
CHLTVClientState::SendPacket
CHLTVDemoRecorder::CullSpawnGroups culling message %s, spawngroup %s was never created\n
CHLTVDemoRecorder::CullSpawnGroups culling message at %d unable to unserialize. %s\n
-CHLTVDemoRecorder::CullSpawnGroups culling message at unknown handle\n
CHLTVDemoRecorder::ParseMessage: Failed to serialize message\n
CHLTVDemoRecorder::WriteFrame
CHLTVDemoRecorder::WriteFrame: Failed to serialize CNETMsg_Tick_t\n
@@ -3717,6 +3648,7 @@ CNetworkGameClient::InternalProcessPacketEntities
CNetworkGameClient::OnPreserveEntity
CNetworkGameClient::ProcessClassInfo: create on client %s\n
CNetworkGameClient::ProcessClassInfo: creating client serializers from local server serializers (crc %u, server api %s)\n
+CNetworkGameClient::ProcessClassInfo: failed to parse cached CSVCMsg_FlattenedSerializer_t: %s\n
CNetworkGameClient::ProcessClassInfo: parsing serializers from cache due to matching crc %u\n
CNetworkGameClient::ProcessTick( -1 ), ignoring during demo playback\n
CNetworkGameClient::SendMoveInternal: Send delayed due to !CanPacket, tick=%d\n
@@ -3745,8 +3677,8 @@ CNetworkGameServerBase::ConnectClient( name='%s', remote='%s' )\n
CNetworkGameServerBase::ReplyConnection
CNetworkGameServerBase::SetServerState (%s -> %s)\n
CNetworkP2PService
-CNetworkP2PService::InternalBroadcastP2PNetMessage: SerializeAbstract for message %s failed!\n
-CNetworkP2PService::InternalBroadcastP2PNetMessage: SerializeAbstract for message %s overflowed!\n
+CNetworkP2PService::InternalBroadcastP2PNetMessage: Serialize for message %s failed!\n
+CNetworkP2PService::InternalBroadcastP2PNetMessage: Serialize for message %s overflowed!\n
CNetworkP2PService::UpdatePeerConnectionStatus
CNetworkSerializerClassInfo::Get( %s ) failed!\n
CNetworkServerCreatePrerequisites
@@ -3768,7 +3700,8 @@ CNetworkServerSpawnGroup_WaitForChildSpawnGroups
CNetworkServerSpawnGroup_WaitForClients
CNetworkServerSpawnGroup_WaitForOwnerSpawnGroupPrerequisite
CNetworkStringTable::AddString: client added string which server didn't put into table (consider SetAllowClientSideAddString?): %s %s\n
-CNetworkStringTableClient::ParseUpdate: message too large (%d bytes > %d).
+CNetworkStringTableClient::ParseUpdate: bogus user data size (%d bytes, max %d).
+CNetworkStringTableClient::ParseUpdate: failed to decompress user data for table %s
CNetworkStringTableContainer::CreateStringTable
CNetworkStringTableContainer::CreateStringTable with nullptr table name!
CNetworkStringTableContainer::DirectUpdate
@@ -3951,8 +3884,8 @@ CUtlLeanVectorBase<struct UtlLinkedListElem_t<struct CSequentialPrerequisite::Pr
CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<class CUtlSymbolLarge,class CEntityNameList *,class CDefLess<class CUtlSymbolLarge>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity
CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<class INetworkClientService::CEventIDManager_RelayedClientMessage::EventID_t,class CUtlVector<struct CEventDispatcher_Base::EventListenerInfo_t,int,class CUtlVectorMemory_Growable<struct CEventDispatcher_Base::EventListenerInfo_t,int,0> >,class CDefLess<class INetworkClientService::CEventIDManager_RelayedClientMessage::EventID_t>,unsigned int>::Node_t,unsigned int>,unsigned int,class CMemAllocAllocator>::EnsureCapacity
CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<class IPeerGroupHandler::CEventIDManager_IPeerGroupHandler::EventID_t,class CUtlVector<struct CEventDispatcher_Base::EventListenerInfo_t,int,class CUtlVectorMemory_Growable<struct CEventDispatcher_Base::EventListenerInfo_t,int,0> >,class CDefLess<class IPeerGroupHandler::CEventIDManager_IPeerGroupHandler::EventID_t>,unsigned int>::Node_t,unsigned int>,unsigned int,class CMemAllocAllocator>::EnsureCapacity
-CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<class IProtobufBinding const *,class CUtlVector<struct CEventDispatcher_Base::EventListenerInfo_t,int,class CUtlVectorMemory_Growable<struct CEventDispatcher_Base::EventListenerInfo_t,int,0> >,class CDefLess<class IProtobufBinding const *>,unsigned int>::Node_t,unsigned int>,unsigned int,class CMemAllocAllocator>::EnsureCapacity
CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<class SchemaMetaInfoHandle_t<class CSchemaClassInfo>,class CUtlVector<struct CEventDispatcher_Base::EventListenerInfo_t,int,class CUtlVectorMemory_Growable<struct CEventDispatcher_Base::EventListenerInfo_t,int,0> >,class CDefLess<class SchemaMetaInfoHandle_t<class CSchemaClassInfo> >,unsigned int>::Node_t,unsigned int>,unsigned int,class CMemAllocAllocator>::EnsureCapacity
+CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<struct NetMessageHandle_t__ *,class CUtlVector<struct CEventDispatcher_Base::EventListenerInfo_t,int,class CUtlVectorMemory_Growable<struct CEventDispatcher_Base::EventListenerInfo_t,int,0> >,class CDefLess<struct NetMessageHandle_t__ *>,unsigned int>::Node_t,unsigned int>,unsigned int,class CMemAllocAllocator>::EnsureCapacity
CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<unsigned int,class CNetworkClientSpawnGroup *,class CDefLess<unsigned int>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity
CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<unsigned int,class CNetworkServerSpawnGroup *,class CDefLess<unsigned int>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity
CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<unsigned int,class CPVS *,class CDefLess<unsigned int>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity
@@ -4280,6 +4213,7 @@ CreateInterface
CreateNewThreadPool
CreateProcessA
CreateSimpleThread
+CreateStringTable @%d: failed to decompress string table data for %s\n
CreateStringTable @%d\n
CreateThread
CreateThreadpoolWork
@@ -4356,7 +4290,7 @@ DeclareCurrentThreadIsMainThread
DeclareCurrentThreadIsSecondaryMainThread
DecodeClassBaseline
DecodeClassBaseline: NULL instance baseline table
-DecodeDemoNetMessage Failed to parse message\n
+DecodeDemoNetMessage Failed to parse message %s: %s\n
DecodePointer
DecreaseAverage
DecreaseRate
@@ -4634,6 +4568,7 @@ EnumValueOptions
Enums must contain at least one value.
Error
Error - No tick marked\n
+Error - Not currently playing back a demo. To start playback at a tick, use playdemo <file> start=<tick>.\n
Error - Not currently playing back a demo.\n
Error in bitbuf [%s]: buffer overrun. Debug in bitbuf_errorhandler.cpp\n
Error in bitbuf [%s]: out of range value. Debug in bitbuf_errorhandler.cpp\n
@@ -4705,7 +4640,6 @@ EventSetTime_t
EventSimpleLoopFrameUpdate_t
EventSimulate_t
EventSplitScreenStateChanged_t
-Events
Exceeds Maximum Package Depth
Excess render blocks detected at block
Excessive frame time of %.2fms (due to '%s') clamped. Acting as if the frame only took %.2fms\n
@@ -4866,6 +4800,7 @@ Failed to start recording movie: %s.*: %s\n
Failed to successfully serialize connect message
Failed to update on remove script entity %s of type %s: script entity instance is null\n
Failed to write file %s, configFileType %d, nSlot %d\n
+Failed to write vprof lite report to %s\n
Failure
False
February
@@ -4981,6 +4916,7 @@ Force full sendtable sending path.
Force uncompressed update
Force user input to this split screen player.
ForceFixedAppIds
+ForceUseBuildVersion
Forced by cvar\n
Forcing engine to render for the next %d frames\n
FormatMessageA
@@ -5047,7 +4983,6 @@ GRU1
Gain change detected at block
GainController2;
Game
-Game Engine
Game Server is not running\n
Game Time
Game Time %s, Mod "%s", Map "%s"\n
@@ -5086,7 +5021,6 @@ Generate a report to the console based on budget group.
Generate a report to the console.
Generate an assert to test shipping assertion code
Generated Panorama Layout XSD in %0.2f seconds.
-Generic
Georgian
German
Get Integer Attribute
@@ -5275,7 +5209,6 @@ Highest unlocked game chapter.
Highlight expensive physics objects
Highlight expensive physics objects strength
Hiragana
-Hltv Replay
Hltv Replay Failure: cannot find stash %d\n
Hltv Replay failure: HLTV frame is not ready\n
Hltv Replay failure: Hltv replay is not enabled\n
@@ -5432,7 +5365,7 @@ Invalid JPEG file structure: SOS before SOF
Invalid JPEG file structure: missing SOS marker
Invalid JPEG file structure: two SOF markers
Invalid JPEG file structure: two SOI markers
-Invalid S2C_CONNECTION packet
+Invalid S2C_CONNECTION packet: %s
Invalid SOS parameters for sequential JPEG
Invalid Steam key size
Invalid argument
@@ -5566,6 +5499,7 @@ LeavePVS
LegacyGameUI001
LegacyUserSettingsPathID
Lepcha
+Let demo playback and the game rules start, dump and stop the vprof lite profiler on their own. The vprof_lite_start, vprof_lite_stop and vprof_lite_dump commands set this to 0 so that a script can drive the profiler itself.
LevelLoad
Lexer encountered %d error(s)
Limbu
@@ -5590,6 +5524,7 @@ LoadAppSystems: appSystems Load(finish)
LoadAppSystems: finished
LoadAppSystems: pre game/client services %f msec
LoadAppSystems: %d modAppSystems took %f msec
+LoadDataTablesFromBuffer: failed to parse CSVCMsg_FlattenedSerializer_t: %s\n
LoadDemoClassInfos: can't allocate %d C_ServerClassInfos.\n
LoadDemoClassInfos: invalid class index (%d).\n
LoadImageA
@@ -5771,13 +5706,12 @@ Max SourceTV spectator bandwidth rate allowed, 0 == unlimited
Max bandwidth rate allowed on server, 0 == unlimited
Max number of broadcast http requests in flight. If there is a network issue, the requests may start piling up, degrading server performance. If more than the specified number of requests are in flight, the new requests are dropped.
Max number of broadcast1 http requests in flight. If there is a network issue, the requests may start piling up, degrading server performance. If more than the specified number of requests are in flight, the new requests are dropped.
-Max number of messages that can be queued in a netchan receive buffer for an ordinary connection from a client.
Max number of ticks to simulate per frame, after which simulation will start to slow down compared to real time.
Max number of times a user can fail rcon authentication before being banned
Maximum allowable entity delta size over unreliable delivery.
Maximum amount of minutes to save history (0 is unlimited).
Maximum client number on SourceTV server.
-Maximum number of ticks the clock is allowed to drift before the client snaps its clock to the server's.
+Maximum duration the client clock is allowed to drift from server snapshots, before the client snaps its clock to the latest server snapshot received
Maximum queries per second to respond to from a single IP address.
Maximum queries per second to respond to from anywhere.
Maximum replay time in seconds
@@ -5848,7 +5782,6 @@ MountAddonSearchPaths: Failed to find CONTENTADDONS search path.\n
Mounting addon '%s'\n
Mouse
Mouse Control
-Move
Moves the camera position + orientation to the named entity
Moves the camera position + orientation to the specified position
Movie
@@ -5958,8 +5891,8 @@ No such device
No such device or address
No such file or directory
No such process
-No vprof lite data available?\n
No vprof lite data recorded\n
+No vprof lite data to write to %s\n
NoDefaultModPath
NoKeyBindings
NoLicenseOrExpired
@@ -5973,6 +5906,7 @@ Not a JPEG file: starts with 0x%02x 0x%02x
Not a SourceTV proxy
Not a directory
Not creating socket NS_HLTV due to -nohltv command line option.\n
+Not currently playing back a demo. demo_timescale will take effect when playback starts\n
Not enough space
Not implemented yet
Not logged into Steam, Steam auth will fail\n
@@ -5981,7 +5915,7 @@ Not saving user configuration because host_readconfig_ignore_userconfig is set.\
Not supported.
Note that enum values use C++ scoping rules, meaning that enum values are siblings of their type, not children of it. Therefore, "
Note: should use "addip" instead of "banip".\n
-Nov 2 2026
+Nov 11 2026
November
Now recording to "%s", immediate mode, recorded length so far is %s.\n
Now recording to "%s", recorded length so far is %s.\n
@@ -6073,6 +6007,7 @@ OneofOptions
Online %s, FPS %.1f, Version %i (%s)\n
Only DXT1/DXT5 online texture compression supported.\n
Only SourceTV Master can record demos instantly.\n
+Only one filename is allowed; got '%s' and '%s'\n
Only one instance of the game can be running at one time.
Opaque Handle
Open a VConsole subtool.
@@ -6207,10 +6142,6 @@ Particle Object
ParticleSystemMgr003
PatchVersion
PathRemoveFileSpecA
-Path_AddToTail failed for read only CFieldPath
-Path_AddToTail failed, depth already == DEFAULT_MAX_PATH_DEPTH(%d)
-Path_PopLast failed for read only CFieldPath
-Path_SetCount failed, depth already == DEFAULT_MAX_PATH_DEPTH(%d)
Pause
Pause the cursor at this point.
Paused: %s
@@ -6352,7 +6283,7 @@ Platform the engine is running on.
Play a broadcast
Play a demo and report performance info.
Play a demo, report performance info, and then exit
-Play a recorded demo file (.dem ).
+Play a recorded demo file (.dem ). Options: start=<tick> end=<tick> timescale=<float> (run with no arguments for details).
Play demos in demo sequence.
Play for N ticks (default=1) and then pause.
Play next demo in sequence.
@@ -6426,8 +6357,6 @@ Proceed Elegantly.
Proceed Immediately.
ProcesPacketEntitiesWorkItems_Combined
ProcesPacketEntitiesWorkItems_Combined_Sort
-ProcesPacketEntitiesWorkItems_Decode
-ProcesPacketEntitiesWorkItems_ReadFieldList
Process in-process voice chat microphone audio with the WebRTC audio processing module (requires voice_in_process).
Process priority: %s, main thread priority: %s\n
Process32First
@@ -6437,6 +6366,7 @@ ProcessBC6HResults
ProcessBaselineAck: invalid packed entity bit (%i)\n
ProcessClassInfo: can't allocate %d C_ServerClassInfos.\n
ProcessClassInfo: invalid class index (%d).\n
+ProcessCreateStringTable(%s): failed to decompress string table data\n\n
ProcessReadPacketEntitiesWorkItems
ProcessServerInfo failed
ProcessServerInfo( %s : %s : #%d ) - client requesting connection abort!\n
@@ -6857,7 +6787,7 @@ SV: Setting game load failed flag.\n
SV: Spawn Server: %s: [%s]\n
SV: Spawn Server: %s\n
SV: SpawnServer WriteClassInfosAndSerializesToBuffer %s.\n
-SV: Unable to parse C2S_CONNECT_Message_t payload from '%s'\n
+SV: Unable to parse C2S_CONNECT_Message_t payload from '%s': %s\n
SV: VAC secure mode disabled.\n
SV: VAC secure mode is activated.\n
SV: WriteBaselines: %20.20s wrote %6d bytes [%36.36s], headroom %6d bytes\n
@@ -7110,6 +7040,8 @@ Sets the server to shutdown when all games have completed
Setting %s=%d\n
Setting cl_ticks_warning_level=0 due to %s=false\n
Setting main thread priority to %d\n
+Setting vprof_lite_auto 0, quitting after playback\n
+Setting vprof_lite_auto 0: the game will no longer start, dump or stop the vprof lite profiler on its own\n
Settings
Shavian
Shooting
@@ -7167,7 +7099,7 @@ Skipping unknown demo command %d\n
Skips the current demo playback to the marked tick
Skips to a tick in demo.
Skips to location in demo.
-Slamming client tick to server tick. abs( server tick %d - client tick %d = %d ) > ( cl_clockdrift_max_ticks %d + sim ticks %d = %d )\n
+Slamming client tick to server tick. abs( server tick %d - client tick %d = %d ) > ( cl_clockdrift_max_ticks %.1f + sim ticks %d + jitter margin %.1f = %d )\n
Slams viewport size to a specified value.
Sleep
SleepAfterMainLoop
@@ -7193,7 +7125,6 @@ SoundOpSystemEdit001
SoundService_001
SoundSystem/SteamAudioEnabled
SoundSystem001
-Sounds
Source2 - Warning
Source2 Benchmark Results\n\n
Source2 Client
@@ -7256,7 +7187,6 @@ Spawn
Spawn Group %d creation sequence %d create tick %d\n
Spawn Group %d manifest update (create tick %d)\n
Spawn Group %d unload at tick %d ignored\n
-Spawn Groups
Spawn group %s precache manifest overflow: this spawn group will not precache correctly on networked clients.\n
SpawnGroup
Specified too high an adapter number on the command line (%d/%d)!\n
@@ -7374,8 +7304,6 @@ StrReplaceChar
StreamPutOverflow
StretchBlt
String
-String Command
-String Table
String field
String literals cannot cross line boundaries.
String tables user data bits restricted to %i bits, requested %i is too large\n
@@ -7584,11 +7512,12 @@ Tried to register an input value %s with the same name as a concommand/convar!\n
Tried to register the same input value %s twice!\n
Tried to write clouded file, but we don't have Steam interfaces? Probably bug with order of initialization, or trying to run without steam\n
True
+TrueViewLookAhead activating aggressive slowdown. [%.1f %.1f] -> [%.1f %.1f] [pred_offset buffer_ticks]\n
+TrueViewLookAhead activating tick gobble. [%.1f %.1f] -> [%.1f %.1f] [pred_offset buffer_ticks]\n
TrueViewLookAhead: aggressive fixup deactivated, desired margin reached\n
TrueViewLookAhead: aggressive slowdown deactivated, desired margin reached\n
-TrueViewLookAhead: aggressive slowdown stopped; max number of adjustments reached\n
-TrueViewLookAhead: changed %d -> %d. Activating tick gobble to get in sync\n
-TrueViewLookAhead: changed %d cmds, %.1f ticks -> %d cmds %.1f ticks. Activating aggressive local sim slowdown until we get back sync\n
+TrueViewLookAhead: aggressive slowdown engaged to gain %.1fms of margin (up to %.1fms)\n
+TrueViewLookAhead: aggressive slowdown stopped; desired margin not reached in time!\n
TrueViewLookAhead: gobble canceled, desired margin reached\n
TrueViewLookAhead: gobbling. Current tick is %d, we have received a message for tick %d. Processing all messages up to %d now\n
TrueViewLookAhead: no excess ticks from server to gobble\n
@@ -7691,6 +7620,7 @@ Unbind a key.
Unbind all keys.
Under memory limit. Limit is %llu but current usage is %llu.\n
Unepxected spawn group %d, %d was expected.\n
+Unexpected argument '%s'; options are given as %s=<0|1>\n
Unexpected authentication protocol %i!
Unexpected character
Unexpected character '%c' (0x%02X)
@@ -7719,8 +7649,10 @@ Unknown loop type encountered in loop "%s"!\n
Unknown message in DemoSpawnGroups %d.\n
Unknown message in SpawnGroups %d.\n
Unknown net message %d!\n
+Unknown option '%s'; the only option is %s=<0|1>\n
Unknown option '%s'\n
Unknown property %s
+Unknown spawn group message in GetSpawnGroupHandleFromMessage!\n
Unknown variable %s
Unknown variety of crash. You have now failed to crash. I hope you're happy.\n
Unknown vtune option.\n
@@ -7796,7 +7728,6 @@ Use this to tell Steam to relaunch the app right after existing
UsecCmdLatency
Used by the client to inform the server of their desired queue length. Derived from cl_tickpacket_recvmargin_desired and cl_tickpacket_desired_queuelength
User %s is %s member of clan %s\n
-User Messages
User command %d recv on server %s, tick %d, margin %.1fms. (%s) frame time=%.1fms, LastCommandRecv=%d, LastCommandExecuted=%d\n
UserDataFixedSize exceeds size %d needs room for %d bits\n
UserSettingsFileEx
@@ -7979,7 +7910,6 @@ VisBuilder_001
VisSystemDebug
Visibility %s.\n
Visual C++ CRT: Not enough memory to complete call to strerror.
-Voice
Voice/WebRTC: ERL %.1f dB ERLE %.1f dB delay %d ms voice %d frames capture %u render %u\n
Voice: WebRTC audio processing could not be initialized; microphone audio will not be echo cancelled.\n
Voice: WebRTC audio processing enabled (aec %d, ns %d level %d, agc %d, hpf %d).\n
@@ -8194,6 +8124,7 @@ Wednesday
When > 0, sets the mode whereas players see delayed replay, and are segregated into a domain of chat and voice separate from the alive players
When VConsole is in the foreground, don't trigger engine_no_focus_sleep behavior
When VConsole is in the foreground, force all engine & tools to render
+When an entity is decoded from a baseline plus a wire delta, merge the two and decode once (true), or decode the baseline and then the delta as two passes (false, the old behaviour, which can invoke change callbacks with baseline values for an entity that already exists).
When connecting to local listen server (for example, using the 'map' command), default to loopback=false, which connects to '127.0.0.1' instead of 'loopback'. This uses the network stack so that fake lag/loss can be simulated.
When enabled, changes in tv_enable convars cause immediate startup or shutdown of hltv server
When enabled, game server will quit immediately via syscall instead of running host states shutdown sequence
@@ -8283,9 +8214,9 @@ Writing configuration for slot %d\n
Writing memory stats to %s\n
Writing memory stats to file memstats.txt\n
Writing perf stats...
-Writing vprof lite report to %s\n
Wrong JPEG library version: library is %d, caller expects %d
Wrote vis errors to %s\n
+Wrote vprof lite report to %s\n
Wrote_Screenshot
X-Origin-Auth
X-Origin-Auth header of the broadcast POSTs
@@ -8352,10 +8283,10 @@ Zpm"U
[mirror]
[packed = true] can only be specified for repeated primitive fields.
[player %d]: Key "%s" is not bound.\n
-[removed]
[s%5d c%5d t%6.3f] ApplyClockDrift correcting %d -> %d\n
[s%5d c%5d t%6.3f] ClientAdvanceTick %d -> %d. %d of %d this frame\n
[s%5d c%5d t%6.3f] ClientFrameSimulate %.3f\n
+[s%5d c%5d t%6.3f] ClientPollNetworking client tick += %d -> %d\n
[s%5d c%5d t%6.3f] ClientPollNetworking\n
[s%5d c%5d t%6.3f] ClientProcessNetworking post ProcessSocketMessages\n
[s%5d c%5d t%6.3f] ProcessPacketEntities start tick %d\n
@@ -8790,7 +8721,7 @@ cl_clock_recvmargin_timeconstant_slowdown
cl_clock_recvmargin_timeconstant_speedup
cl_clock_recvmargin_window
cl_clockdbg
-cl_clockdrift_max_ticks
+cl_clockdrift_max_secs
cl_connectionretrytime_p2p
cl_cq_min_queue
cl_debug_build_recvmargin_min
@@ -8810,6 +8741,7 @@ cl_language
cl_log_tick
cl_log_tick_skips
cl_net_printsummary
+cl_packetentities_merge_before_decode
cl_parallel_readpacketentities
cl_parallel_readpacketentities_threshold
cl_playback_screenshots
@@ -9000,6 +8932,7 @@ demo_pauseatservertick
demo_quitafterplayback
demo_recordcommands
demo_resume
+demo_skip
demo_step_tick
demo_timescale
demo_togglepause
@@ -9052,6 +8985,7 @@ dxlevel,
e+000
e.g.: startmovie testmovie jpg wav jpeg_qality 75 framerate 30\n
e.g.: playdemo replays/foo jpg wav framerate 30\n
+e.g.: playdemo replays/foo start=2m end=+120s timescale=4\n
echo
echoln
edem
@@ -9983,6 +9917,8 @@ playcast: Packet tick %d size %u\n
playdemo
playdemo %s\n
playdemo <demoname> [\n
+playdemo: option '%s' needs a value, e.g. %s=2m\n
+playdemo: unknown option '%s'. Options are start=<tick>, end=<tick>, timescale=<float>.\n
player
player0_using_joystick
player_network_lag_avg
@@ -10360,6 +10296,8 @@ stackstats_dump usage:\n\tstackstats_dump %s ["filename"]\n
stackstats_dump usage:\n\tstackstats_dump struct ["filename"]. There's a single instance registered, auto-picking: %s\n
standalone_vad_->AddAudio(resampled_ptr, length) == 0
standalone_vad_->GetActivity(&chunkwise_voice_probabilities_[0], chunkwise_voice_probabilities_.size()) >= 0
+start
+start=<tick> and end=<tick> play a range (tick syntax as for timedemo_start/timedemo_end) and write timedemo_profile.csv at the end\n
startdemos
startdemos: %i demo(s) in loop\n
startmovie
@@ -10489,7 +10427,6 @@ sv_rcon_log
sv_rcon_maxfailures
sv_rcon_minfailures
sv_rcon_minfailuretime
-sv_recvbuf_messages
sv_region
sv_replay_group_id
sv_replaysdir
@@ -10576,6 +10513,8 @@ timedemo_start
timedemoquit
timeout
times_to_fire
+timescale
+timescale=<float> sets the replay speed, as demo_timescale does\n
title_pw
toggle
toggle: Cannot parse value "%s" as boolean!\n
@@ -10862,13 +10801,24 @@ vpcf
vphysics2
vpks
vpks/
+vprof lite profiler running%s\n
+vprof lite profiler stopped%s\n
+vprof lite profiler stopped, data cleared\n
vprof_all_threads
vprof_counters
vprof_counters_show_minmax
vprof_dump_counters
vprof_generate_report
vprof_generate_report_budget
vprof_generate_report_hierarchy
+vprof_lite.csv
+vprof_lite_auto
+vprof_lite_dump
+vprof_lite_dump [filename] [stop=1]\nWrite the vprof lite budget group statistics as CSV, then stop the profiler and clear its data.\nstop=0 leaves the profiler running with its data. The default filename is vprof_lite.csv in the mod directory;\nan absolute path is used as given. Sets vprof_lite_auto 0, so the game will not stop or dump the profiler on its own.
+vprof_lite_start
+vprof_lite_start [clear=1]\nStart the vprof lite profiler, clearing any data it holds. clear=0 keeps the data and continues adding to it.\nSets vprof_lite_auto 0, so the game will not stop or dump the profiler on its own.
+vprof_lite_stop
+vprof_lite_stop [clear=1]\nStop the vprof lite profiler and clear its data. clear=0 keeps the data, for engine_frametime_print_report or vprof_lite_dump.\nSets vprof_lite_auto 0, so the game will not start the profiler on its own.
vprof_loadhitstore_scale
vprof_off
vprof_on
game/bin/win64/gfsdk_aftermath_lib.x64_strings.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -2357,6 +2357,7 @@ Error_OutOfMemory
Escape sequence did not encode a valid character.
Escape sequence terminated prematurely.
Escape sequence was neither a valid property nor a valid character class name.
+Events
Evicted
EvictedToDisk
Exceeded nested brace limit.
game/bin/win64/materialsystem2_strings.txt
modified • +8 / -8 • changes: 16
Show patch
@@ -260,9 +260,9 @@ CMaterial2::GetVertexShaderInputSignature(780): Error! Material "%s" doesn't hav
CMaterial2::GetVertexShaderInputSignature(812): Error! Material "%s" doesn't have a CVsInputSignatureVector!\n
CMaterial2::GetVertexShaderInputSignature(830): Error! Material "%s" has invalid signature index %d!\n
CMaterial2::LoadShadersAndSetupModes(1662): Error creating shader %s for material %s!\n
-CMaterialMode::ComputeWorkItemsToSetupStaticCombosForMode(2956): Failed call to FindOrCreateStaticComboDataInCache()!\n
-CMaterialMode::FindOrLoadVfx(2475): DxSupportLevel %d not supported!\n
-CMaterialSystem2::DynamicShaderCompile_UnloadAllMaterials(1067): ERROR!!! Shaders not freed before shader reload! (See spew above)\n\n
+CMaterialMode::ComputeWorkItemsToSetupStaticCombosForMode(2958): Failed call to FindOrCreateStaticComboDataInCache()!\n
+CMaterialMode::FindOrLoadVfx(2477): DxSupportLevel %d not supported!\n
+CMaterialSystem2::DynamicShaderCompile_UnloadAllMaterials(1069): ERROR!!! Shaders not freed before shader reload! (See spew above)\n\n
CMaterialSystem2::FrameUpdate
CMaterialSystem2::GetErrorMaterial(505): GetErrorMaterial() called when m_pMaterialTypeManager == NULL!\n
CMaterialSystem2::Init(153): ERROR! Empty shader mode string found! Use "Default" instead!\n
@@ -427,9 +427,9 @@ MakeOrthonormalForward
MakeOrthonormalRight
Malgun Gothic
Marlett
-MatPrintShaderInfo(3492): Error reading index!\n
-MatPrintShaders(3209): pVfx == NULL!\n
-MatPrintShaders(3258): pVfx == NULL!\n
+MatPrintShaderInfo(3494): Error reading index!\n
+MatPrintShaders(3211): pVfx == NULL!\n
+MatPrintShaders(3260): pVfx == NULL!\n
MatUtilsRenderMesh
MatUtilsRenderOutlinedRect
MatUtilsRenderPrimitives
@@ -713,8 +713,8 @@ WARNING: Invalid resource version (%d): %s\n
\nCMaterial2::LoadShadersAndSetupModes(1748): Error creating shader %s for material %s!\n
\nCMaterial2::LoadShadersAndSetupModes(1753): Error creating shader %s and cannot load error.vfx instead!\n
\nCMaterial2::LoadShadersAndSetupModes(1763): Error creating static combos for shader %s and error.vfx instead!\n
-\nCMaterialMode::ComputeRenderablePassesForContextInternal(3373): All bad! The error material failed in dynamic shader compile!\n
-\nCMaterialMode::CreateCommandBuffer(4281): Find a graphics programmer! Trying to bind a "%s" shader that doesn't exist! for %s\n
+\nCMaterialMode::ComputeRenderablePassesForContextInternal(3375): All bad! The error material failed in dynamic shader compile!\n
+\nCMaterialMode::CreateCommandBuffer(4283): Find a graphics programmer! Trying to bind a "%s" shader that doesn't exist! for %s\n
\nInitDynamicShaderCompileDLL(119): ERROR! Can't load vfx_dx dll, dynamic shader compile unavailable!\n
\nMS,\nVS_MS_RTX
\nPS_RENDER_STATE
game/bin/win64/networksystem_strings.txt
modified • +67 / -44 • changes: 111
Show patch
@@ -6,7 +6,7 @@
Percentage. . : %9s%9s\n
% 3d % 8d [%8.3f %%]\n
%i: culled %-20s: %s -> %s (%s)\n
- %s has flag %s\n
+ %s%2d: %d\n
%s: %dms via %s (front=%dms, back=%dms)%s\n
%s: %dms via direct route\n
%s: %dms\n
@@ -35,13 +35,13 @@
polymorphic\n
ptr to %s [%u]
serializer(%s)
-!m_NetworkChangeTagCallback.IsEmpty()
+!s_NetworkChangeTagCallback.IsEmpty()
%%%d.%ds
%%s
%-10s % 5d no fastpath because field %s %s changed the array size from %d to %d\n
%-10s % 5d no fastpath because field %s base depth is too large (pointer metadata change?)\n
%-10s % 5d no fastpath because field %s not resolvable\n
-%-10s %d %s: %s at offset %d, 0x%p array %s struct %s: index %d array size %d in %s\n
+%-10s %d %s: %s at offset %d, 0x%p array of structs: index %d array size %d in %s\n
%-5d %-20s : [%-5d -> %-5d] %-5s bits: %-32s %-80s : '%s' %s
%-64.64s has %d CFlattendSerializer permutations\n
%-75s %-75s offset %10.10s %9.9s %s
@@ -53,6 +53,8 @@
%20.20s %s is variant %d/%d of %s\n
%20.20s omit %d types for %s [convar net_max_polymorphic_spew=%d]\n
%20.20s omit %s variants, already spewed\n
+%5d%7d%7d%7d %s\n
+%5s%7s%7s%7s %s\n
%60.60s %15.15s %24.24s %10.10s\n
%60.60s %15.15s %24s %10d
%8.3f: %s: ParseMessagesDemo UNRELIABLE %d bytes\n
@@ -65,6 +67,7 @@
%d [%s,%s] %s
%d [0x%x]
%d bits
+%d bytes is too big.
%d of %d empty (%.3f %%)\n
%d structs not using DECLARE_NETWORKVAR_STRUCT_NOT_IN_NETWORK_UTLVECTOR_EMBEDDED, consider porting fields to use CNetworkVars!\n
%d total.\n
@@ -88,6 +91,7 @@
%s Gathering field offsets in %s\n
%s SendMessages %s failed with EResult %d\n
%s [%d fields]\n
+%s [%d]
%s [%u]
%s ambiguous, field exists in serializer '%s' field %d\n
%s does not support allocation from networking\n
@@ -134,7 +138,7 @@
%s: shrinking removes delegate [0x%p]\n
%s: timing out, last received %f [%.2f seconds ago]\n
%s: unable to find serializer named %s\n
-%s::%s has more than one MNetworkChangeCallback that requires passing network value into handler, this is unsupported\n
+%s::%s encoder mismatch, local '%s' vs. remote '%s', using local\n
%s::%s was in the original serializer at offset %u but that offset isn't in the ignore list!!!\n
%s::%s:%u (%s ) already encountered at %s::%s:%u (%s)
%s:Inbound net frame %d dropped\n
@@ -212,24 +216,20 @@
.?AV?$_Node_str@D@std@@
.?AV?$collate@D@std@@
.?AVCCLCMsg_RconServerDetails_t@@
-.?AVCDecodeSerializerStack@@
-.?AVCDeltaCalculator@@
.?AVCDeltaFieldPathTracer@@
.?AVCEncodeSerializerStack@@
.?AVCFieldShadowSpewCollector@@
.?AVCFlattenedSerializerReadFieldListListener@@
.?AVCFlattenedSerializers@@
+.?AVCHiddenFieldValuePrinter@@
.?AVCNETMsg_SplitScreenUser_t@@
.?AVCNetChan@@
.?AVCNetWhyFieldExcludedFunctor@@
.?AVCNetworkEncodingStats@@
.?AVCNetworkFieldChangedEventQueue@@
.?AVCNetworkFieldSerializerAllocator@@
.?AVCNetworkMessages@@
-.?AVCNetworkSerializerPB@@
.?AVCNetworkSystem@@
-.?AVCProtobufBinding@?$CNetMessagePB@$02VCNETMsg_SplitScreenUser@@$0L@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0A@VCNETMsg_NOP@@$0L@$00$0A@@@
.?AVCSchemaRegistration_networksystem@@
.?AVCSerializedEntities@@
.?AVCSerializerStack@@
@@ -241,12 +241,10 @@
.?AVINetworkEncodingStats@@
.?AVINetworkFieldChangedEventQueue@@
.?AVINetworkFieldSerializerAllocator@@
-.?AVINetworkMessageInternal@@
.?AVINetworkMessages@@
.?AVINetworkSystem@@
.?AVINode@CFieldPathHuffmanEncoder@@
.?AVISerializedEntities@@
-.?AVISerializedEntityErrorSpewHook@@
.?AVInternalNode@CFieldPathHuffmanEncoder@@
.?AVLeafNode@CFieldPathHuffmanEncoder@@
.?AVNetMessageConnectionClosed_t@@
@@ -271,7 +269,6 @@
0 bit issue, spot 2
0 bit issue, spot 3
0 bit issue, spot 4
-7;eZ\r
::Storage_t
Accepting Steam Net connection %s\n
AckSeqNum
@@ -289,6 +286,8 @@ Average Backing Raw Paths : %8.3f\n
Average Data Bytes : %8.3f bytes\n
Average Memory Usage Per Entity : %8.3f bytes\n
Average Number of Field Paths : %8.3f\n
+AvgSz
+BUG! Failed to read from buffer after checking size?
BetaUniverse
BufType
Buffer overflow
@@ -301,16 +300,18 @@ BuildMergedSerializedEntity: problem writing %s: %d bits [%d to %d] is < 1 bit
BuildOutputString: change %s to %d\n
BytesWire
C:\buildworker\csgo_rel_win64\build\_build_\networksystem\_vpc_networksystem\default\win64\_msvc_\Retail\networksystem.pdb
+C:\buildworker\csgo_rel_win64\build\src\common\protobuf_helpers.cpp
C:\buildworker\csgo_rel_win64\build\src\networksystem\flattenedserializer.cpp
+C:\buildworker\csgo_rel_win64\build\src\networksystem\flattenedserializer_encode.cpp
+C:\buildworker\csgo_rel_win64\build\src\networksystem\flattenedserializer_setup_gamecode.cpp
C:\buildworker\csgo_rel_win64\build\src\networksystem\flattenedserializers.cpp
C:\buildworker\csgo_rel_win64\build\src\networksystem\netchan.cpp
C:\buildworker\csgo_rel_win64\build\src\networksystem\networkmessages.cpp
C:\buildworker\csgo_rel_win64\build\src\networksystem\networkserializer.cpp
+C:\buildworker\csgo_rel_win64\build\src\networksystem\networkserializerregistry.cpp
C:\buildworker\csgo_rel_win64\build\src\networksystem\networksystem.cpp
C:\buildworker\csgo_rel_win64\build\src\public\networksystem\serializedentity.h
CBuildNetworkSerializerHierarchyOrder::ComputeDepth
-CDeltaCalculator::ErrorMsg %s %d\n
-CDeltaCalculator::ErrorMsg: %s\n
CDeltaCalculator::FieldCalcDelta fromBits
CDeltaCalculator::FieldCalcDelta toBits
CEntitySystem::BuildEntityNetworking (%s build of %s) took %.3f msecs for %d out of %d classes\n
@@ -321,7 +322,7 @@ CFlattenedSerializer::ApplyOverrides_R
CFlattenedSerializer::BuildDeltaProperties using %d bytes for encoding %d/%s\n
CFlattenedSerializer::BuildHierarchy_R
CFlattenedSerializer::BuildOverrideField: Problem initializing replacement field %s::%s\n
-CFlattenedSerializer::Decode
+CFlattenedSerializer::DecodeSerializedEntity
CFlattenedSerializer::DumpSerializedEntityToConsole
CFlattenedSerializer::Encode failure for entity %d\n
CFlattenedSerializer::Encode overflow failure for entity %d max size is %d bytes\n
@@ -353,9 +354,8 @@ CMergedEntityOffsetBuilder::Expecting at least one bit in offset
CNetChan::BUF_RELIABLE
CNetChan::BUF_UNRELIABLE
CNetChan::BUF_VOICE
-CNetChan::ParseMessages
CNetChan::ProcessMessages
-CNetChan::SendNetMessage: SerializeAbstract for message %s failed!\n
+CNetChan::SendNetMessage: Failed to serialize %s\n
CNetChan::SendNetMessage: Trying to send message %s, which is an invalid category for this channel!\n
CNetChan::SendNetMessage: Unable to send message %s, buffer is full!\n
CNetChan::Setup for %s\n
@@ -364,27 +364,14 @@ CNetSerializerStrongHandle::Serialize
CNetSerializerStrongHandle::Unserialize
CNetworkFieldChangedEventQueue::QueueChange: ran out of scratch data space!!!\n
CNetworkFieldChangedEventQueue::QueueReplayCompatFieldChange
-CNetworkMessages::AllocateAndCopyConstructNetMessageAbstract unable to allocate unknown message type!\n
-CNetworkMessages::ComputeOrderForPriority
CNetworkMessages::ConfirmAllMessageHandlersInstalled
-CNetworkMessages::DeallocateUnserializedMessage unable to deallocate unknown message type!\n
CNetworkMessages::FindOrCreateGroupId
CNetworkMessages::FindOrCreateGroupId: Too many network groups!\n
-CNetworkMessages::FindOrCreateNetMessage
CNetworkMessages::FindOrCreateNetMessage: It is illegal to register new net messages after serialization!\n
-CNetworkMessages::FindOrCreateNetMessage: Message %s is expected to have already been registered!\n
-CNetworkMessages::InitNetworkChangeTag
-CNetworkMessages::InitNetworkChangeTag - missing m_NetworkChangeTagCallback, should have been installed by CEntitySystem::Init call to g_pNetworkMessages->RegisterNetworkChangeTagCallback!
-CNetworkMessages::RegisterFieldChangeCallbackPriority
-CNetworkMessages::RegisterNetworkArrayFieldSerializer
-CNetworkMessages::RegisterNetworkFieldChangeCallbackInternal
-CNetworkMessages::RegisterNetworkFieldSerializer
CNetworkMessages::Serialize attempted to serialize a non-serializeable message [%s]!\n
CNetworkSerializer: Unable to find network encoder named %s!\n
CNetworkSerializer::AssignSharedChangeCallbackIndex
CNetworkSerializer::DetermineFieldSerializerGroup
-CNetworkSystem::BufferToBufferDecompress with improperly sized dest buffer (%u in, %llu needed)\n
-CNetworkSystem::BufferToBufferDecompress with improperly sized dest buffer (%u in, %u needed)\n
CNetworkSystem::CleanupDebugOutputFunction()\n
CNetworkSystem::CloseAllSockets()\n
CNetworkSystem::GetPacket
@@ -427,16 +414,17 @@ CUtlLeanVectorBase<struct UtlLinkedListElem_t<struct CNetworkFieldChangedEventQu
CUtlLeanVectorBase<struct UtlLinkedListElem_t<struct CNetworkFieldPointerAllocationQueueInfo_t,unsigned int>,unsigned int,class CMemAllocAllocator>::EnsureCapacity
CUtlLeanVectorBase<struct UtlRBTreeNode_t<int,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity
CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CNetChan::SplitPlayer_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity
-CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<int,class INetworkMessageInternal *,class CDefLess<int>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity
CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<int,int,class CDefLess<int>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity
+CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct CUtlOrderedMapBase<int,struct NetMessageInfo_t *,class CDefLess<int>,unsigned short>::Node_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity
CUtlLeanVectorBase<struct UtlRBTreeNode_t<struct OverrideWork_t,unsigned short>,unsigned short,class CMemAllocAllocator>::EnsureCapacity
CUtlLeanVectorImpl<class CUtlLeanVectorBase<struct CUtlHashMap<class CFieldPath,class CDTIField,class CDefEquals<class CFieldPath>,struct DefaultHashFunctor<class CFieldPath>,int>::HashBucket_t,int,class CMemAllocAllocator>,struct CUtlHashMap<class CFieldPath,class CDTIField,class CDefEquals<class CFieldPath>,struct DefaultHashFunctor<class CFieldPath>,int>::HashBucket_t,int>::AddMultipleToTail
CUtlLeanVectorImpl<class CUtlLeanVectorBase<struct CUtlHashMap<class CSerializerHandle_t<class CFlattenedSerializer>,class CDTISerializerInfo *,class CDefEquals<class CSerializerHandle_t<class CFlattenedSerializer> >,struct DefaultHashFunctor<class CSerializerHandle_t<class CFlattenedSerializer> >,int>::HashBucket_t,int,class CMemAllocAllocator>,struct CUtlHashMap<class CSerializerHandle_t<class CFlattenedSerializer>,class CDTISerializerInfo *,class CDefEquals<class CSerializerHandle_t<class CFlattenedSerializer> >,struct DefaultHashFunctor<class CSerializerHandle_t<class CFlattenedSerializer> >,int>::HashBucket_t,int>::AddMultipleToTail
CUtlLeanVectorImpl<class CUtlLeanVectorBase<struct CUtlHashMap<unsigned int,int,class CDefEquals<unsigned int>,struct DefaultHashFunctor<unsigned int>,int>::HashBucket_t,int,class CMemAllocAllocator>,struct CUtlHashMap<unsigned int,int,class CDefEquals<unsigned int>,struct DefaultHashFunctor<unsigned int>,int>::HashBucket_t,int>::AddMultipleToTail
+CUtlLeanVectorImpl<class CUtlLeanVectorBase<struct ChangeCallback_t,int,class CMemAllocAllocator>,struct ChangeCallback_t,int>::InsertBeforeGetPtr
CUtlLeanVectorImpl<class CUtlLeanVectorFixedGrowableBase<struct CFieldPath::Path_t,6,int,class CMemAllocAllocator>,struct CFieldPath::Path_t,int>::AddMultipleToTail
CUtlLeanVectorImpl<class CUtlLeanVectorFixedGrowableBase<unsigned int,3,int,class CMemAllocAllocator>,unsigned int,int>::AddMultipleToTail
-CUtlSortVector<int,class CNetworkMessages::CPriorityLess,class CUtlVector<int,int,class CUtlVectorMemory_Growable<int,int,0> > >::Find
-CUtlSortVector<int,class CNetworkMessages::CPriorityLess,class CUtlVector<int,int,class CUtlVectorMemory_Growable<int,int,0> > >::InsertIfNotFound
+CUtlSortVector<int,class CPriorityLess,class CUtlVector<int,int,class CUtlVectorMemory_Growable<int,int,0> > >::Find
+CUtlSortVector<int,class CPriorityLess,class CUtlVector<int,int,class CUtlVectorMemory_Growable<int,int,0> > >::InsertIfNotFound
CacheableConnectionExpired
CalcDelta
Can't ConnectLoopback between socket %d and %d, not enough slots\n
@@ -456,6 +444,7 @@ Cannot use priority equal to NETWORK_FIELD_CHANGE_DEFAULT_PRIORITY!\n
Capture active, %s samples written\nnet_captureculldata stop to stop the capture\n
Checking for missing CNetworkVar* declarations\n
Class,Field,Field Path,Decode Count,Total Bits,Avg Bits,Total Index Bits,Avg Index Bits,Priority,=SUM(E:E),Full Name,Notes\n
+Client Messages
CloseSocket
CloseSteamNetConnection handle #%u (userdata %d)%s\n
Closing '%s' P2P listen socket\n
@@ -472,6 +461,8 @@ Couldn't resolve offset %u in %s at path (%d = '%s')\n
CreateHostedDedicatedServerListenSocket for socket '%s' failed /+/ port %u vport %d\n
CreateReplayCompatSerializerFromMeta creating fake serializer for %s\n
Created poll group for socket '%s'\n
+DECODE FAILED
+DISCARD array size
DTI %s\n
DTI reset\n
DTI: can't Flush(), no data to write.\n
@@ -491,7 +482,7 @@ Encountered 2 fields "%s" and "%s" in struct "%s" using the same change callback
Encountered message with an invalid network category! [net message %s]
End of stream
Error installing message handlers into a net channel: missing handlers in channel %s!\n
-Error parsing message type %d (%s)
+Error parsing message type %d (%s): %s
Error processing network message %s! Channel is closing!\n
Error! Failed to WSAStartup! err = %d.\n
Error: Components count + networkable data type must be the same for all instances of network field serializer (%s)!\n
@@ -502,10 +493,10 @@ EstablishCacheableSharedNetConnection(%s) failed\n
EstablishNewSteamNetConnection ConnectByIPv4Address(%s) failed\n
EstablishNewSteamNetConnection ConnectP2P(%s) failed\n
Established cacheable shared Steam Net Connection to '%s'\n
+Events
Exceeded max number proxies in CFlattenedSerializer::BuildHierarchy()
Executing queued command: '%s'\n
Expected AVG or PROFILE argument\n
-Expecting NetMessageInfo_t::m_pProtobufBinding to be non-NULL
Extra connection [%s]:\n
FAKE array size
FAKE pointer
@@ -515,6 +506,7 @@ Failed to create poll group for socket '%s'?\n
Failed to install message handler for message %s in channel %s!\n
Failed to open P2P network socket '%s'\n
Failed to open UDP network socket '%s'\n
+Failed to parse %s. %s\n
Failed to set SteamNetworkingSockets option '%s'\n
Failed to start listening for SDR on port %d. Waiting and will retry\n
FakeJitter
@@ -530,10 +522,11 @@ Field %s::%s specified an unknown field change callback %s!\n
Field names match, but types do not to match %s::%s local type is '%s' vs. remote type is '%s'\n
FieldPathEncodeFinish
FlattenedSerializerField_t::FindPolymorphicFieldInfoByCodegenBinding
+Frame too large (%d bytes uncompressed), limit is %s=%d
+Game Engine
GatherAllFieldOffsets_R: local offset of %s::%s %u is too large (%u max)\n
GatherSendProxyResults
GetBitRange( %d -> %d ) end is before or same as start\n
-GetPathData failed for read only CFieldPath
Got ISteamNetworkingSockets user interfaces from standalone lib\n
Got ISteamNetworkingSockets user interfaces from steam client\n
Got message on poll group for socket %s, but cannot find connection in table?
@@ -544,6 +537,8 @@ HParticleSystemDefinitionStrong
HPostProcessingStrong
HRenderTextureStrong
HVDataResourceStrong
+History: %s\n
+Hltv Replay
IND)ind)"
INetChannel::SetCategories: Network category wasn't registered!\n
INetworkSystem::RegisterNetworkCategory: Attempted to register category %u twice (debug name: %s and %s)\n
@@ -563,6 +558,7 @@ JitterMS
Kind
LastSeqNum
Latency. . . . . . . . : %7dms%7dms%7dms net_fakelag\n
+Lead byte(s) encode invalid size %d. (%d bytes remaining)
Leaked channel %s remote %s\n
Loss . . . . . . . . . : %8.2f%%%8.2f%%%9s net_fakeloss\n
MNetworkBitCount
@@ -580,10 +576,13 @@ MNetworkSerializer
MNetworkUserGroup
MNetworkVarTypeOverride is referring to an unknown class name %s in class %s\n
MakeSerializersMatchByMeta failed for %s\n
+Max struct change callbacks queued at one level, per entity decode (inline capacity %d):\n
+MaxSz
Measured RTT to %d SDR points of presence.\n
Merge
Message of type (%s) %d size %d exceeded maximum message size %d; allowing as per %s=%d\n
Message of type (%s) %d size %d exceeded maximum message size %d; rejecting.\n
+MinSz
Multiple steam net connections from %s\n
NETWORK_FIELD_CHANGED_ARRAY_NO_VALUE
NETWORK_FIELD_CHANGED_ARRAY_WITH_VALUE
@@ -600,7 +599,7 @@ NETWORK_FIELD_HIGHEST_PRIORITY
NETWORK_FIELD_LOWEST_PRIORITY
Net graph %s\n
Net status for host %s:\n
-NetChan %s ProcessMessages has exhausted its CPU time warning budget. %dms to process %d messages this call. (Current message type: '%s')\n
+NetChan %s ProcessMessages excessive CPU usage. %dms to process %d messages this call. (Current message type: '%s', drop budget remaining: %.1fms)\n
NetChanFlowIncomingAck
NetChanRecv
NetChanRecvMisdelivery
@@ -612,14 +611,23 @@ NetChanTransmitReliable
NetChanTransmitUnreliable
NetChannel '%s':\n
NetMessage '%s' still using auto-assigned, has to generate id from name CUtlStringToken hashcode = %d\n
+NetSerializers_ComputeOrderForPriority
+NetSerializers_InitNetworkChangeTag
+NetSerializers_InitNetworkChangeTag - missing s_NetworkChangeTagCallback, should have been installed by CEntitySystem::Init call to g_pNetworkMessages->RegisterNetworkChangeTagCallback!
+NetSerializers_RegisterFieldChangeCallbackPriority
+NetSerializers_RegisterNetworkArrayFieldSerializer
+NetSerializers_RegisterNetworkFieldChangeCallback
+NetSerializers_RegisterNetworkFieldSerializer
+Net_BufferToBufferDecompress: decompressed size %llu exceeds NET_MAX_PAYLOAD\n
+Net_BufferToBufferDecompress: malformed compressed data\n
+Net_BufferToBufferDecompress: uncompressed size %llu exceeds NET_MAX_PAYLOAD\n
Netchan '%s' closed unexpectedly: %s\n
Netchan [%s] already associated with hconn #%u, but now we are getting messages on new hconn #%u using the same 'from' address\n
Netchan queued message new high water mark reached by %s at %d messages\n
Network System Initialized\n
Network field tried to use a priority that has not been registered!\n
Network socket '%s' opened on port %d\n
NetworkConfigLimits
-NetworkMessages::FindOrCreateNetMessage: Message %s is of size %d in leaf code, but protobuf object is size %lld, the added fields should be placed into object derived from protobuf and then CNetMessagePB references that\n
NetworkReplayCompatField_t %s::%s on field '%s' is using possibly bogus this pointer from class %s!\n
NetworkSystem
NetworkSystem/CreateListenSocketP2P
@@ -652,8 +660,6 @@ PACKET_STATUS_DROPPED
PACKET_STATUS_INVALID
PACKET_STATUS_NORMAL
PACKET_STATUS_OUT_OF_ORDER
-Path_Remove failed for read only CFieldPath
-Path_RemoveAll failed for read only CFieldPath
Peer To Peer
PlusFour
PlusN
@@ -672,6 +678,7 @@ PopOnePlusN
PopOnePlusOne
ProcessOverride encountered unknown directive NetworkOverrideType_t(%d)\n
Processing
+Protobuf parse failed
PublicUniverse
PushN
PushNAndNonTopographical
@@ -708,6 +715,7 @@ Recv
RecvMarginMS
RegisterNetMessageHandlerAbstract: Attempted to register a message handler for a message which is not valid for this category of channel [message %s]!\n
RegisterNetMessageHandlerAbstract: Must call StartRegisteringMessageHandlers before, and FinishRegisteringMessageHandlers after [message %s]!\n
+Reliable payload expands to %d bytes, limit is %d
ReliableNetSize
ReliableSize
RemoveArrayElementsOutsideOfArrayMetadataBounds: %s [ent %d] removing change '%s' for field %s (value '%s') on array that has metadata with only %d array elements!\n
@@ -731,6 +739,7 @@ Socket '%s' bound to '%s' [%s]:\n
Socket '%s' listening for %s on port %d:\n
Socket '%s' listening for SDR on port %d virtual port %d\n
Socket layer initialized: \n
+Spawn Groups
Steam Net connection %s %s, reason %d: %s\n
Steam supporting smaller max routable packet than engine expecting (%d vs %d)\n
SteamAPI_GetHSteamPipe
@@ -755,11 +764,14 @@ SteamNetworkingSockets not yet initialized. Queuing command '%s'\n
SteamNetworkingSockets_LibV12
SteamNetworkingUtils_LibV4
Stopping capture, %s samples written\n
+String Command
+String Table
Summary of connection [%s]:\n
TCP/UDP Disabled.\n
The 'sdr' console command has been renamed to 'net_option'. Please update your scripts\n
TimeTable
Too many incoming messages on channel (%s) %d remain queued, limit per-frame is %d.\n
+Too many messages in one frame (%d), limit is %s=%d
Too many proxies for serializer %s.
Too many queued messages (%d)
Too many queued messages on channel (%s) %d queued, limit is %d.\n
@@ -777,6 +789,7 @@ Unknown message type %u
Unreasonable reliable nUncompressedSize (%d).
Unreasonable unreliable nUncompressedSize (%d).
Unreliable header too small
+Unreliable payload expands to %d bytes, limit is %d
UnreliableNetSize
UnreliableSize
Unserialized nonresident asset %s status [%d]
@@ -785,6 +798,7 @@ Usage: net_option <setting> [<value>]\n
Usage:\nnet_fakejitter [send|recv] AVG [PCT] [MAX]\nnet_fakejitter [send|recv] PROFILE\n\nsend|recv If present, applies the changes to the specified direction only.\nAVG Mean delay, for packets that are jittered, in ms. The random\n delay is chosen using the exponential distribution.\nPCT Percentage of packets (0...100) that will receive a random delay.\nMAX Clamp random jitter delay to MAX ms.\nPROFILE One of: off, low, med, high, huge\n\nUse net_fakestatus to display current simulated network conditions.\n
UsecEngineLatency
UsecLocalLatency
+User Messages
Using Valve ICE implementation\n
VERBOSE_BITCOUNT
VERBOSE_ENDBIT
@@ -804,10 +818,12 @@ ValidateSerializedEntity: metadata incorrect entry for %s [%d expected %d]\n
ValidateSerializedEntity: missing metadata entry for %s\n
Valve.Source.Net
VectorWS
+Voice
WriteFields
WriteToBuffer Message %s is not initialized! Probably missing required fields!\n
Writing %d bits for path %s of serializer %s entity %d, this will fail to parse\n
[ Net Message Info: %s ]\n
+[ T-%.1fms %d msgs %.1fms ]
[%s] DISCONNECTING. ProcessMessages has exhausted its CPU time budget. %dms to process %d messages this call. (Current message type: '%s')\n
[%s] Queued message count %d exceeds limit of %s=%d. Allowing due to engine_frametime_warnings_enable=false\n
[%s] high frame misdelivery %.1f%%, %d/%d of %d frames dropped/reordered, %.0fms ping, %.0fms peak jitter\n
@@ -817,7 +833,16 @@ Writing %d bits for path %s of serializer %s entity %d, this will fail to parse\
[Group]
[Name]
[context entity 0x%p]
+[ent %d] Decode path %s has polymorphic type id %u for pointer %s::%s [%d], which has %d types. Rejecting the rest of the entity.\n
+[ent %d] Decode path %s is %d deep under array of primitives %s::%s [%d], expected exactly one level (the element index). Rejecting the rest of the entity.\n
+[ent %d] Decode path %s is %d deep under primitive field %s::%s [%d], expected to end at the field. Rejecting the rest of the entity.\n
+[ent %d] Decode path %s is below null element %d of array of pointers %s::%s [%d]. Discarding its fields.\n
+[ent %d] Decode path %s names embedded substruct %s::%s [%d] directly, which is useless. Ignoring this field path.\n
+[ent %d] Decode path %s names field %d of %s, which has %d fields. Rejecting the rest of the entity.\n
+[ent %d] Decode path %s repeats array of structs %s::%s [%d]. Rejecting the rest of the entity.\n
+[ent %d] Field %s::%s [%d] is a pointer to a primitive, which is not a supported combination of features. Rejecting the rest of the entity.\n
[opaque]
+[removed]
\nNon-networkables\n\n
\rBytes
\tCannotBeNetworked = %s\n
@@ -874,7 +899,6 @@ decode
decoding FAKE
deleted
delta >= 1u
-delta_error
depth %2d: %d serializers\n
drop
dropped
@@ -922,7 +946,6 @@ inpacket.message
invalid!
invalid_address
latency_seconds
-m_bCanStillRegisterCallbackPriorities
m_nSharedChangeCallbackCount must be <= EncounteredSharedChangedCallbackBitVec_t::knFixedBitSize
mark all recursively (%s)
marked %s by user group %s
@@ -933,7 +956,7 @@ marked by nobase
marked by user group
matrix3x4_t
matrix3x4a_t
-nIndex != m_priorityToOrderMap.InvalidIndex()
+nIndex != s_priorityToOrderMap.InvalidIndex()
nPriority != NETWORK_FIELD_CHANGE_DEFAULT_PRIORITY
name,type,offset
net_fakeclear: Cleared simulated network conditions\n
@@ -1000,13 +1023,13 @@ regex_error(error_syntax)
reliable
reliable_bits
render_interpolation_fraction
+s_bCanStillRegisterCallbackPriorities
sent
sentinel
serializer,permutations
server_framerate
server_framerate_stddev
showing permutations for %s\n
-shutdown
single permutation
skip
steamappid
game/bin/win64/panorama_strings.txt
modified • +0 / -1 • changes: 1
Show patch
@@ -5462,7 +5462,6 @@ file://{resources}/default_keybinds.cfg
file://{resources}/keybinds.cfg
file://{resources}/window_keybinds.cfg
filename too big
-fill
fill
fill-opacity
fill-parent-flow
game/bin/win64/rendersystemdx11_strings.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -828,6 +828,7 @@ FindOrCreateTexture: Texture scope is unspecified!\n
FindOrCreateTexture: Texture usage is unspecified!\n
Floating point "Predictor" not supported with %d data format
ForceHardwareSync
+ForceLoadShader: invalid shader loading state %d, shader %p has likely been freed\n
FormatMessageW
Found %d streaming textures in array, but in-flight count is %d\n
Found registry key %ls in %ls
game/bin/win64/resourcecompiler_strings.txt
modified • +2 / -3 • changes: 5
Show patch
@@ -9020,7 +9020,7 @@ $key:FloatBitmap_t
/vpk.privatekey.vdf
/vpk.publickey.vdf
0123456789)"
-15:37:26
+09:29:58
1:1: Tokens : ( PLUS | MINUS | MUL | DIV | COMMA | LPAREN | RPAREN | EQUALS | PERCENT | INT | FLOAT | ID | ML_COMMENT | SL_COMMENT | NL | WS );
1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );
241:1: FLOAT : ( ( MINUS )? ( DIGIT )+ '.' ( DIGIT )* ( EXP )? ( FLOATSUFFIX )? | ( MINUS )? ( DIGIT )+ ( EXP )? ( FLOATSUFFIX )? | ( MINUS )? '.' ( DIGIT )+ ( EXP )? ( FLOATSUFFIX )? );
@@ -16041,7 +16041,6 @@ nParentIdx != NM_INVALID_INDEX
nPriority
nServerLOD
nX=%? nY=%?
-nXAO
name_delta
namespace
navProperty_
@@ -16198,7 +16197,7 @@ pathing_visibility_threshold
pathingcoeffs
pathingeq
pathingmixlevel
-pc64 Nov 2 2026 15:37:25
+pc64 Nov 11 2026 09:30:19
perchannel
permissive_panorama_compiles
permitrepeats
game/bin/win64/resourceinfo.exe_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -7243,7 +7243,7 @@ x509_req
x509_store
x931
yS/h
-z0?g\f
+z0?g\r
zlVO
zlib compression
zone
game/bin/win64/soundsystem_strings.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -1594,6 +1594,7 @@ Event Type: STEP\n
Event VSNDS:\n
Event: %f pattern: %f glob: %f loops: %i\n
Event: %s\n
+Events
Exponential
Exponential Ramp
Extra taps
game/bin/win64/steamnetworkingsockets_strings.txt
modified • +61 / -19 • changes: 80
Show patch
@@ -496,6 +496,7 @@
.?AVSymmetricCryptContextBase@@
.cnf
.conf
+.fptable
.include
/%d%+d
0123456789
@@ -758,6 +759,7 @@ Assertion Failed: !m_pNextTaskInQueue
Assertion Failed: !m_pParentListenSocket
Assertion Failed: !m_pPartner
Assertion Failed: !m_pPartner->m_fakeIPRefRemote.IsValid()
+Assertion Failed: !m_pPendingSTUNRequest
Assertion Failed: !m_pPollGroup
Assertion Failed: !m_pPollGroup->m_vecConnections.HasElement( this )
Assertion Failed: !m_pPrevTaskForTarget
@@ -880,8 +882,11 @@ Assertion Failed: a.m_adr == m_adr
Assertion Failed: a.m_eProtocol == m_eProtocol
Assertion Failed: a.m_pServer == nullptr
Assertion Failed: a.port()
+Assertion Failed: addr.GetType() == k_EIPTypeV4
+Assertion Failed: addr.GetType() == k_EIPTypeV6
Assertion Failed: addr.IsFakeIP()
Assertion Failed: addrFakeIP.GetFakeIPType() == k_ESteamNetworkingFakeIPType_GlobalIPv4
+Assertion Failed: addrPeer.GetType() == k_EIPTypeV6
Assertion Failed: adr.GetType() == k_EIPTypeV4
Assertion Failed: adr.HasIP()
Assertion Failed: alt.m_nPenalty == k_nSDRAltAddressPenalty_PingOnly
@@ -894,6 +899,7 @@ Assertion Failed: bStillInQueue == ( pSeg->m_pMsg->m_links.m_pQueue != nullptr )
Assertion Failed: bStillInQueue || pSeg->m_pMsg->m_links.m_pNext == nullptr
Assertion Failed: bStillInQueue || pSeg->m_pMsg->m_linksSecondaryQueue.m_pNext == nullptr
Assertion Failed: begin <= end
+Assertion Failed: bestRoute.m_idxViaCluster >= 0
Assertion Failed: bucket.m_nMinPing <= bucket.m_nMaxPing
Assertion Failed: bucket.m_nPingCount > 0
Assertion Failed: buf[0] >= '0' && buf[0] <= '9'
@@ -991,6 +997,7 @@ Assertion Failed: g_vecSharedClusterDataInConfigOrder.size() == m_vecClusters.si
Assertion Failed: gapFilled->first < gapFilled->second
Assertion Failed: gapFilled->first <= nSegBegin
Assertion Failed: gapFilled->second > nSegBegin
+Assertion Failed: h->first < h->second.m_nEnd
Assertion Failed: hAPICall != k_uAPICallInvalid
Assertion Failed: has_element( m_vecLinkedConnections, pConn )
Assertion Failed: identity.m_cbSize <= sizeof( identity.m_genericBytes )
@@ -1044,13 +1051,15 @@ Assertion Failed: len( m_vecAvailableTransports ) == i
Assertion Failed: len( m_vecLinkedConnections ) == ( ( m_pConnection != nullptr ) ? 1 : 0 )
Assertion Failed: links.m_pNext == nullptr
Assertion Failed: links.m_pPrev == nullptr
+Assertion Failed: localAddr.GetType() == k_EIPTypeV6
Assertion Failed: lookup.m_nFirstShell > 0
Assertion Failed: m->m_conn == m_hConnectionSelf
Assertion Failed: m.m_nIndirectPing >= 0
Assertion Failed: m_CertStatus.m_eAvail != k_ESteamNetworkingAvailability_NeverTried
Assertion Failed: m_CertStatus.m_eAvail == k_ESteamNetworkingAvailability_Current
Assertion Failed: m_Put >= 0
Assertion Failed: m_TotalElements != InvalidIndex()
+Assertion Failed: m_addrTURNServer.IsValid()
Assertion Failed: m_arMarker[n-1].m_nID != m_arMarker[n].m_nID
Assertion Failed: m_bConnectionInitiatedRemotely
Assertion Failed: m_bCryptKeysValid
@@ -1110,6 +1119,7 @@ Assertion Failed: m_idxServerMigrationTarget == -1
Assertion Failed: m_info.m_cbPkt < sizeof(m_pkt)
Assertion Failed: m_itNextInFlightPacketToTimeout != it
Assertion Failed: m_itNextInFlightPacketToTimeout == m_mapInFlightPacketsByPktNum.end()
+Assertion Failed: m_itPendingAck->second.m_nEnd == INT64_MAX
Assertion Failed: m_keyPrivate.IsValid()
Assertion Failed: m_keyPublic.IsValid()
Assertion Failed: m_listReadyRetryReliableRange[ relSeg.m_hStatusOrRetry ] == hSeg
@@ -1219,7 +1229,6 @@ Assertion Failed: m_pktNumInFlight == 0 && m_eActivityLevel == ELinkActivityLeve
Assertion Failed: m_queueIndex == -1
Assertion Failed: m_queueIndex >= 0
Assertion Failed: m_queueRecvMessages.empty()
-Assertion Failed: m_receiverState.m_itPendingAck->second.m_nEnd == INT64_MAX
Assertion Failed: m_receiverState.m_itPendingNack->first < nExpectedNextPktNum
Assertion Failed: m_response.m_nStatusCode >= 0
Assertion Failed: m_routeSelector.m_vecClusters.size() == g_vecSharedClusterDataInConfigOrder.size()
@@ -1283,6 +1292,7 @@ Assertion Failed: m_vecAvailableTransports.empty()
Assertion Failed: m_vecConnections.Count() == i
Assertion Failed: m_vecFakeIPRef.empty()
Assertion Failed: m_vecLinkedConnections.empty()
+Assertion Failed: m_vecPendingPeerRequests.empty()
Assertion Failed: m_vecRoutes.empty()
Assertion Failed: m_vecServers.empty()
Assertion Failed: marker.m_nIndirectPing >= 0 && marker.m_nIndirectPing <= SteamNetworkPingLocationInternal_t::k_nMaxReasonablePing
@@ -1367,6 +1377,7 @@ Assertion Failed: nPktNum > 0
Assertion Failed: nPktNum > 0 && nPktNum < TLinkStatsTracker::m_nMaxRecvPktNum
Assertion Failed: nPktNum >= 0
Assertion Failed: nPktNumAckBegin >= 0
+Assertion Failed: nPktNumBeforeSentinelGap <= m_statsEndToEnd.m_nMaxRecvPktNum
Assertion Failed: nPktNumNackBegin >= 0
Assertion Failed: nRawScore >= 0
Assertion Failed: nReasonCode == k_ESteamNetConnectionEnd_Misc_P2P_Rendezvous
@@ -1525,6 +1536,8 @@ Assertion Failed: pTask->m_eTaskState == CQueuedTask::k_ETaskState_ReadyToDelete
Assertion Failed: pTask->m_pTarget == nullptr
Assertion Failed: pTask->m_pTarget == this
Assertion Failed: pThis->m_nReplyTimeoutsSinceLastRecv == 0
+Assertion Failed: pThisPair->m_nState != kICECandidatePairState_InProgress
+Assertion Failed: pThisPair->m_nState == kICECandidatePairState_InProgress
Assertion Failed: pTransport
Assertion Failed: pTransport && pTransport->m_listRelaySessions.IsEmpty()
Assertion Failed: pVal->m_pInherit
@@ -1559,6 +1572,7 @@ Assertion Failed: r.m_nSortScoreLocal < 9999
Assertion Failed: r.pop_id() == c.m_pConfig->m_id
Assertion Failed: relInfo.m_nSentReliableSegRefCount > 0
Assertion Failed: relSeg.m_nRefCount > 0
+Assertion Failed: remoteCandidate.m_addr.GetType() == k_EIPTypeV4
Assertion Failed: result != 0
Assertion Failed: result == -1
Assertion Failed: route.m_idxClusterLocal == pClusterData->m_idxInConfig
@@ -1854,13 +1868,16 @@ C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steam
C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_connections.cpp
C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_connections.h
C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_ice_client.cpp
-C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_lowlevel.cpp
C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_lowlevel.h
+C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_lowlevel_misc.cpp
C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_p2p.cpp
C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_p2p.h
C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_p2p_ice.cpp
C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_snp.cpp
C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_snp.h
+C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_socketthread.cpp
+C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_spew.cpp
+C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_taskqueue.cpp
C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\clientlib\steamnetworkingsockets_udp.cpp
C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\sdr\steamdatagram_internal.h
C:\buildworker\sdr_public_win64\build\src\steamnetworkingsockets\sdr\steamdatagram_network_config.cpp
@@ -2112,16 +2129,13 @@ CSteamNetworkingICESession::GatherInterfaces
CSteamNetworkingICESession::OnPacketReceived
CSteamNetworkingICESession::Think
CSteamNetworkingICESession::Think_TestPeerConnectivity
-CSteamNetworkingICESession::UpdateHostCandidates
CSteamNetworkingMessages::BHandleNewIncomingConnection
CSteamNetworkingMessages::DestroySession
CSteamNetworkingMessages::FindOrCreateChannel
CSteamNetworkingMessages::FreeResources
CSteamNetworkingSockets::Destroy
CSteamNetworkingSockets::KillConnections
CSteamNetworkingSocketsSDR::Destroy
-CSteamNetworkingSocketsSTUNRequest::CreatePeerConnectivityCheckRequest
-CSteamNetworkingSocketsSTUNRequest::SendBindRequest
CSteamNetworkingSocketsSTUNRequest::Think
CSteamNetworkingSocketsSteamBase::BInitSteamBase
CSteamNetworkingUtils::CSteamNetworkingUtils
@@ -2299,7 +2313,6 @@ ConvertInterfaceGuidToLuid
ConvertInterfaceGuidToLuid failed 0x%x
ConvertInterfaceLuidToIndex
ConvertInterfaceLuidToIndex failed 0x%x
-Could not bind to %s. %s\n
Could not find secondary wifi adapter, even though wlan_intf_opcode_secondary_sta_synchronized_connections returned %u items
CreateEvent() call failed. Error code 0x%08x.
CreateFakeUDPPort
@@ -2750,7 +2763,6 @@ Failed to negotiate mutually-agreeable cipher
Failed to parse %s value %s
Failed to parse '%s'. %s\n
Failed to parse JSON %s
-Failed to parse address '%s' as an IP address.
Failed to parse authorized client identity. %s
Failed to parse gameserver identity. %s
Failed to parse result JSON. Line %d, offset %d: %s
@@ -2797,12 +2809,15 @@ FakeUDPSession::Think
Fatal Assertion Failed: (uint8 *)pEncryptedDataAndTag + cbEncryptedWithoutTag == pOut
Fatal Assertion Failed: EVP_DecryptInit_ex( ctx, nullptr, nullptr, nullptr, (const uint8*)pIV ) == 1
Fatal Assertion Failed: EVP_DigestFinal(ctx.ctx, *pOutDigest, &digest_len) == 1
+Fatal Assertion Failed: EVP_DigestFinal(ctx.ctx, *pOutputDigest, &digest_len) == 1
+Fatal Assertion Failed: EVP_DigestInit_ex(ctx.ctx, EVP_md5(), 0) == 1
Fatal Assertion Failed: EVP_DigestInit_ex(ctx.ctx, EVP_sha256(), 0) == 1
Fatal Assertion Failed: EVP_DigestInit_ex(mdctx.ctx, digest, 0) == 1
Fatal Assertion Failed: EVP_DigestSign( ctx, (unsigned char *)pSignatureOut, &siglen, (const unsigned char *)pData, cbData ) == 1
Fatal Assertion Failed: EVP_DigestSignFinal(mdctx.ctx, *pOutputDigest, &needed) == 1
Fatal Assertion Failed: EVP_DigestSignInit( ctx, nullptr, nullptr, nullptr, pkey ) == 1
Fatal Assertion Failed: EVP_DigestSignInit(mdctx.ctx, 0, digest, 0, pkey.ctx) == 1
+Fatal Assertion Failed: EVP_DigestUpdate(ctx.ctx, pData, cbData) == 1
Fatal Assertion Failed: EVP_DigestUpdate(ctx.ctx, pInput, cbInput) == 1
Fatal Assertion Failed: EVP_DigestUpdate(mdctx.ctx,pubData,cubData) == 1
Fatal Assertion Failed: EVP_DigestVerifyInit( ctx, nullptr, nullptr, nullptr, pkey ) == 1
@@ -2831,6 +2846,7 @@ Field=
FinalizeLocalCrypto
FindServerDataForCluster
Flags indicate presence of TimeSincePrev, but no room for it. Stats message size %d, packet size %d
+FlsGetValue2
FlushMessagesOnConnection
For best results, preload the config. (See SDR_NETWORK_CONFIG env var)\n
Found existing connection [%s]. Only one symmetric connection can be active at a time.
@@ -2907,12 +2923,10 @@ GetTickCount64
Giving up on %s after %d consecutive ping timeouts
Giving up waiting for DualWifi adapter to be ready for secondary address access to %s. (We waited ~%.1fs)\n
Got SDR network config. %s
-Got a rendezvous candidate at "%s"\n
Got callback for wrong request?
Got cert for %s from Steam\n
Got incoming FakeIP connection request when we already had a connection. This could legit happen due to race condition we aren't handling right now.
Got incoming messages session connection request when we already had a connection. This could happen legit, but we aren't handling it right now.
-Got remote candidate '%s'\n
HKDF
HMAC
HMAC DSTU Gost 34311-95
@@ -2942,6 +2956,30 @@ IANA
ICC or token signature
ICE connection dropped after successful negotiation
ICE not enabled by local user options
+ICE selected candidate %s -> %s -> %s.
+ICE selected candidate %s -> %s.
+ICE: Could not bind to %s, skipping interface. %s\n
+ICE: Dropping Data Indication from %s: not our TURN server (%s).\n
+ICE: Dropping Data Indication from TURN: missing peer-address or data attribute.\n
+ICE: Dropping STUN message 0x%x from %s.\n
+ICE: Dropping STUN response 0x%x from %s: attribute parse or integrity failure.\n
+ICE: Dropping binding request: USERNAME length %u exceeds max %u.
+ICE: Dropping binding request: attribute parse or integrity failure.\n
+ICE: Dropping peer candidate with invalid address %s\n
+ICE: Host candidate has invalid address %s - gathering bug
+ICE: Incoming binding request from %s to %s.\n\n
+ICE: Incorrect username length; at least %d expected, got %d.
+ICE: Incorrect username: got '%s' expected '%s'.
+ICE: Invalid username; no : found in %s
+ICE: Local interface %s removed\n
+ICE: Role conflict -- we are Controlled but peer also sent ICE-CONTROLLED.\n
+ICE: Role conflict -- we are Controlling but peer also sent ICE-CONTROLLING.\n
+ICE: STUN request 0x%x to %s timed out.\n
+ICE: STUN server %s gave us invalid reflexive address %s -- ignoring\n
+ICE: Sending a STUN binding response to %s from %s.
+ICE: TURN Refresh timed out for %s -- tearing down relay allocation\n
+ICE: TURN server %s gave us invalid relay address %s -- ignoring allocation\n
+ICE: TURN server %s sent 401, retrying with long-term credentials for user '%s'.\n
ID%llu
IDEA-CBC
IDEA-CFB
@@ -3016,15 +3054,12 @@ Ignoring unknown control message %d from %s
Ignoring unsolicited/spoofed/late packet from %s.
Ignoring weird timestamp %llu in ChallengeReply, current time is %llu.\n
Ignoring weird timestamp %llu in ConnectOK, current time is %llu, remote delay was %lld.\n
-Incoming binding request from %s to %s.\n\n
Incorrect challenge. Could be spoofed.
Incorrect client challenge / connection ID %x in RouterPingReply from %s. Reply could be spoofed, ignoring.
Incorrect connection ID
Incorrect connection ID, when we do have a connection for this address. Could be spoofed, ignoring.
Incorrect connection ID. Message is stale or could be spoofed, ignoring.
Incorrect routing secret. (Packet spam, or relay using routing secret from previous server instance).
-Incorrect username length; at least %d expected, got %d.
-Incorrect username: got '%s' expected '%s'.
Independent
Inherit all
Inhibit Policy Mapping
@@ -3051,6 +3086,7 @@ International Organizations
Invalid 25519 key type
Invalid AES-GCM key size
Invalid DH key
+Invalid IP type %d
Invalid LocalVirtualPort %d
Invalid P2P_Transport_ICE_Implementation value
Invalid SDR_PRIVATE_KEY or SDR_CERT. %s
@@ -3088,7 +3124,6 @@ Invalid routing blob (%d bytes)
Invalid signature
Invalid signature length
Invalid state %d
-Invalid username; no : found in %s
Invalidating cached routes when we shouldn't! %s
Invalidity Date
Iphlpapi.dll
@@ -3269,6 +3304,7 @@ Nack count of %llu<<3 is crazy
Nack range underflow, end=%lld, num=%lld
NagleTime
Name lookup for "%s" failed - %s\n
+Nesting depth limit (%d) exceeded
Netscape
Netscape Base Url
Netscape CA Policy Url
@@ -3682,9 +3718,11 @@ PUBLIC KEY
Packet is %d bytes, must be padded to at least %d bytes.
Packet is too small
Packet of size %d is too small.
+PacketGaps map not increasing
PacketTraceMaxBytes
Parse failure. Length=%d, data begins %s
Payload exceeded max size of %d\n
+Peer connectivity-check pair already has a request in flight
Peer is running old software and needs to be udpated
Peer is running old software and needs to be updated. (V%u, >=V%u is required)
Peer is using old protocol and cannot receive multiple lanes
@@ -4085,6 +4123,7 @@ STEAMNETWORKINGSOCKETS_LOG_FILE
STEAMNETWORKINGSOCKETS_LOG_LEVEL
STORE lib
STORE routines
+STUN USERNAME exceeds RFC limit
SXNET
SXNETID
SXNET_add_id_INTEGER
@@ -4124,7 +4163,6 @@ Sender sent reliable stream pos using %llx mod %llx, expected next %llx\n
Sender tried to send on invalid lane %d; max is %d
Sending ConnectRequest for ConnectionID %u to %s via primary relay %s.\n
Sending NoConnection to %s: { %s }\n
-Sending a STUN response to %s from %s.
Sending ping probe to %s in %s\n
Sent ack %u not pending. %d: %u %u %u %u %u
Serialized inline stats message (%s) is %d bytes, still won't fit, ever after clearing connection quality stats? %s
@@ -4232,7 +4270,7 @@ SteamServerConnectFailure_t
SteamServersConnected_t
SteamServersDisconnected_t
SteamnetworkingSockets service thread waited %dms for lock! This directly adds to network latency! It could be a bug, but it's usually caused by general performance problem such as thread starvation or a debug output handler taking too long.
-Stray data packet from host with no connection. Ignoring.
+Stray data packet from host with no connection.
Strong Extranet ID
Subject Information Access
Superseded
@@ -4285,6 +4323,7 @@ TS_TST_INFO_set_serial
TS_TST_INFO_set_time
TS_TST_INFO_set_tsa
TS_VERIFY_CTX_new
+TURN server address not in m_vecTURNServers
TYPE=
Taking global lock while already holding lock '%s'
Taking lock '%s' and then '%s', while not holding the global lock
@@ -4321,8 +4360,10 @@ TimeoutInitial
To use symmetric connect, remote identity must be specified
Told peer to stop acking up to %lld, but latest packet we have sent is %lld
Too late!
+Too many chunks to send via TURN relay (max 3)
Too many connections.
Too many ephemeral FakeUDP ports.\n
+Too many extra attrs for TURN request
Trailer Field: 0x
TransportChangeConfirm
Tried to connect request, but crypt not ready
@@ -4436,8 +4477,8 @@ Unsupported key type %d
Unsupported protocol %d
Unterminated string
Until we obtain the config, we will not be able to accept clients!\n
+Untracked STUN retransmit type 0x%x
Unused
-UseCandidate was set!
Using cert from SDR_PRIVATE_KEY and SDR_CERT environment vars\n
VIDEOTEXSTRING
VISIBLESTRING
@@ -4711,12 +4752,14 @@ ZUINT64
[%s] End-to-end sequence number is duplicate or old, or fails to decrypt, but relay sequence number is OK?
[%s] Expecting %d acks! %04x=%lld %04x=%lld %04x=%lld ... %04x=%lld %04x=%lld %04x=%lld
[%s] Failed crypto init in ConnectOK packet. %s
+[%s] Failed to parse remote candidate '%s'\n
[%s] Failed to send end-to-end stats msg to primary relay %s to confirm end-to-end connectivity
[%s] Failed to set option %d while implicitly accepting. Ignoring failure!
[%s] Forgetting relay session %s. Last communication was %.1f seconds ago
[%s] Front ping %d is greater than measured end-to-end ping %d.\n
[%s] Got P2P signal from %s. Wrong connection type!\n
[%s] Got P2P signal from wrong remote identity '%s'\n
+[%s] Got remote candidate '%s'\n
[%s] Got valid end-to-end packet (%s) via %s. Leaving finding route, entering connected state.
[%s] Guessed ICE failure to be %d: %s\n
[%s] ICE already failed (%d %s) while changing role to server. We won't try again.
@@ -4914,14 +4957,14 @@ ZUINT64
\n%*sZone: %s, User:
\nBytes
\nExtraInfo
-\n\nSelected candidate %s -> %s.\n\n
\n\tIPSec/IKE/Oakley curve #3 over a 155 bit binary field.\n\tNot suitable for ECDSA.\n\tQuestionable extension field!
\n\tIPSec/IKE/Oakley curve #4 over a 185 bit binary field.\n\tNot suitable for ECDSA.\n\tQuestionable extension field!
\nkhT
\rSize
\tLane
\vssh-ed25519
_OPENSSL_isservice
+__preserve_none
a null shared library handle was used
a2d_ASN1_OBJECT
a2i_ASN1_INTEGER
@@ -6956,7 +6999,7 @@ lastUpdate
lcO/<1\r=,!\r-@@@
length too long
level_add_node
-lib Apr 29 2026 21:22:22
+lib Aug 5 2026 18:42:40
lib(%lu)
linebuffer_ctrl
linebuffer_new
@@ -8061,7 +8104,6 @@ steamnetworkingsockets_messages.proto
steamnetworkingsockets_messages_certs.proto
steamnetworkingsockets_messages_udp.proto
stop_waiting offset
-stop_waiting past sentinel gap
stop_waiting pktNum %llu offset %llu
store init error
str:
game/bin/win64/tier0_strings.txt
modified • +3 / -2 • changes: 5
Show patch
@@ -430,6 +430,7 @@ $xmm9
( %u: max procs %u, active proc %u, active mask 0x%llx )
( cubGap & 15 ) == 0
(%d,%d)
+(-AVX512)
(Missing)
(None)
(Unaccounted)
@@ -774,7 +775,6 @@ $xmm9
;BIb?
;srv*http://symbols/windows
<!-- kv3 encoding:%s:version{%s} format:%s:version{%s} -->\n
-<!-- schema
</link>
</script>
<< NULL >>\n
@@ -4652,6 +4652,7 @@ Outflow_NPCUseScriptedAbility
Outflow_Simultaneous
OutputDebugStringA
OverrideQuantizedFloatEncoderAlias
+P(YX
P4_EXTRACT_CMD=p4.exe print -o %srcsrvtrg% -q "//%var3%#%var4%"\n
P4_EXTRACT_TARGET=%targ%\%var2%\%fnbksl%(%var3%)\%var4%\%fnfile%(%var1%)\n
PARTICLE_DEPTH_FEATHERING_OFF
@@ -7967,6 +7968,7 @@ modf
moredetailed
moveto
multiplayer_break
+n<!-- schema
nBits != 32
nInterruptability
nMax
@@ -7975,7 +7977,6 @@ nOffset < m_nAllocationSize
nOverrideCPField
nSwitchValue
nTries < 10000000
-n\f"pA3Q
name
nan(ind)
nan(snan)
game/bin/win64/tools/met_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -235,12 +235,12 @@
// THIS FILE IS AUTO-GENERATED\n
//-------------------------------------------------\n
0123456789)"
+09:24:45
0=Wrap,1=Mirror,2=Clamp,3=Border,4=MirrorOnce
1 texel = %1px
1/%1x
1/2/3
128 x 128
-15:35:57
1:1 current mip
1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );
1AboutAction()
game/bin/win64/vconsole2.exe_strings.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -481,12 +481,12 @@ $B0B
.vsky
.webp
0.0.0.0
+09:24:06
+09:25:01
0BCDEFGHIJKLMNOPQRSTUVWXYZ1BCDEFGHIJKLMNOPQRSTUVWXYZ2BCDEFGHIJKLMNOPQRSTUVWXYZ3BCDEFGHIJKLMNOPQRSTUVWXYZ4BCDEFGHIJKLMNOPQRSTUVWXYZ\n
0x%llx
127.0.0.0
127.0.0.1:%d
-15:33:14
-15:33:36
172.16.0.0
1AboutAction()
1NextFrame()
game/bin/win64/video64_strings.txt
modified • +0 / -1 • changes: 1
Show patch
@@ -10618,7 +10618,6 @@ time not ascii format
time stamp routines
time syscall error
timeStamping
-timescale
timestampsign
tinet
tls illegal exporter label
game/bin/win64/vrad3_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -2307,7 +2307,7 @@ path_trace_triangles_gpu
path_trace_triangles_gpu_init
path_trace_triangles_gpu_shutdown
path_trajectory
-pc64 Nov 2 2026 15:32:44
+pc64 Nov 11 2026 09:24:00
physicsSimplificationError
physicsSimplificationOverride
pinEnabled
game/core/shaders_vulkan_dir/shaders/vfx/copytexture.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -113,7 +113,7 @@ PS
Texture3D g_tCopyColor < Attribute("CustomTexture1"); SrgbRead(true); >;
Texture2D g_tDepthTexture < Attribute("CustomTexture0"); SrgbRead(false); >;
float3 g_vColorTint < Default3(1, 1, 1); Attribute("ColorTint"); UiType(VectorText); >;
- float4 g_vScaleAndBias < Default2(0, 1); Attribute("ScaleAndBias"); UiType(VectorText); >;
+ float4 g_vScaleAndBias < Default4(0, 1, 0, 1); Attribute("ScaleAndBias"); UiType(VectorText); >;
// Color
CreateInputTexture2D(TextureColorWarp3D, Srgb, 8, "", "_z000", "Color,10/Color Warp", Default4(1, 1, 1, 1));
game/core/shaders_vulkan_dir/shaders/vfx/generic.slang
modified • +3 / -3 • changes: 6
Show patch
@@ -299,9 +299,9 @@ PS
CreateInputTexture2D(TextureGlossiness, Linear, 8, "", "_gloss", "Lighting,30/Gloss,20/10", Default4(0.5, 0.5, 0.5, 0));
CreateInputTexture2D(TextureMetalness, Linear, 8, "", "_metal", "Lighting,30/Metalness,30/10", Default4(0, 0, 0, 0));
CreateInputTexture2D(TextureReflectance, Linear, 8, "", "_refl", "Lighting,30/Reflectance,10/10", Default4(0.1, 0.1, 0.1, 0));
- float2 g_vGlossinessRange < Default(0); UiType(VectorText); UiGroup("Lighting,30/Gloss/20"); >;
- float2 g_vMetalnessRange < Default(0); UiType(VectorText); UiGroup("Lighting,30/Metalness/20"); >;
- float2 g_vReflectanceRange < Default(0); UiType(VectorText); UiGroup("Lighting,30/Reflectance/20"); >;
+ float2 g_vGlossinessRange < Default2(0, 1); UiType(VectorText); UiGroup("Lighting,30/Gloss/20"); >;
+ float2 g_vMetalnessRange < Default2(0, 1); UiType(VectorText); UiGroup("Lighting,30/Metalness/20"); >;
+ float2 g_vReflectanceRange < Default2(0, 1); UiType(VectorText); UiGroup("Lighting,30/Reflectance/20"); >;
// Normal Map
CreateInputTexture2D(TextureNormal, Linear, 8, "NormalizeNormals", "_normal", "Normal Map,20", Default4(0.5, 0.5, 1, 0));
game/core/shaders_vulkan_dir/shaders/vfx/panorama.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -110,7 +110,7 @@ PS
Texture2D g_tTexture2 < Attribute("Texture2"); SrgbRead(false); >;
Texture2D g_tTexture3 < Attribute("Texture3"); SrgbRead(false); >;
Texture2D g_tTexture4 < Attribute("Texture4"); SrgbRead(false); >;
- float2 g_vBlurMultiplyVec < Default(0); Attribute("BlurMultiplyVec"); UiType(VectorText); >;
+ float2 g_vBlurMultiplyVec < Default2(0, 1); Attribute("BlurMultiplyVec"); UiType(VectorText); >;
// Variant parameters
game/core/shaders_vulkan_dir/shaders/vfx/refract.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -175,7 +175,7 @@ PS
Texture2D g_tNormal < Channel(RGBA, MipNormal(TextureNormal), Linear); OutputFormat(DXT5); SrgbRead(false); >;
Texture2D g_tNormal2 < Channel(RGBA, MipNormal(TextureNormal2), Linear); OutputFormat(DXT5); SrgbRead(false); >;
Texture2D g_tRefractTint < Channel(RGBA, MipNormal(TextureTintTexture), Linear); OutputFormat(DXT5); SrgbRead(false); >;
- float4 g_vFBCopyTextureRect < Default2(0, 0); Attribute("FrameBufferCopyRectangle"); UiType(VectorText); >;
+ float4 g_vFBCopyTextureRect < Default4(0, 0, 1, 1); Attribute("FrameBufferCopyRectangle"); UiType(VectorText); >;
// Refraction
CreateInputTexture2D(TextureNormal, Linear, 8, "", "_normal", "Refraction", Default4(0.5, 0.5, 1, 0));
game/core/shaders_vulkan_dir/shaders/vfx/test.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -272,7 +272,7 @@ PS
[[vk::constant_id(0)]] int g_nGPUVendorID < UiType(Slider); Expression(S_GPU_VENDOR_ID); >;
int g_nValue < UiType(Slider); >;
Texture2D g_tColor < Channel(RGB, Box(TextureColor), Srgb); OutputFormat(DXT1); SrgbRead(true); >;
- float3 g_vModulationColor2 < Default(0); UiType(Color); >;
+ float3 g_vModulationColor2 < Default2(0, 1); UiType(Color); >;
float3 g_vModulationColor3 < Default3(1, 1, 0.5); UiType(Color); >;
// Color
game/core/shaders_vulkan_dir/shaders/vfx/tools_sprite.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -307,7 +307,7 @@ PS
Texture2D g_tColorA < Channel(RGB, Box(TextureColor), Srgb); OutputFormat(DXT1); SrgbRead(true); >;
Texture2D g_tColorB < Channel(RGB, AlphaWeighted(TextureColor, TextureTranslucency), Srgb); Channel(A, PreserveCoverage(TextureTranslucency), Linear); OutputFormat(DXT5); SrgbRead(true); >;
Texture2D g_tColorC < Channel(RGBA, Box(TextureColor), Srgb); OutputFormat(DXT5); SrgbRead(true); >;
- float4 g_vBorderColor < Default(0); Attribute("BorderColor"); UiType(VectorText); >;
+ float4 g_vBorderColor < Default4(0, 0, 0, 1); Attribute("BorderColor"); UiType(VectorText); >;
// Color
CreateInputTexture2D(TextureColor, Srgb, 8, "", "_color", "Color", Default4(1, 1, 1, 0));
game/core/shaders_vulkan_dir/shaders/vfx/tools_wireframe.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -68,7 +68,7 @@ VS
// Override Color
float g_OverrideColorFactor < UiType(Slider); UiGroup("Override Color"); >;
- float4 g_vOverrideColor < Default(0); UiType(Color); UiGroup("Override Color"); Expression(SrgbGammaToLinear(this)); >;
+ float4 g_vOverrideColor < Default4(0, 0, 0, 1); UiType(Color); UiGroup("Override Color"); Expression(SrgbGammaToLinear(this)); >;
// Source 2 Viewer - https://valveresourceformat.github.io
// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup
game/csgo/bin/win64/client_strings.txt
modified • +34 / -154 • changes: 188
Show patch
@@ -2106,6 +2106,7 @@ $taser_charge
%s PARAMETERS
%s PRIVATE KEY
%s Tick
+%s [%d]
%s [%s%s%s]###%p
%s algorithm "%s" unsupported\n
%s at %.0f %.0f %0.f uses model %s, which has an invalid prop_data type. DELETED.\n
@@ -2538,6 +2539,7 @@ $taser_charge
(%0.2f): %s
(%d) Dynamic prop %s (model %s): no sequence named:%s\n
(%d) Name: %s (%s)
+(%f, %f, %f)
(%s)Found new peer %u\n
(%s)Keeping existing peer %u\n
(%s,%s)
@@ -7892,6 +7894,7 @@ $taser_charge
.?AVCHeatMap@@
.?AVCHelpRequestLogs_UploadUserApplicationLog_Request@@
.?AVCHelpRequestLogs_UploadUserApplicationLog_Response@@
+.?AVCHiddenFieldValuePrinter@@
.?AVCHistogramReadback@@
.?AVCHistogramRenderer@@
.?AVCHitboxComponent@@
@@ -8609,139 +8612,6 @@ $taser_charge
.?AVCProtoBufMsgMemoryPoolBase@GCSDK@@
.?AVCProtoBufNetPacket@GCSDK@@
.?AVCProtoBufSharedObjectBase@GCSDK@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BAA@VCP2P_TextMessage@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BAB@VCP2P_Voice@@$05$01$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BAC@VCP2P_Ping@@$0A@$00$0A@@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BBI@V?$CBaseCmdKeyValues@VCClientMsg_CustomGameEvent@@@@$0O@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BBJ@V?$CBaseCmdKeyValues@VCClientMsg_CustomGameEventBounce@@@@$0O@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BBK@VCClientMsg_ClientUIEvent@@$0O@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BCN@VCCSUsrMsg_VGUIMenu@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BDN@VCCSUsrMsg_SendAudio@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BDO@VCCSUsrMsg_RawAudio@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEB@VCCSUsrMsg_Damage@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEC@VCCSUsrMsg_RadioText@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BED@VCCSUsrMsg_HintText@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEE@VCCSUsrMsg_KeyHintText@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEF@VCCSUsrMsg_ProcessSpottedEntityUpdate@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEH@VCCSUsrMsg_AdjustMoney@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEK@VCCSUsrMsg_KillCam@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEO@VCCSUsrMsg_MatchEndConditions@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEP@VCCSUsrMsg_DisconnectToLobby@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFA@VCCSUsrMsg_PlayerStatsUpdate@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFJ@VCCSUsrMsg_CallVoteFailed@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFK@VCCSUsrMsg_VoteStart@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFL@VCCSUsrMsg_VotePass@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFM@VCCSUsrMsg_VoteFailed@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFN@VCCSUsrMsg_VoteSetup@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFO@VCCSUsrMsg_ServerRankRevealAll@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFP@VCCSUsrMsg_SendLastKillerDamageToClient@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGA@VCCSUsrMsg_ServerRankUpdate@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGJ@VCCSUsrMsg_SendPlayerItemDrops@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGK@VCCSUsrMsg_RoundBackupFilenames@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGL@VCCSUsrMsg_SendPlayerItemFound@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGM@VCCSUsrMsg_ReportHit@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGN@VCCSUsrMsg_XpUpdate@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGO@VCCSUsrMsg_QuestProgress@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGP@VCCSUsrMsg_ScoreLeaderboardData@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHA@VCCSUsrMsg_PlayerDecalDigitalSignature@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHB@VCCSUsrMsg_WeaponSound@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHC@VCCSUsrMsg_UpdateScreenHealthBar@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHD@VCCSUsrMsg_EntityOutlineHighlight@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHE@VCCSUsrMsg_SSUI@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHF@VCCSUsrMsg_SurvivalStats@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHG@VCCSUsrMsg_DisconnectToLobby@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHH@VCCSUsrMsg_EndOfMatchAllPlayersData@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHI@VCCSUsrMsg_PostRoundDamageReport@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHL@VCCSUsrMsg_RoundEndReportData@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHM@VCCSUsrMsg_CurrentRoundOdds@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHN@VCCSUsrMsg_DeepStats@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHP@VCCSUsrMsg_ShootInfo@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BID@VCCSUsrMsg_RecurringMissionSchema@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BIE@VCCSUsrMsg_SendPlayerLoadout@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BIF@VCCSUsrMsg_WeaponMagDrop@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJA@VCMsgTEEffectDispatch@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJB@VCMsgTEArmorRicochet@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJC@VCMsgTEBeamEntPoint@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJD@VCMsgTEBeamEnts@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJE@VCMsgTEBeamPoints@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJF@VCMsgTEBeamRing@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJI@VCMsgTEBubbles@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJJ@VCMsgTEBubbleTrail@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJK@VCMsgTEDecal@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJL@VCMsgTEWorldDecal@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJM@VCMsgTEEnergySplash@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJN@VCMsgTEFizz@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJP@VCMsgTEGlowSprite@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKA@VCMsgTEImpact@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKB@VCMsgTEMuzzleFlash@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKC@VCMsgTEBloodStream@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKD@VCMsgTEExplosion@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKE@VCMsgTEDust@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKF@VCMsgTELargeFunnel@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKG@VCMsgTESparks@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKH@VCMsgTEPhysicsProp@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKK@VCMsgTESmoke@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BME@VCMsgTEFireBullets@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BMF@VCMsgPlayerBulletHit@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0GF@VCUserMessageAchievementEvent@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0GI@VCUserMessageCurrentTimescale@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0GJ@VCUserMessageDesiredTimescale@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0GK@VCUserMessageFade@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0GO@VCUserMessageHudMsg@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0GP@VCUserMessageHudText@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HB@VCUserMessageColoredText@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HC@VCUserMessageRequestState@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HD@VCUserMessageResetHUD@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HE@VCUserMessageRumble@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HF@VCUserMessageSayText@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HG@VCUserMessageSayText2@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HH@VCUserMessageSayTextChannel@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HI@VCUserMessageShake@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HJ@VCUserMessageShakeDir@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HK@VCUserMessageWaterShake@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HM@VCUserMessageTextMsg@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HN@VCUserMessageScreenTilt@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IA@VCUserMessageVoiceMask@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IC@VCUserMessageSendAudio@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0ID@VCUserMessageItemPickup@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IE@VCUserMessageAmmoDenied@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IG@VCUserMessageShowMenu@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IH@VCUserMessageCreditsMsg@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IJ@VCEntityMessageScreenOverlay@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IL@VCEntityMessagePropagateForce@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IM@VCEntityMessageDoSpark@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IO@VCUserMessageCloseCaptionPlaceholder@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IP@VCUserMessageCameraTransition@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JA@VCUserMessageAudioParameter@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JB@VCUserMsg_ParticleManager@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JC@VCUserMsg_HudError@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JE@V?$CBaseCmdKeyValues@VCUserMsg_CustomGameEvent@@@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JG@VCUserMessageHapticsManagerPulse@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JH@VCUserMessageHapticsManagerEffect@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JJ@VCUserMessageUpdateCssClasses@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JK@VCUserMessageServerFrameTime@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JL@VCUserMessageLagCompensationError@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JM@VCUserMessageRequestDllStatus@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JN@VCUserMessageRequestUtilAction@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0KA@VCUserMessageRequestInventory@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0KC@VCUserMessageRequestDiagnostic@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0KF@VCUserMessage_NotifyResponseFound@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0KG@VCUserMessage_PlayResponseConditional@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0KK@VCUserMessageRemoteServerResponse@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0MJ@VCMsgPlaceDecalEvent@@$0M@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0MK@VCMsgClearWorldDecalsEvent@@$0M@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0ML@VCMsgClearEntityDecalsEvent@@$0M@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0MM@VCMsgClearDecalsForEntityEvent@@$0M@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0MN@VCMsgSource1LegacyGameEventList@@$09$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0MO@VCMsgSource1LegacyListenEvents@@$09$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0MP@VCMsgSource1LegacyGameEvent@@$04$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0NA@VCMsgSosStartSoundEvent@@$03$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0NB@VCMsgSosStopSoundEvent@@$03$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0NC@VCMsgSosSetSoundEventParams@@$03$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0ND@VCMsgSosSetLibraryStackFields@@$03$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0NE@VCMsgSosStopSoundEventHash@@$03$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0NF@VCMsgClothStiffenAnimEvent@@$04$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0NG@VCMsgClothEffectAnimEvent@@$04$00$00@@
.?AVCPsdBufferFile@@
.?AVCPublishedFile_GetDetails_Request@@
.?AVCPublishedFile_GetDetails_Response@@
@@ -8825,7 +8695,6 @@ $taser_charge
.?AVCReadOnlyBlackboardView@@
.?AVCRecipientFilter@@
.?AVCRecordingList@@
-.?AVCRefCount@GCSDK@@
.?AVCReliableBroadcastRecipientFilter@@
.?AVCReloadMatchFilter@@
.?AVCRenderComponent@@
@@ -10699,7 +10568,7 @@ $taser_charge
:BAD OBJECT
:Blowfish part of OpenSSL 1.0.2j 26 Sep 2016
:EXTERNAL TYPE %s\n
-;<}\v<}\v<}\v<}\venv_tonemap_controller
+;<}\v<}\v<}\v<}\vC_TonemapController2
;sv_pausable;sv_cheats
<!-- dmx encoding keyvalues2_noids 4 format vtex 1 -->\n"CDmeVtex"\n{\n\t"m_inputTextureArray" "element_array"\n\t[\n
<!-- dmx encoding keyvalues2_noids 4 format vtex 1 -->\n"CDmeVtex"\n{\n\t"m_inputTextureArray" "element_array"\n\t[\n\t\t"CDmeInputTexture"\n\t\t{\n\t\t\t"m_name" "string" "TextureAmbientOcclusion"\n\t\t\t"m_fileName" "string" "$TEXTURE_REPLACEMENT_TOKEN"\n\t\t\t"m_colorSpace" "string" "linear"\n\t\t\t"m_fileExt" "string" "ao"\n\t\t\t"m_nMinBitsPerChannel" "int" "8"\n\t\t\t"m_typeString" "string" "2D"\n\t\t\t"m_imageProcessorArray" "element_array"\n\t\t\t[\n\t\t\t\t"CDmeImageProcessor"\n\t\t\t\t{\n\t\t\t\t\t"m_algorithm" "string" "None"\n\t\t\t\t\t"m_stringArg" "string" ""\n\t\t\t\t\t"m_vFloat4Arg" "vector4" "0 0 0 0"\n\t\t\t\t}\n\t\t\t]\n\t\t\t"m_bPassThroughToCompiledVtex" "bool" "0"\n\t\t\t"m_n3DSliceCount" "int" "-1"\n\t\t\t"m_n3DSliceWidth" "int" "-1"\n\t\t\t"m_n3DSliceHeight" "int" "-1"\n\t\t}\n\t]\n\t"m_outputTypeString" "string" "2D"\n\t"m_outputFormat" "string" "ATI1N"\n\t"m_outputClearColor" "vector4" "0 0 0 0"\n\t"m_nOutputMinDimension" "int" "0"\n\t"m_nOutputMaxDimension" "int" "0"\n\t"m_nOutputDimensionReduce" "int" "0"\n\t"m_textureOutputChannelArray" "element_array"\n\t[\n\t\t"CDmeTextureOutputChannel"\n\t\t{\n\t\t\t"m_srcChannels" "string" "r"\n\t\t\t"m_dstChannels" "string" "r"\n\t\t\t"m_mipAlgorithm" "CDmeImageProcessor"\n\t\t\t{\n\t\t\t\t"m_algorithm" "string" ""\n\t\t\t\t"m_stringArg" "string" ""\n\t\t\t\t"m_vFloat4Arg" "vector4" "0 0 0 0"\n\t\t\t}\n\t\t\t"m_outputColorSpace" "string" "linear"\n\t\t\t"m_inputTextureArray" "string_array"\n\t\t\t[\n\t\t\t\t"TextureAmbientOcclusion"\n\t\t\t]\n\t\t}\n\t]\n\t"m_vClamp" "vector3" "0 0 0"\n\t"m_bNoLod" "bool" "0"\n\t"m_bHiddenAssetFlag" "bool" "0"\n\t"m_bNormalizeRange" "bool" "0"\n\t"m_nDisplayRectWidth" "int" "0"\n\t"m_nDisplayRectHeight" "int" "0"\n\t"m_nMotionVectorsMaxDistanceInPixels" "int" "0"\n}\n
@@ -11201,7 +11070,6 @@ AddTimedStyle
AddToTeamSelectPlayerList
AddVelocity
AddViewsToSceneSystem
-AddWorkItem
Added TrueView prediction for player slot %d (%s)\n
Added keyframe: pos=%f %f %f\n
Added prediction for player slot %d (%s)\n
@@ -12008,6 +11876,7 @@ C:\buildworker\csgo_rel_win64\build\src\animlib\tasksystem\animtasksystem.cpp
C:\buildworker\csgo_rel_win64\build\src\animlib\tasksystem\tasks\animtask_chainlookat.cpp
C:\buildworker\csgo_rel_win64\build\src\bitmap\tinyexr_impl.cpp
C:\buildworker\csgo_rel_win64\build\src\common\crypto.cpp
+C:\buildworker\csgo_rel_win64\build\src\common\protobuf_helpers.cpp
C:\buildworker\csgo_rel_win64\build\src\compositematerialslib\compositematerialmanager.cpp
C:\buildworker\csgo_rel_win64\build\src\entity2\entity2_networking.cpp
C:\buildworker\csgo_rel_win64\build\src\entity2\entitykeyvalues.cpp
@@ -12017,7 +11886,7 @@ C:\buildworker\csgo_rel_win64\build\src\game\client\c_basecombatcharacter.cpp
C:\buildworker\csgo_rel_win64\build\src\game\client\c_baseentity.cpp
C:\buildworker\csgo_rel_win64\build\src\game\client\c_baselesson.cpp
C:\buildworker\csgo_rel_win64\build\src\game\client\c_baseplayerpawn.cpp
-C:\buildworker\csgo_rel_win64\build\src\game\client\c_baseplayerpawn.cpp:1620
+C:\buildworker\csgo_rel_win64\build\src\game\client\c_baseplayerpawn.cpp:1621
C:\buildworker\csgo_rel_win64\build\src\game\client\c_effects.cpp
C:\buildworker\csgo_rel_win64\build\src\game\client\c_entitydissolve.cpp
C:\buildworker\csgo_rel_win64\build\src\game\client\c_func_monitor.cpp
@@ -13292,7 +13161,7 @@ CNetworkUtlVectorBase< uint8, NetworkVar_m_networkAnimTiming , -1, int >
CNetworkedQuantizedFloat
CNetworkedQuantizedFloat: called before encoder initialized, use DECLARE_NETWORK_QUANTIZED_FLOAT_NETWORKVAR or DECLARE_NETWORK_QUANTIZED_FLOAT to make sure the encoder is initialized;\n
CNewParticleEffect::DetectChanges
-CNmAimCSTask::TrySetupSolverData
+CNmAimCSTask::TrySetupBoneIndices
CNmBoneMaskTaskList::GenerateBoneMask
CNmChainLookatNode::CDefinition::InstantiateNode
CNmChainLookatTask::CNmChainLookatTask
@@ -13708,7 +13577,7 @@ CRenderGameSystem::OnClientPreOutputParallelWithServer
CRenderGameSystem::OnClientPreOutputParallelWithServer(), C:\buildworker\csgo_rel_win64\build\src\game\shared\rendergamesystem.cpp:1265
CRenderGameSystem::OnClientPreOutputParallelWithServer(1365):
CRenderingPipelineCS2Shadows
-CRenderingPipelineCsgo::AddLayersToView(11295):
+CRenderingPipelineCsgo::AddLayersToView(11300):
CResourceName
CResourceNameTyped
CResourcePrecacherGameSystem
@@ -14747,6 +14616,7 @@ Certified server denied
Certified server required
Cessation Of Operation
Chain Lookat
+Chain Lookat Task - Trying to perform a chain lookat on top of an additive pose, this is not allowed!
Change FOV
ChangeGameUIState: %s -> %s\n
ChangeTeammateColor
@@ -14855,7 +14725,6 @@ Clearing old .sav file %s\n
Client
Client Game
Client Main World:
-Client Messages
Client Restore Server State
Client Scene Entity %d - Frame(%d)\n
Client Soundscape data dump:\n
@@ -14872,8 +14741,6 @@ Client not allowed to do this action
Client not authenticated by server
Client registered for tournament team '%s' (%s-%s-%u)\n
Client session ID (%s).\n
-Client tick %d (%d) last exec cmd %d, predicting %d commands %d..%d\n
-Client tick %d + %.2f final predicted tick %d + %.2f, offset = %.3f seconds, %.2f ticks\n
Client update required
Client-ID
ClientCreateMoveFirst
@@ -16839,7 +16706,9 @@ Failed to load workshop compatibility versions. Demo files on old maps may not w
Failed to open file
Failed to open file handle to process chunk file \n
Failed to pack %s to vpk\n
+Failed to parse %s: %s\n
Failed to parse %s\n
+Failed to parse Source1LegacyGameEventList_t: %s\n
Failed to parse and set new panel event for %s="%s"\n
Failed to parse channel info.\n
Failed to parse cubemap fog curve (%s).\n
@@ -18186,6 +18055,7 @@ Graffiti tint name duplicate: #%d %s\n
Grail
GrandFinal
Graph
+Graph '%s' references resource '%s', which is not loaded\n
Graph Parameter Name
Graph1
Graph2
@@ -20525,6 +20395,7 @@ P-384
P-521
P2P ping to "%s". Timed out after %.2fms\n
PANORAMA_LAYOUTFILE
+PARALLAX DETAIL\t %d \t\t\t\t\t\n
PARALYZE
PARAMETER NAME: %s | OPTIONAL: %s, TYPE: %s, BOUND: %s\n
PARAMETERS
@@ -20961,6 +20832,9 @@ PanoramaUI.Lobby.GotInvited
PanoramaWorldPanelGenerateMips
PanoramaWorldPanelSystem
Paper
+ParallaxDetail
+ParallaxPanel
+ParallaxSeparator
Parameter [%s=%s]
Parameterized Clip Selector: Failed to select a valid option!
Parameterized Selector: Failed to select a valid option!
@@ -21264,6 +21138,7 @@ PostDataUpdate
PostEntityPacketReceived
PostNetworkDataReceived
PostNetworkDataReceived tick %d, ack %d cmds
+PostNetworkDataReceived: LastProcessedCommandNumber=%d, LastServerSnapshotTick=%d\n
PostPanoramaRenderingPipeline
Pre Generation KVs
PreGraphUpdate
@@ -22896,7 +22771,6 @@ SetDragPosition
SetDragRotateRadius
SetDragRotateYawLimit
SetDraggable
-SetEvent()
SetExternalAnimgraphResource
SetFlashlightAmount
SetFlashlightColor
@@ -24086,7 +23960,6 @@ Thread "%s" (ID %llu) failed to shut down
Thread32First
Thread32Next
ThreadPoolOptionsChanged
-ThreadingMain
Threshholding
Thrill
Thunder
@@ -24294,20 +24167,19 @@ Triggered by app when the user's workshop subscriptions are updated
Triggers the creation of entities in a manually-completed spawn group
TrueSight spectating prediction changing %d->%d for player slot %d?\n
TrueView active for slot %d\n
-TrueView adjust timing: Client tick %d + %.2f, desired offset %.3f sec = %.2f ticks, desired final predicted tick %d + %.2f\n
-TrueView cached command %d executed on tick %d. Client tick = %d, offset %d\n
+TrueView cached command %d executed on tick %d. Client tick = %d, offset %d, prediction offset %.2f\n
TrueView can't determine last executed command number on server from command lookahead. Desired tick %d (%d ahead).\n
+TrueView command stream for slot %d resumed after a gap. Restarting.\n
TrueView could not bracket view angles at tick %.2f. Last command created %d.\n
-TrueView could not determine prediction time offset at sim tick %d. Using 0.\n
+TrueView could not determine prediction time offset at sim tick %d. Not predicting.\n
TrueView found no newly executed command for slot %d in %d consecutive snapshots. Snapshot tick %d, last executed command %d, last created command %d.\n
TrueView inactive\n
TrueView last created command %d for slot %d is out of range of last executed command %d. Resetting last executed command.\n
TrueView not available: demo player cannot peek packets\n
TrueView not predicting slot %d: controller has no pawn\n
TrueView not running any commands: target tick %d, last snapshot tick %d\n
TrueView predicted no commands this frame. Last executed %d, last created %d, finish command %d, target tick %d.\n
-TrueView target tick %d is behind last snapshot tick %d?\n
-TrueView target time going in reverse [ %d + %.3f ] -> [ %d + %.3f ]
+TrueView target tick %d is behind last snapshot tick %d\n
TrueViewDeadOnServer
TrueViewDeadOnServerChanged
Truncated header.
@@ -25353,7 +25225,6 @@ Zipping %s (%d files)\n
[OnTickPetBookRebuild: %s] Failed to upload %d bytes to cloud file: %s\n
[RETURN R%d]
[RETURN]
-[TrueView %d] m_taiaTrueSpectateTargetTime=%d+%.3f player.m_nLastExecutedCommandNumber=%d nFirstEarlyPredictionCommand=%d\n
[Wearables] Creating new wearable (%d)
[disabled]
[dt %5.2f] velocity: %s
@@ -25369,15 +25240,22 @@ Zipping %s (%d files)\n
[not bound]
[null]
[object@%p]
+[removed]
[signon]
[spacer]
[symbol %d]
+[t%d f%d] Client tick [%d + %.2f] final predicted tick [%d + %.2f], offset = %.3f seconds, %.2f ticks\n
+[t%d f%d] Prediction done, tick base %d, last predicted cmd %d\n
+[t%d f%d] TrueView adjust timing: Client tick [%d + %.2f], desired offset %.3f sec = %.2f ticks, desired final predicted tick [%d + %.2f]\n
+[t%d f%d] TrueView m_taiaTrueSpectateTargetTime=%d+%.3f player.m_nLastExecutedCommandNumber=%d nFirstEarlyPredictionCommand=%d\n
+[t%d f%d] TrueView target time going in reverse [ %d + %.3f ] -> [ %d + %.3f ]\n
+[t%d f%d] origin %s, eye pos %s, eye angles %s\n
+[t%d f%d] server snapshot %d last exec cmd %d, predicting %d commands %d..%d\n
[unknown entity]
[{"event_id":
\%02X
\U%04lX
\W%08lX
-\fB33
\n Not After :
\n Public key OCSP hash:
\n [%d: huff+mtf
@@ -27138,6 +27016,8 @@ classic
classname is
classname missing from entity!\n
classname_global_index
+clavicle_L
+clavicle_R
clay
clean
cleanup method function failed
@@ -28060,7 +27940,6 @@ demo-tick
demo-tick-max
demo-time
demo-time-max
-demo_skip
demo_start
demo_stop
demo_timescale %f
@@ -31616,6 +31495,7 @@ materials/dev/downsample_depth.vmat
materials/dev/downsample_depth_cs.vmat
materials/dev/downsample_outlineglows.vmat
materials/dev/error_compmat.vtex
+materials/dev/frost.vtex
materials/dev/gaussian_bloom_blur.vmat
materials/dev/generalfilter_alphablended.vmat
materials/dev/glow_health_color.vmat
@@ -31643,7 +31523,6 @@ materials/dev/smoke_volume.vmat
materials/dev/smoke_volume_depth.vmat
materials/dev/smoke_volume_lpv.vmat
materials/dev/smoke_volume_mask.vmat
-materials/dev/snow_sparkle.vtex
materials/dev/update_visnode_visibility.vmat
materials/dev/upsample.vmat
materials/dev/upsample_fsr.vmat
@@ -34443,6 +34322,7 @@ setting.r_character_decal_resolution
setting.r_csgo_cmaa_enable
setting.r_csgo_fsr_upsample
setting.r_csgo_mboit_force_mixed_resolution
+setting.r_csgo_parallax
setting.r_low_latency
setting.r_particle_cables_cast_shadows
setting.r_particle_max_detail_level
@@ -34461,6 +34341,7 @@ setting.videocfg_ao_detail
setting.videocfg_dynamic_shadows
setting.videocfg_fsr_detail
setting.videocfg_hdr_detail
+setting.videocfg_parallax_detail
setting.videocfg_particle_detail
setting.videocfg_shadow_quality
setting.videocfg_texture_detail
@@ -35377,7 +35258,6 @@ timeouts_remaining
timer
timer_time
timerangeindays
-timescale
timeslice
timestamp
timestamp=%d&stat_value=%.3f&stat_index=%d&percentile=%.2f
game/csgo/bin/win64/host_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -106,7 +106,7 @@ DotaMapUtils001
EconVData001
Entry %s was not found in surfaceproperties_footsteps.txt\n
Error loading %s: %s\n
-FaN"\v
+FaN"\f
Failed to open file: %s\n
FoliageAnimation
Game System %s is defined twice!\n
game/csgo/bin/win64/matchmaking_strings.txt
modified • +0 / -3 • changes: 3
Show patch
@@ -285,7 +285,6 @@ $%llx
APPSYSTEM: In ConnectGameInterfaces(), s_nRegistrationCount is %d!\n
APPSYSTEM: In ConnectGameInterfaces(), tried to use different connection modes!\n
APPSYSTEM: In ReconnectGameInterface(), tried to use different connection modes!\n
-AddWorkItem
Adding player %llu to team %d\n
AllowSecureServers
Attempted a typeid of nullptr pointer!
@@ -596,7 +595,6 @@ Server/reservationid
Server/server
Server/xuid
SessionSearch
-SetEvent()
Settings data:\n
SetupSteamRankingConfiguration
SharedObjectCache for %s (%d types):\n
@@ -647,7 +645,6 @@ TeamSearchResult::Dedicated
TeamSearchResult::ListenClient
TeamSearchResult::ListenHost
Thread "%s" (ID %llu) failed to shut down
-ThreadingMain
TimeoutJob
TitleSettings
Trying to send message type %d before GC connection established. This is guaranteed to fail.\n
game/csgo/bin/win64/modtools_strings.txt
modified • +14 / -4 • changes: 18
Show patch
@@ -1251,6 +1251,7 @@ $modelname$_surface
.?AUCAttr_m_flTraceRadius@?1??GetStaticAttributes@CModelDocFoot@@MEAAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@
.?AUCAttr_m_flTracksConstantThreshold@?1??GetStaticAttributes@CModelDocAclParameters@@MEAAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@
.?AUCAttr_m_flTracksPrecision@?1??GetStaticAttributes@CModelDocAclParameters@@MEAAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@
+.?AUCAttr_m_flTransitionBlendTimeSeconds@?1??GetAttributeTable_Impl@CNmGraphDocAimCSNode@@SAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@
.?AUCAttr_m_flTranslationConstantThreshold@?1??GetStaticAttributes@CModelDocAclParameters@@MEAAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@
.?AUCAttr_m_flTranslationIgnoreThreshold@?1??GetStaticAttributes@CModelDocAnimConstraintRbf@@MEAAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@
.?AUCAttr_m_flTranslationWeight@?1??GetStaticAttributes@CModelDocAnimIkLockLocal@@MEAAXPEAV?$CUtlVector@PEAVIBaseToolAttr@@HV?$CUtlVectorMemory_Growable@PEAVIBaseToolAttr@@H$0A@@@@@@Z@
@@ -9176,7 +9177,6 @@ $modelname$_surface
<pair_a>
<pair_b>
<unnamed>
->fff>
@%s%s
@%s_lookFrame_0
@%s_lookFrame_1
@@ -9241,7 +9241,6 @@ Accent frame of the gesture/posture, unused
AclParameters
Action Blend Time Seconds
Action Blend Time: %.2fs
-Action Weight: %.2f
Activation Distance
Active By Default
ActiveArea
@@ -10130,7 +10129,7 @@ CModelMaterialGroupName
CModelMesh Index Buffer
CModelMeshRenderData::BuildVertexBuffersForMaterialGroups(732):
CModelMeshVertexBuffer
-CNmAimCSTask::TrySetupSolverData
+CNmAimCSTask::TrySetupBoneIndices
CNmBoneMaskTaskList::GenerateBoneMask
CNmChainLookatNode::CDefinition::InstantiateNode
CNmChainLookatTask::CNmChainLookatTask
@@ -10307,6 +10306,7 @@ Center vertices relative to the origin using average vertex position. Optionally
Chain Length
Chain Length: %d
Chain Lookat
+Chain Lookat Task - Trying to perform a chain lookat on top of an additive pose, this is not allowed!
Chain Rotation Weight
Chain Weights
Changes how the cycle time is computed. Mainly used with autolayer.\nShould not be used with AnimGraph.
@@ -11062,6 +11062,7 @@ Event ID
Event ID: %s
Event ID: Invalid
Event IDs
+Events
Events Ignored
Exact
Exclude Bones With Exact Flags
@@ -11433,6 +11434,7 @@ Has Stray Radius
Has Up Frame
Has World Collision
Has Yaw Constraint
+Head Lookat Weight: %.2f
Health Override
Heat
Heel Land Frame
@@ -12565,6 +12567,7 @@ Planarconfig tag value assumed incorrect, assuming data is contig instead of chu
Planarize
Plane Primitive
Planting Blend Time Seconds
+Planting Blend Time: %.2fs
Planting Disable Multiplier: %.2f
Plastic
Plasticity
@@ -13100,6 +13103,8 @@ Soft Link
Softbody
Software
Solver Settings
+Solver Transition Blend Time: %.2fs
+Solver Transition Weight: %.2f
Some events have invalid characters in their IDs
Some events have unset IDs
Some events have unset event classes
@@ -13458,6 +13463,7 @@ Transform Bindpose Bone
Transform Bindpose Bone [%s]
Transform Vertices
Transforms the animation by the specified values
+Transition Blend Time Seconds
Transition Conduit
Transition Event Condition
Translate the overall model by the specified vector.
@@ -13677,6 +13683,7 @@ Warp Z
Warp event is not allowed to be within the first or last frame!
Wavelength
Weapon Action
+Weapon Action Weight: %.2f
Weapon Category
Weapon Constraint
Weapon Drop
@@ -13784,7 +13791,6 @@ Zero input vector for info node!
[anim]
[cloth] | [procedural]
[procedural]
-\fB33
\n***ASSERT FAILED*** Image data section has too many channels (%d).
\n***ASSERT FAILED*** Pointer is null.
\n***ERROR*** [DecompressRle] Malformed RLE data encountered
@@ -13966,6 +13972,8 @@ applicable_to
apply_fast_sweep
applymodelspacetranslation
are_effects_mutually_exclude
+arm_lower_L
+arm_lower_R
arm_upper_L
arm_upper_R
assetTag
@@ -14128,6 +14136,8 @@ choices
choreoanchorclass
chunkCount
clamp
+clavicle_L
+clavicle_R
clear_rest_of_selection
clear_selection
close_outline_at_hard_edges
game/csgo/bin/win64/server_strings.txt
modified • +14 / -142 • changes: 156
Show patch
@@ -1157,6 +1157,7 @@ $tH@T\tI
%s PRIVATE KEY
%s Tactical Timeouts remaining was %d,
%s Tick
+%s [%d]
%s [%s%s%s]###%p
%s [%u]
%s algorithm "%s" unsupported\n
@@ -6073,6 +6074,7 @@ $tH@T\tI
.?AVCHLTVDirector@@
.?AVCHandleDummy@@
.?AVCHandleTest@@
+.?AVCHiddenFieldValuePrinter@@
.?AVCHitboxComponent@@
.?AVCHitboxSystem@@
.?AVCHitgroupDisableListSaveRestoreOps@@
@@ -6870,138 +6872,6 @@ $tH@T\tI
.?AVCProtoBufMsgMemoryPoolBase@GCSDK@@
.?AVCProtoBufNetPacket@GCSDK@@
.?AVCProtoBufSharedObjectBase@GCSDK@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BBI@V?$CBaseCmdKeyValues@VCClientMsg_CustomGameEvent@@@@$0O@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BBJ@V?$CBaseCmdKeyValues@VCClientMsg_CustomGameEventBounce@@@@$0O@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BBK@VCClientMsg_ClientUIEvent@@$0O@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BCN@VCCSUsrMsg_VGUIMenu@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BDN@VCCSUsrMsg_SendAudio@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BDO@VCCSUsrMsg_RawAudio@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEB@VCCSUsrMsg_Damage@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEC@VCCSUsrMsg_RadioText@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BED@VCCSUsrMsg_HintText@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEE@VCCSUsrMsg_KeyHintText@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEF@VCCSUsrMsg_ProcessSpottedEntityUpdate@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEH@VCCSUsrMsg_AdjustMoney@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEK@VCCSUsrMsg_KillCam@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEO@VCCSUsrMsg_MatchEndConditions@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BEP@VCCSUsrMsg_DisconnectToLobby@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFA@VCCSUsrMsg_PlayerStatsUpdate@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFJ@VCCSUsrMsg_CallVoteFailed@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFK@VCCSUsrMsg_VoteStart@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFL@VCCSUsrMsg_VotePass@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFM@VCCSUsrMsg_VoteFailed@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFN@VCCSUsrMsg_VoteSetup@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFO@VCCSUsrMsg_ServerRankRevealAll@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BFP@VCCSUsrMsg_SendLastKillerDamageToClient@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGA@VCCSUsrMsg_ServerRankUpdate@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGJ@VCCSUsrMsg_SendPlayerItemDrops@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGK@VCCSUsrMsg_RoundBackupFilenames@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGL@VCCSUsrMsg_SendPlayerItemFound@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGM@VCCSUsrMsg_ReportHit@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGN@VCCSUsrMsg_XpUpdate@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGO@VCCSUsrMsg_QuestProgress@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BGP@VCCSUsrMsg_ScoreLeaderboardData@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHA@VCCSUsrMsg_PlayerDecalDigitalSignature@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHB@VCCSUsrMsg_WeaponSound@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHC@VCCSUsrMsg_UpdateScreenHealthBar@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHD@VCCSUsrMsg_EntityOutlineHighlight@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHE@VCCSUsrMsg_SSUI@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHF@VCCSUsrMsg_SurvivalStats@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHG@VCCSUsrMsg_DisconnectToLobby@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHH@VCCSUsrMsg_EndOfMatchAllPlayersData@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHI@VCCSUsrMsg_PostRoundDamageReport@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHL@VCCSUsrMsg_RoundEndReportData@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHM@VCCSUsrMsg_CurrentRoundOdds@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHN@VCCSUsrMsg_DeepStats@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BHP@VCCSUsrMsg_ShootInfo@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BIB@VCCSUsrMsg_CounterStrafe@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BID@VCCSUsrMsg_RecurringMissionSchema@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BIE@VCCSUsrMsg_SendPlayerLoadout@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BIF@VCCSUsrMsg_WeaponMagDrop@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BIG@VCCSUsrMsg_CustomHudClicked@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJA@VCMsgTEEffectDispatch@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJB@VCMsgTEArmorRicochet@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJC@VCMsgTEBeamEntPoint@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJD@VCMsgTEBeamEnts@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJE@VCMsgTEBeamPoints@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJF@VCMsgTEBeamRing@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJI@VCMsgTEBubbles@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJJ@VCMsgTEBubbleTrail@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJK@VCMsgTEDecal@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJL@VCMsgTEWorldDecal@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJM@VCMsgTEEnergySplash@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJN@VCMsgTEFizz@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BJP@VCMsgTEGlowSprite@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKA@VCMsgTEImpact@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKB@VCMsgTEMuzzleFlash@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKC@VCMsgTEBloodStream@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKD@VCMsgTEExplosion@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKE@VCMsgTEDust@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKF@VCMsgTELargeFunnel@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKG@VCMsgTESparks@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKH@VCMsgTEPhysicsProp@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BKK@VCMsgTESmoke@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BME@VCMsgTEFireBullets@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0BMF@VCMsgPlayerBulletHit@@$04$0A@$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0GF@VCUserMessageAchievementEvent@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0GI@VCUserMessageCurrentTimescale@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0GJ@VCUserMessageDesiredTimescale@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0GK@VCUserMessageFade@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0GO@VCUserMessageHudMsg@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0GP@VCUserMessageHudText@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HB@VCUserMessageColoredText@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HC@VCUserMessageRequestState@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HD@VCUserMessageResetHUD@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HE@VCUserMessageRumble@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HF@VCUserMessageSayText@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HG@VCUserMessageSayText2@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HH@VCUserMessageSayTextChannel@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HI@VCUserMessageShake@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HJ@VCUserMessageShakeDir@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HK@VCUserMessageWaterShake@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HM@VCUserMessageTextMsg@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0HN@VCUserMessageScreenTilt@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IA@VCUserMessageVoiceMask@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IC@VCUserMessageSendAudio@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0ID@VCUserMessageItemPickup@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IE@VCUserMessageAmmoDenied@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IG@VCUserMessageShowMenu@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IH@VCUserMessageCreditsMsg@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IJ@VCEntityMessageScreenOverlay@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IL@VCEntityMessagePropagateForce@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IM@VCEntityMessageDoSpark@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IO@VCUserMessageCloseCaptionPlaceholder@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0IP@VCUserMessageCameraTransition@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JA@VCUserMessageAudioParameter@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JB@VCUserMsg_ParticleManager@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JC@VCUserMsg_HudError@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JE@V?$CBaseCmdKeyValues@VCUserMsg_CustomGameEvent@@@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JG@VCUserMessageHapticsManagerPulse@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JH@VCUserMessageHapticsManagerEffect@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JJ@VCUserMessageUpdateCssClasses@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JK@VCUserMessageServerFrameTime@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JL@VCUserMessageLagCompensationError@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JM@VCUserMessageRequestDllStatus@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0JN@VCUserMessageRequestUtilAction@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0KA@VCUserMessageRequestInventory@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0KC@VCUserMessageRequestDiagnostic@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0KF@VCUserMessage_NotifyResponseFound@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0KG@VCUserMessage_PlayResponseConditional@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0KK@VCUserMessageRemoteServerResponse@@$0N@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0MJ@VCMsgPlaceDecalEvent@@$0M@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0MK@VCMsgClearWorldDecalsEvent@@$0M@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0ML@VCMsgClearEntityDecalsEvent@@$0M@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0MM@VCMsgClearDecalsForEntityEvent@@$0M@$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0MN@VCMsgSource1LegacyGameEventList@@$09$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0MO@VCMsgSource1LegacyListenEvents@@$09$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0MP@VCMsgSource1LegacyGameEvent@@$04$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0NA@VCMsgSosStartSoundEvent@@$03$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0NB@VCMsgSosStopSoundEvent@@$03$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0NC@VCMsgSosSetSoundEventParams@@$03$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0ND@VCMsgSosSetLibraryStackFields@@$03$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0NE@VCMsgSosStopSoundEventHash@@$03$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0NF@VCMsgClothStiffenAnimEvent@@$04$00$00@@
-.?AVCProtobufBinding@?$CNetMessagePB@$0NG@VCMsgClothEffectAnimEvent@@$04$00$00@@
.?AVCPulseAPIExtensionRegistrationContext@@
.?AVCPulseBlackboardViewFromGraphInstance@@
.?AVCPulseCell_ApplyAnimGraphParam@@
@@ -7101,7 +6971,6 @@ $tH@T\tI
.?AVCReadyForMatchIssue@@
.?AVCRecipientFilter@@
.?AVCRectLight@@
-.?AVCRefCount@GCSDK@@
.?AVCReliableBroadcastRecipientFilter@@
.?AVCReliableSingleUserRecipientFilter@@
.?AVCReloadMatchFilter@@
@@ -8811,7 +8680,6 @@ AddTeamMoney
AddTeamScore
AddVelocity
AddViewsToSceneSystem
-AddWorkItem
Added area %d. ( to go there: setpos %f %f %f )\n
Additive Blend
Additive Blend (Masked): %.2f%%
@@ -9340,6 +9208,7 @@ C:\buildworker\csgo_rel_win64\build\src\animlib\tasksystem\animbonemasktask.cpp
C:\buildworker\csgo_rel_win64\build\src\animlib\tasksystem\animtaskposepool.cpp
C:\buildworker\csgo_rel_win64\build\src\animlib\tasksystem\animtasksystem.cpp
C:\buildworker\csgo_rel_win64\build\src\animlib\tasksystem\tasks\animtask_chainlookat.cpp
+C:\buildworker\csgo_rel_win64\build\src\common\protobuf_helpers.cpp
C:\buildworker\csgo_rel_win64\build\src\entity2\entity2_networking.cpp
C:\buildworker\csgo_rel_win64\build\src\entity2\entitykeyvalues.cpp
C:\buildworker\csgo_rel_win64\build\src\entity2\entitysystem.cpp
@@ -9527,7 +9396,7 @@ CAnimGraphControllerManager::CreateAndBindController
CAnimGraphControllerManager::CreateControllerToGraphBindings
CAnimGraphControllerManager::PreGraphUpdate
CAnimGraphGameSystem::OnServerPrePackEntities
-CAnimGraphGameSystem::OnServerPrePackEntities(), C:\buildworker\csgo_rel_win64\build\src\game\shared\animgraph_gamesystem.cpp:2434
+CAnimGraphGameSystem::OnServerPrePackEntities(), C:\buildworker\csgo_rel_win64\build\src\game\shared\animgraph_gamesystem.cpp:2436
CAnimGraphGameSystem::PreUpdateAnimGraphAnimations
CAnimGraphParamAutoResetRef
CAnimGraphParamRef
@@ -11318,7 +11187,7 @@ CNetworkUtlVectorEmbedded: successfully late-resolved 0x%p in entity %d:%s to %s
CNetworkUtlVectorFull
CNetworkedQuantizedFloat
CNetworkedQuantizedFloat: called before encoder initialized, use DECLARE_NETWORK_QUANTIZED_FLOAT_NETWORKVAR or DECLARE_NETWORK_QUANTIZED_FLOAT to make sure the encoder is initialized;\n
-CNmAimCSTask::TrySetupSolverData
+CNmAimCSTask::TrySetupBoneIndices
CNmBoneMaskTaskList::GenerateBoneMask
CNmChainLookatNode::CDefinition::InstantiateNode
CNmChainLookatTask::CNmChainLookatTask
@@ -12830,6 +12699,7 @@ Certificate Sign
Certificate:\n
Cessation Of Operation
Chain Lookat
+Chain Lookat Task - Trying to perform a chain lookat on top of an additive pose, this is not allowed!
Change FOV
Change Level
Change Opvar Value
@@ -12897,7 +12767,6 @@ ClearDecalsForEntityEvent_t
ClearEntityDecalsEvent_t
ClearWorldDecalsEvent_t
Clearing old .sav file %s\n
-Client Messages
ClientCommand
ClientGamePrecache_server
ClientJob_EMsgGCCStrike15_v2_GC2ServerReservationUpdate
@@ -14234,6 +14103,7 @@ Event.HostageRescued
EventID
EventLog
EventQueue
+Events
Exception during CompileModule\n%s\n at (%s:%d:%d)\n
Exception during Evaluate\n%s\n
Exception during InstantiateModule\n%s\n
@@ -17049,7 +16919,6 @@ PassthroughCaller: %s
Path Discarded Immediately
Path segment [%d/%d] has no area
PathFind_NavAreaBuildPath
-Path_RemoveAll failed for read only CFieldPath
Pathfind to leader failed.\n
PathfindGeneric
PathfindGeneric - failed
@@ -17585,7 +17454,7 @@ ReadyForMatch
Reasons
Recast
Recast:
-Received %d perf samples from player %d '%s'
+Received %d perf samples from player %d '%s'\n
Received client welcome from GC.\n
Received method callback. Handle: %llu. Context: %llu. EResult: %d. Response Size: %d.\n
Received new item acknowledgement: %s\n
@@ -18836,7 +18705,6 @@ SetDialogVariableStringForPlayer
SetDistanceToReachMaxSpeed [distance=%.2f time=%.2f]
SetDistanceToReachZeroSpeed [distance=%.2f time=%.2f]
SetEntityName
-SetEvent()
SetExternalAnimgraphResource
SetEyeAngles
SetFloat(name, val) : sets the value of the convar to the float.
@@ -19493,7 +19361,6 @@ This is the overall duration. If -1 timer will continue forever. During this dur
Thread "%s" (ID %llu) failed to shut down
Thread32First
Thread32Next
-ThreadingMain
ThreeEnemiesLeft
Throwing smoke grenade!
Ticks: %d (%d)
@@ -19939,6 +19806,7 @@ VisMon: RESET\n
VisMon: Starting at element: %d\n
VisMon: Time: %f - Tracking %d Entities. (Max:%d)\n
VisibilityMonitor
+Voice
VoiceBank
VoicePitch
Volume Matches Event Ramp
@@ -20564,11 +20432,11 @@ Zero input vector for info node!
[net] %s
[none]
[null]
+[removed]
[unknown entity]
\%02X
\U%04lX
\W%08lX
-\fB33
\n Not After :
\n Public key OCSP hash:
\n at %s (%s:%d:%d)
@@ -21106,6 +20974,8 @@ arealist
arg%d
arg2 lt arg3
argument is not a number
+arm_lower_L
+arm_lower_R
arm_upper_L
arm_upper_R
armor
@@ -21736,6 +21606,8 @@ class_usage
classdefidx:
classic
classname missing from entity!\n
+clavicle_L
+clavicle_R
cleanup method function failed
clear_group
clearance
game/csgo/cfg/gamemode_retakecasual.cfg
modified • +2 / -0 • changes: 2
Show patch
@@ -99,6 +99,8 @@ mp_default_team_winner_no_objective -1 // 2 == CTs, 3 == Ts
//sv_occlude_players 1
//occlusion_test_async 1
+mp_bot_ai_bt "scripts/ai/retakes/bt_default.kv3"
+
spec_replay_enable 0
mp_round_restart_delay 3
game/csgo/csgo.fgd
modified • +1 / -0 • changes: 1
Show patch
@@ -1415,6 +1415,7 @@
envpuddlerippledirection(float) : "Environment Puddle Ripple Direction" : "0" : "Rotates the puddle ripples (0 to 1, i.e. 0.5 is reversed, 0.25 is 90 degrees)."
envwetnesscoverage(float) : "Environment Wetness Coverage" : "1" : "How wet the environment was before drying."
envwetnessdryingamount(float) : "Environment Wetness Drying Amount" : "0" : "How much the environment dried out."
+ frostenabled(boolean) : "Player frost enabled" : 0 : "Players, weapons and chickens frost over outdoors (traces to the sky), and melt indoors."
input FireWinCondition(integer) : "Fires win conditions for the win."
]
game/csgo/gameinfo.gi
modified • +12 / -1 • changes: 13
Show patch
@@ -9,6 +9,7 @@
FileSystem
{
+ ForceUseBuildVersion 1
SteamAppId 710 // This will mount all the GCFs we need (240=CS:S, 220=HL2).
SearchPaths
{
@@ -130,7 +131,16 @@
"r_add_views_in_pre_output" "1"
// Limits
- "sv_recvbuf_messages" "500"
+ "net_limit_sv_recvbuffer_kb" "128"
+ "net_limit_sv_recvbuffer_msg" "100"
+ "net_limit_sv_recv_max_frame_size_kb" "40"
+ "net_limit_sv_recv_chan_buffer_messages" "500"
+ "net_limit_sv_recv_chan_msgs_per_frame" "250"
+ "net_limit_sv_message_process_time_ms_warn_burst" "20"
+ "net_limit_sv_message_process_time_ms_warn_rate_per_sec" "128" // 2ms/tick
+ "net_limit_sv_message_process_time_ms_drop_burst" "200"
+ "net_limit_sv_message_process_time_ms_drop_rate_per_sec" "256" // 4ms/tick
+ "net_message_size_enforce" "2"
// Nav fixups
"nav_path_fixup_climb_up_segments" "1"
@@ -276,6 +286,7 @@
"cq_buffer_bloat_msecs_max" "64"
"cl_interp_ag2_for_non_ag2_entities" "0"
+ "cl_interp_parallel" "1"
"r_skip_precache_validation_check" "1"
game/csgo/pak01_dir.txt
modified • +184 / -175 • changes: 359
Show patch
@@ -2171,46 +2171,46 @@ animation/anims/world/pistol/_default_pistol/walk_sw_pistol.vnmclip_c CRC:00ea41
animation/anims/world/pistol/_default_pistol/walk_w_fwd_pistol.vnmclip_c CRC:00104820e2 size:8594
animation/anims/world/pistol/_default_pistol/walk_w_mir_pistol.vnmclip_c CRC:00740a3272 size:9019
animation/anims/world/pistol/_default_pistol/walk_w_pistol.vnmclip_c CRC:006e0a2d7d size:9640
-animation/anims/world/pistol/pistol_cz75a/draw2_crouch_cz75a.vnmclip_c CRC:00fdac71e2 size:21134
-animation/anims/world/pistol/pistol_cz75a/draw2_cz75a.vnmclip_c CRC:0047d79d49 size:24396
-animation/anims/world/pistol/pistol_cz75a/draw_crouch_cz75a.vnmclip_c CRC:00e64e1113 size:24998
-animation/anims/world/pistol/pistol_cz75a/draw_cz75a.vnmclip_c CRC:008409008c size:26801
+animation/anims/world/pistol/pistol_cz75a/draw2_crouch_cz75a.vnmclip_c CRC:008c49b167 size:21134
+animation/anims/world/pistol/pistol_cz75a/draw2_cz75a.vnmclip_c CRC:00e6bf33f7 size:24500
+animation/anims/world/pistol/pistol_cz75a/draw_crouch_cz75a.vnmclip_c CRC:00421bdd4e size:24998
+animation/anims/world/pistol/pistol_cz75a/draw_cz75a.vnmclip_c CRC:0052065328 size:26799
animation/anims/world/pistol/pistol_cz75a/idle_crouch_cz75a.vnmclip+non_additive.vnmclip_c CRC:0095a88ce3 size:4562
animation/anims/world/pistol/pistol_cz75a/idle_crouch_cz75a.vnmclip_c CRC:0080bb81b7 size:4178
animation/anims/world/pistol/pistol_cz75a/idle_cz75a.vnmclip+non_additive.vnmclip_c CRC:00e05afd0a size:4574
animation/anims/world/pistol/pistol_cz75a/idle_cz75a.vnmclip_c CRC:00d173c7f4 size:3846
-animation/anims/world/pistol/pistol_cz75a/reload2_crouch_cz75a.vnmclip_c CRC:0065298e6e size:30784
-animation/anims/world/pistol/pistol_cz75a/reload2_crouch_cz75a_silent.vnmclip_c CRC:0085e4368d size:30800
-animation/anims/world/pistol/pistol_cz75a/reload2_cz75a.vnmclip_c CRC:00469ab3f5 size:33552
-animation/anims/world/pistol/pistol_cz75a/reload2_cz75a_silent.vnmclip_c CRC:00b5fef242 size:33552
+animation/anims/world/pistol/pistol_cz75a/reload2_crouch_cz75a.vnmclip_c CRC:00db64b333 size:30783
+animation/anims/world/pistol/pistol_cz75a/reload2_crouch_cz75a_silent.vnmclip_c CRC:002ae20d9a size:30799
+animation/anims/world/pistol/pistol_cz75a/reload2_cz75a.vnmclip_c CRC:001e252bc4 size:33551
+animation/anims/world/pistol/pistol_cz75a/reload2_cz75a_silent.vnmclip_c CRC:009fc54fcb size:33551
animation/anims/world/pistol/pistol_cz75a/reload2_empty_crouch_cz75a.vnmclip_c CRC:00701c0443 size:24549
animation/anims/world/pistol/pistol_cz75a/reload2_empty_cz75a.vnmclip_c CRC:00adbd83dd size:26806
-animation/anims/world/pistol/pistol_cz75a/reload_crouch_cz75a.vnmclip_c CRC:00c9f86b11 size:29807
-animation/anims/world/pistol/pistol_cz75a/reload_crouch_cz75a_silent.vnmclip_c CRC:00126aa2ea size:29823
-animation/anims/world/pistol/pistol_cz75a/reload_cz75a.vnmclip_c CRC:0005129c13 size:32367
-animation/anims/world/pistol/pistol_cz75a/reload_cz75a_silent.vnmclip_c CRC:00cb1e548b size:32367
+animation/anims/world/pistol/pistol_cz75a/reload_crouch_cz75a.vnmclip_c CRC:00a7aec517 size:29806
+animation/anims/world/pistol/pistol_cz75a/reload_crouch_cz75a_silent.vnmclip_c CRC:002e0693b0 size:29822
+animation/anims/world/pistol/pistol_cz75a/reload_cz75a.vnmclip_c CRC:0007510275 size:32366
+animation/anims/world/pistol/pistol_cz75a/reload_cz75a_silent.vnmclip_c CRC:00ad181578 size:32366
animation/anims/world/pistol/pistol_cz75a/reload_empty_crouch_cz75a.vnmclip_c CRC:00c4bbca89 size:28535
animation/anims/world/pistol/pistol_cz75a/reload_empty_cz75a.vnmclip_c CRC:00f8cf3f4c size:28056
animation/anims/world/pistol/pistol_cz75a/shoot_cz75.vnmclip+non_additive.vnmclip_c CRC:005f0e57f6 size:9584
animation/anims/world/pistol/pistol_cz75a/shoot_cz75.vnmclip_c CRC:00a72f6894 size:8576
animation/anims/world/pistol/pistol_cz75a/shoot_empty_cz75.vnmclip+non_additive.vnmclip_c CRC:00b055435b size:9512
animation/anims/world/pistol/pistol_cz75a/shoot_empty_cz75.vnmclip_c CRC:00804a57de size:8509
-animation/anims/world/pistol/pistol_deagle/draw_crouch_deagle.vnmclip_c CRC:00fa0db667 size:15579
-animation/anims/world/pistol/pistol_deagle/draw_deagle.vnmclip_c CRC:005fd785a3 size:15729
+animation/anims/world/pistol/pistol_deagle/draw_crouch_deagle.vnmclip_c CRC:008239c49e size:15576
+animation/anims/world/pistol/pistol_deagle/draw_deagle.vnmclip_c CRC:00fc360ee5 size:15726
animation/anims/world/pistol/pistol_deagle/idle_crouch_deagle.vnmclip+non_additive.vnmclip_c CRC:00d3f770b9 size:4557
animation/anims/world/pistol/pistol_deagle/idle_crouch_deagle.vnmclip_c CRC:00f7b4c9fd size:4189
animation/anims/world/pistol/pistol_deagle/idle_deagle.vnmclip+non_additive.vnmclip_c CRC:00994a05bc size:4580
animation/anims/world/pistol/pistol_deagle/idle_deagle.vnmclip_c CRC:00ced1d061 size:4183
-animation/anims/world/pistol/pistol_deagle/reload_crouch_deagle.vnmclip_c CRC:00d2ae9509 size:22484
-animation/anims/world/pistol/pistol_deagle/reload_crouch_deagle_silent.vnmclip_c CRC:00e87b52a4 size:22484
-animation/anims/world/pistol/pistol_deagle/reload_deagle.vnmclip_c CRC:00fe44e4dd size:22912
-animation/anims/world/pistol/pistol_deagle/reload_deagle_silent.vnmclip_c CRC:0097557012 size:22928
-animation/anims/world/pistol/pistol_deagle/reload_empty_crouch_deagle.vnmclip_c CRC:00621977b3 size:26917
+animation/anims/world/pistol/pistol_deagle/reload_crouch_deagle.vnmclip_c CRC:00a8eb5fa0 size:22485
+animation/anims/world/pistol/pistol_deagle/reload_crouch_deagle_silent.vnmclip_c CRC:00883a75e6 size:22485
+animation/anims/world/pistol/pistol_deagle/reload_deagle.vnmclip_c CRC:0038c195b3 size:22912
+animation/anims/world/pistol/pistol_deagle/reload_deagle_silent.vnmclip_c CRC:002523e07e size:22928
+animation/anims/world/pistol/pistol_deagle/reload_empty_crouch_deagle.vnmclip_c CRC:00d231f827 size:26917
animation/anims/world/pistol/pistol_deagle/reload_empty_deagle.vnmclip_c CRC:00d44fc733 size:27989
animation/anims/world/pistol/pistol_deagle/shoot_deagle.vnmclip+non_additive.vnmclip_c CRC:0069fd4c29 size:9475
animation/anims/world/pistol/pistol_deagle/shoot_deagle.vnmclip_c CRC:0029fb40b1 size:8728
-animation/anims/world/pistol/pistol_elite/draw_crouch_elite.vnmclip_c CRC:008418b939 size:16360
-animation/anims/world/pistol/pistol_elite/draw_elite.vnmclip_c CRC:00ccf9a431 size:16029
+animation/anims/world/pistol/pistol_elite/draw_crouch_elite.vnmclip_c CRC:009ce165e8 size:16357
+animation/anims/world/pistol/pistol_elite/draw_elite.vnmclip_c CRC:00e9f71850 size:16028
animation/anims/world/pistol/pistol_elite/idle_crouch_elite.vnmclip+non_additive.vnmclip_c CRC:00a1697b96 size:5137
animation/anims/world/pistol/pistol_elite/idle_crouch_elite.vnmclip_c CRC:00d68ad74b size:4990
animation/anims/world/pistol/pistol_elite/idle_elite.vnmclip+non_additive.vnmclip_c CRC:00594725b7 size:5139
@@ -2227,22 +2227,22 @@ animation/anims/world/pistol/pistol_elite/shoot_right1_elite.vnmclip+non_additiv
animation/anims/world/pistol/pistol_elite/shoot_right1_elite.vnmclip_c CRC:005dfb0686 size:6125
animation/anims/world/pistol/pistol_elite/shoot_rightlast_elite.vnmclip+non_additive.vnmclip_c CRC:00a92e080a size:7161
animation/anims/world/pistol/pistol_elite/shoot_rightlast_elite.vnmclip_c CRC:00ef0bb74a size:5170
-animation/anims/world/pistol/pistol_fiveseven/draw_crouch_fiveseven.vnmclip_c CRC:009fe09595 size:16678
-animation/anims/world/pistol/pistol_fiveseven/draw_fiveseven.vnmclip_c CRC:004a11faa1 size:16823
+animation/anims/world/pistol/pistol_fiveseven/draw_crouch_fiveseven.vnmclip_c CRC:005e4e8b00 size:16696
+animation/anims/world/pistol/pistol_fiveseven/draw_fiveseven.vnmclip_c CRC:0036485288 size:16821
animation/anims/world/pistol/pistol_fiveseven/idle_crouch_fiveseven.vnmclip+non_additive.vnmclip_c CRC:00406510c3 size:4584
animation/anims/world/pistol/pistol_fiveseven/idle_crouch_fiveseven.vnmclip_c CRC:00e85df5b3 size:3873
animation/anims/world/pistol/pistol_fiveseven/idle_fiveseven.vnmclip+non_additive.vnmclip_c CRC:00bb1f78ee size:4573
animation/anims/world/pistol/pistol_fiveseven/idle_fiveseven.vnmclip_c CRC:007f548b31 size:3810
-animation/anims/world/pistol/pistol_fiveseven/reload_crouch_fiveseven.vnmclip_c CRC:009c2c3f20 size:29347
-animation/anims/world/pistol/pistol_fiveseven/reload_crouch_fiveseven_silent.vnmclip_c CRC:007e4060fe size:29347
+animation/anims/world/pistol/pistol_fiveseven/reload_crouch_fiveseven.vnmclip_c CRC:00eaf1d989 size:29347
+animation/anims/world/pistol/pistol_fiveseven/reload_crouch_fiveseven_silent.vnmclip_c CRC:0097798fbd size:29347
animation/anims/world/pistol/pistol_fiveseven/reload_empty_crouch_fiveseven.vnmclip_c CRC:008c976616 size:21186
animation/anims/world/pistol/pistol_fiveseven/reload_empty_fiveseven.vnmclip_c CRC:00365b301d size:21442
-animation/anims/world/pistol/pistol_fiveseven/reload_fiveseven.vnmclip_c CRC:00ebd0cf1b size:30024
-animation/anims/world/pistol/pistol_fiveseven/reload_fiveseven_silent.vnmclip_c CRC:00d161a75e size:30040
+animation/anims/world/pistol/pistol_fiveseven/reload_fiveseven.vnmclip_c CRC:00855a2a52 size:30024
+animation/anims/world/pistol/pistol_fiveseven/reload_fiveseven_silent.vnmclip_c CRC:007893e3af size:30040
animation/anims/world/pistol/pistol_fiveseven/shoot_fiveseven.vnmclip+non_additive.vnmclip_c CRC:00f81c0342 size:9373
animation/anims/world/pistol/pistol_fiveseven/shoot_fiveseven.vnmclip_c CRC:00f29873c0 size:8387
-animation/anims/world/pistol/pistol_glock/draw_crouch_glock.vnmclip_c CRC:003b9ee0a1 size:16727
-animation/anims/world/pistol/pistol_glock/draw_glock.vnmclip_c CRC:00f71fc3f0 size:16696
+animation/anims/world/pistol/pistol_glock/draw_crouch_glock.vnmclip_c CRC:0096d93dd0 size:16724
+animation/anims/world/pistol/pistol_glock/draw_glock.vnmclip_c CRC:00cd278793 size:16699
animation/anims/world/pistol/pistol_glock/idle_crouch_glock.vnmclip+non_additive.vnmclip_c CRC:000a39ae26 size:4570
animation/anims/world/pistol/pistol_glock/idle_crouch_glock.vnmclip_c CRC:002ef727da size:4209
animation/anims/world/pistol/pistol_glock/idle_glock.vnmclip+non_additive.vnmclip_c CRC:009fd4e306 size:4576
@@ -2255,22 +2255,22 @@ animation/anims/world/pistol/pistol_glock/reload_glock.vnmclip_c CRC:00a05e03c3
animation/anims/world/pistol/pistol_glock/reload_glock_silent.vnmclip_c CRC:0048730161 size:24030
animation/anims/world/pistol/pistol_glock/shoot_glock.vnmclip+non_additive.vnmclip_c CRC:00c2eb968b size:9318
animation/anims/world/pistol/pistol_glock/shoot_glock.vnmclip_c CRC:004a979a8e size:8394
-animation/anims/world/pistol/pistol_hkp2000/draw_crouch_hkp.vnmclip_c CRC:00ba9d6458 size:13764
-animation/anims/world/pistol/pistol_hkp2000/draw_hkp.vnmclip_c CRC:009e6c9ec2 size:14024
+animation/anims/world/pistol/pistol_hkp2000/draw_crouch_hkp.vnmclip_c CRC:000ef0bbcd size:13759
+animation/anims/world/pistol/pistol_hkp2000/draw_hkp.vnmclip_c CRC:00e7710213 size:14021
animation/anims/world/pistol/pistol_hkp2000/idle_crouch_hkp.vnmclip+non_additive.vnmclip_c CRC:00b9a9da4f size:4588
animation/anims/world/pistol/pistol_hkp2000/idle_crouch_hkp.vnmclip_c CRC:005844c4c9 size:3854
animation/anims/world/pistol/pistol_hkp2000/idle_hkp.vnmclip+non_additive.vnmclip_c CRC:00c5340311 size:4562
animation/anims/world/pistol/pistol_hkp2000/idle_hkp.vnmclip_c CRC:0011e8f334 size:3820
-animation/anims/world/pistol/pistol_hkp2000/reload_crouch_hkp.vnmclip_c CRC:00317eefa8 size:23111
+animation/anims/world/pistol/pistol_hkp2000/reload_crouch_hkp.vnmclip_c CRC:00f2351a42 size:23111
animation/anims/world/pistol/pistol_hkp2000/reload_crouch_hkp_silent.vnmclip_c CRC:0038027856 size:23111
animation/anims/world/pistol/pistol_hkp2000/reload_empty_crouch_hkp.vnmclip_c CRC:00b0b94348 size:23332
animation/anims/world/pistol/pistol_hkp2000/reload_empty_hkp.vnmclip_c CRC:003c906952 size:24379
-animation/anims/world/pistol/pistol_hkp2000/reload_hkp.vnmclip_c CRC:00b7f27536 size:23026
-animation/anims/world/pistol/pistol_hkp2000/reload_hkp_silent.vnmclip_c CRC:00c3bd5c41 size:23026
+animation/anims/world/pistol/pistol_hkp2000/reload_hkp.vnmclip_c CRC:0035f8b901 size:23025
+animation/anims/world/pistol/pistol_hkp2000/reload_hkp_silent.vnmclip_c CRC:00bdf47baa size:23041
animation/anims/world/pistol/pistol_hkp2000/shoot_hkp.vnmclip+non_additive.vnmclip_c CRC:001d3d00de size:9460
animation/anims/world/pistol/pistol_hkp2000/shoot_hkp.vnmclip_c CRC:00246a8018 size:8437
-animation/anims/world/pistol/pistol_p250/draw_crouch_p250.vnmclip_c CRC:00b3e39359 size:16490
-animation/anims/world/pistol/pistol_p250/draw_p250.vnmclip_c CRC:002124c8c5 size:16671
+animation/anims/world/pistol/pistol_p250/draw_crouch_p250.vnmclip_c CRC:002569adf0 size:16490
+animation/anims/world/pistol/pistol_p250/draw_p250.vnmclip_c CRC:00cd3e9a76 size:16676
animation/anims/world/pistol/pistol_p250/idle_crouch_p250.vnmclip+non_additive.vnmclip_c CRC:00ae48a9e9 size:4560
animation/anims/world/pistol/pistol_p250/idle_crouch_p250.vnmclip_c CRC:00d0665a4d size:4000
animation/anims/world/pistol/pistol_p250/idle_p250.vnmclip+non_additive.vnmclip_c CRC:00b97d36d6 size:4581
@@ -2283,10 +2283,10 @@ animation/anims/world/pistol/pistol_p250/reload_p250.vnmclip_c CRC:0060b88d1b si
animation/anims/world/pistol/pistol_p250/reload_p250_silent.vnmclip_c CRC:00dafe3bac size:30193
animation/anims/world/pistol/pistol_p250/shoot_p250.vnmclip+non_additive.vnmclip_c CRC:00c09db906 size:9309
animation/anims/world/pistol/pistol_p250/shoot_p250.vnmclip_c CRC:0096dca4e1 size:8295
-animation/anims/world/pistol/pistol_revolver/draw2_crouch_revolver.vnmclip_c CRC:00dedf370d size:17859
-animation/anims/world/pistol/pistol_revolver/draw2_revolver.vnmclip_c CRC:00341030af size:18092
-animation/anims/world/pistol/pistol_revolver/draw_crouch_revolver.vnmclip_c CRC:00858b699d size:16065
-animation/anims/world/pistol/pistol_revolver/draw_revolver.vnmclip_c CRC:003dc8910f size:16314
+animation/anims/world/pistol/pistol_revolver/draw2_crouch_revolver.vnmclip_c CRC:0051b5ba43 size:17862
+animation/anims/world/pistol/pistol_revolver/draw2_revolver.vnmclip_c CRC:00b3639022 size:18095
+animation/anims/world/pistol/pistol_revolver/draw_crouch_revolver.vnmclip_c CRC:00be145989 size:16070
+animation/anims/world/pistol/pistol_revolver/draw_revolver.vnmclip_c CRC:0076bbfe22 size:16317
animation/anims/world/pistol/pistol_revolver/idle_crouch_revolver.vnmclip+non_additive.vnmclip_c CRC:00a6a66b02 size:5071
animation/anims/world/pistol/pistol_revolver/idle_crouch_revolver.vnmclip_c CRC:00b010ebd6 size:4688
animation/anims/world/pistol/pistol_revolver/idle_revolver.vnmclip+non_additive.vnmclip_c CRC:00d245fa93 size:5115
@@ -2299,16 +2299,16 @@ animation/anims/world/pistol/pistol_revolver/shoot_alt_revolver.vnmclip+non_addi
animation/anims/world/pistol/pistol_revolver/shoot_alt_revolver.vnmclip_c CRC:002d900e71 size:13664
animation/anims/world/pistol/pistol_revolver/shoot_revolver.vnmclip+non_additive.vnmclip_c CRC:00d7e81056 size:9384
animation/anims/world/pistol/pistol_revolver/shoot_revolver.vnmclip_c CRC:00c6d027de size:8115
-animation/anims/world/pistol/pistol_taser/draw_crouch_taser.vnmclip_c CRC:00f98af2af size:16055
-animation/anims/world/pistol/pistol_taser/draw_taser.vnmclip_c CRC:00121e435c size:15909
+animation/anims/world/pistol/pistol_taser/draw_crouch_taser.vnmclip_c CRC:009b17626c size:16052
+animation/anims/world/pistol/pistol_taser/draw_taser.vnmclip_c CRC:00ec1a69d2 size:15907
animation/anims/world/pistol/pistol_taser/idle_crouch_taser.vnmclip+non_additive.vnmclip_c CRC:003978e04d size:4567
animation/anims/world/pistol/pistol_taser/idle_crouch_taser.vnmclip_c CRC:003ac85604 size:4218
animation/anims/world/pistol/pistol_taser/idle_taser.vnmclip+non_additive.vnmclip_c CRC:0071aa4d24 size:4582
animation/anims/world/pistol/pistol_taser/idle_taser.vnmclip_c CRC:003a456313 size:4231
animation/anims/world/pistol/pistol_taser/shoot_taser.vnmclip+non_additive.vnmclip_c CRC:00024eaa51 size:9073
animation/anims/world/pistol/pistol_taser/shoot_taser.vnmclip_c CRC:00c5d60b61 size:8078
-animation/anims/world/pistol/pistol_tec9/draw_crouch_tec9.vnmclip_c CRC:00d7472dbf size:16995
-animation/anims/world/pistol/pistol_tec9/draw_tec9.vnmclip_c CRC:000c9263ba size:16831
+animation/anims/world/pistol/pistol_tec9/draw_crouch_tec9.vnmclip_c CRC:0055de9520 size:16993
+animation/anims/world/pistol/pistol_tec9/draw_tec9.vnmclip_c CRC:00f20ece79 size:16831
animation/anims/world/pistol/pistol_tec9/idle_crouch_tec9.vnmclip+non_additive.vnmclip_c CRC:00361fd0ca size:4558
animation/anims/world/pistol/pistol_tec9/idle_crouch_tec9.vnmclip_c CRC:00c0c3bb2b size:4375
animation/anims/world/pistol/pistol_tec9/idle_tec9.vnmclip+non_additive.vnmclip_c CRC:009ac4804b size:4565
@@ -2319,8 +2319,8 @@ animation/anims/world/pistol/pistol_tec9/reload_tec9.vnmclip_c CRC:00d6151d02 si
animation/anims/world/pistol/pistol_tec9/reload_tec9_silent.vnmclip_c CRC:00b3223879 size:33238
animation/anims/world/pistol/pistol_tec9/shoot_tec9.vnmclip+non_additive.vnmclip_c CRC:00b8ee937b size:7350
animation/anims/world/pistol/pistol_tec9/shoot_tec9.vnmclip_c CRC:0041de4e0e size:6271
-animation/anims/world/pistol/pistol_usp/draw_crouch_pistol.vnmclip_c CRC:0069db1ad6 size:16809
-animation/anims/world/pistol/pistol_usp/draw_usp.vnmclip_c CRC:000f3b8680 size:17117
+animation/anims/world/pistol/pistol_usp/draw_crouch_pistol.vnmclip_c CRC:00532f8257 size:16807
+animation/anims/world/pistol/pistol_usp/draw_usp.vnmclip_c CRC:008bdacef9 size:17115
animation/anims/world/pistol/pistol_usp/idle_crouch_usp.vnmclip+non_additive.vnmclip_c CRC:00d8791597 size:4982
animation/anims/world/pistol/pistol_usp/idle_crouch_usp.vnmclip_c CRC:00eb502f9b size:3010
animation/anims/world/pistol/pistol_usp/idle_usp.vnmclip+non_additive.vnmclip_c CRC:001730c190 size:4972
@@ -2530,44 +2530,44 @@ animation/anims/world/rifle/_default_rifle/walk_sw_rifle.vnmclip_c CRC:00d722a24
animation/anims/world/rifle/_default_rifle/walk_w_fwd_rifle.vnmclip_c CRC:000e8701b1 size:8368
animation/anims/world/rifle/_default_rifle/walk_w_mir_rifle.vnmclip_c CRC:0087cdaca5 size:8649
animation/anims/world/rifle/_default_rifle/walk_w_rifle.vnmclip_c CRC:00ff2021a9 size:9777
-animation/anims/world/rifle/rifle_ak/draw_ak.vnmclip_c CRC:00097a591f size:15548
-animation/anims/world/rifle/rifle_ak/draw_crouch_ak.vnmclip_c CRC:00e6b28ad6 size:16839
+animation/anims/world/rifle/rifle_ak/draw_ak.vnmclip_c CRC:00fdea3dc9 size:15551
+animation/anims/world/rifle/rifle_ak/draw_crouch_ak.vnmclip_c CRC:00c680363e size:16840
animation/anims/world/rifle/rifle_ak/idle_ak.vnmclip+non_additive.vnmclip_c CRC:00cd0f48bc size:4581
animation/anims/world/rifle/rifle_ak/idle_ak.vnmclip_c CRC:00ec4a3b7f size:4222
animation/anims/world/rifle/rifle_ak/idle_crouch_ak.vnmclip+non_additive.vnmclip_c CRC:00b3b14bfe size:4575
animation/anims/world/rifle/rifle_ak/idle_crouch_ak.vnmclip_c CRC:0017fdc3df size:4433
-animation/anims/world/rifle/rifle_ak/reload_ak.vnmclip_c CRC:0087f4fcac size:23759
+animation/anims/world/rifle/rifle_ak/reload_ak.vnmclip_c CRC:00164452c3 size:23759
animation/anims/world/rifle/rifle_ak/reload_ak_silent.vnmclip_c CRC:009d7c96ac size:23759
-animation/anims/world/rifle/rifle_ak/reload_crouch_ak.vnmclip_c CRC:00d58e2490 size:23719
-animation/anims/world/rifle/rifle_ak/reload_crouch_ak_silent.vnmclip_c CRC:00c03a0594 size:23735
+animation/anims/world/rifle/rifle_ak/reload_crouch_ak.vnmclip_c CRC:00b18af1db size:23826
+animation/anims/world/rifle/rifle_ak/reload_crouch_ak_silent.vnmclip_c CRC:00b77aa910 size:23842
animation/anims/world/rifle/rifle_ak/shoot_ak.vnmclip+non_additive.vnmclip_c CRC:003a26deb2 size:9686
animation/anims/world/rifle/rifle_ak/shoot_ak.vnmclip_c CRC:009f945a62 size:8597
-animation/anims/world/rifle/rifle_aug/draw_aug.vnmclip_c CRC:00e7734bc7 size:17341
-animation/anims/world/rifle/rifle_aug/draw_crouch_aug.vnmclip_c CRC:0076da91f5 size:17013
+animation/anims/world/rifle/rifle_aug/draw_aug.vnmclip_c CRC:0073b85497 size:17341
+animation/anims/world/rifle/rifle_aug/draw_crouch_aug.vnmclip_c CRC:001c56db6a size:17013
animation/anims/world/rifle/rifle_aug/idle_aug.vnmclip+non_additive.vnmclip_c CRC:0060b6cd4c size:4579
animation/anims/world/rifle/rifle_aug/idle_aug.vnmclip_c CRC:001228edc4 size:4282
animation/anims/world/rifle/rifle_aug/idle_crouch_aug.vnmclip+non_additive.vnmclip_c CRC:0063ff4c5c size:4559
animation/anims/world/rifle/rifle_aug/idle_crouch_aug.vnmclip_c CRC:0059b270f9 size:4442
-animation/anims/world/rifle/rifle_aug/reload_aug.vnmclip_c CRC:00ec6fc2e5 size:30131
-animation/anims/world/rifle/rifle_aug/reload_aug_silent.vnmclip_c CRC:0052086ecc size:30135
-animation/anims/world/rifle/rifle_aug/reload_crouch_aug.vnmclip_c CRC:0091f9ac68 size:31993
-animation/anims/world/rifle/rifle_aug/reload_crouch_aug_silent.vnmclip_c CRC:008d80c61d size:32013
+animation/anims/world/rifle/rifle_aug/reload_aug.vnmclip_c CRC:0011030246 size:30131
+animation/anims/world/rifle/rifle_aug/reload_aug_silent.vnmclip_c CRC:0008403c47 size:30131
+animation/anims/world/rifle/rifle_aug/reload_crouch_aug.vnmclip_c CRC:001a7e2ad3 size:31993
+animation/anims/world/rifle/rifle_aug/reload_crouch_aug_silent.vnmclip_c CRC:00abc6e00f size:32009
animation/anims/world/rifle/rifle_aug/shoot_aug.vnmclip+non_additive.vnmclip_c CRC:000bc03afd size:15249
animation/anims/world/rifle/rifle_aug/shoot_aug.vnmclip_c CRC:0003ea45b9 size:14049
-animation/anims/world/rifle/rifle_awp/draw_awp.vnmclip_c CRC:008e0606b4 size:19262
-animation/anims/world/rifle/rifle_awp/draw_crouch_awp.vnmclip_c CRC:0024e58db4 size:18457
+animation/anims/world/rifle/rifle_awp/draw_awp.vnmclip_c CRC:00d7a4d173 size:19262
+animation/anims/world/rifle/rifle_awp/draw_crouch_awp.vnmclip_c CRC:00138149ef size:18457
animation/anims/world/rifle/rifle_awp/idle_awp.vnmclip+non_additive.vnmclip_c CRC:00390bf1e0 size:4550
animation/anims/world/rifle/rifle_awp/idle_awp.vnmclip_c CRC:00221054aa size:4217
animation/anims/world/rifle/rifle_awp/idle_crouch_awp.vnmclip+non_additive.vnmclip_c CRC:000f09a9e4 size:4564
animation/anims/world/rifle/rifle_awp/idle_crouch_awp.vnmclip_c CRC:0098739854 size:4442
animation/anims/world/rifle/rifle_awp/reload_awp.vnmclip_c CRC:0067fb6668 size:38965
animation/anims/world/rifle/rifle_awp/reload_awp_silent.vnmclip_c CRC:00e01a3c09 size:38981
-animation/anims/world/rifle/rifle_awp/reload_crouch_awp.vnmclip_c CRC:000111ddcd size:39447
-animation/anims/world/rifle/rifle_awp/reload_crouch_awp_silent.vnmclip_c CRC:001a49f88f size:39447
+animation/anims/world/rifle/rifle_awp/reload_crouch_awp.vnmclip_c CRC:00f84593a8 size:39446
+animation/anims/world/rifle/rifle_awp/reload_crouch_awp_silent.vnmclip_c CRC:00d088e297 size:39446
animation/anims/world/rifle/rifle_awp/shoot_awp.vnmclip+non_additive.vnmclip_c CRC:00d9962cc0 size:17190
animation/anims/world/rifle/rifle_awp/shoot_awp.vnmclip_c CRC:008d36d2a6 size:16103
-animation/anims/world/rifle/rifle_bizon/draw_bizon.vnmclip_c CRC:008bff5198 size:16757
-animation/anims/world/rifle/rifle_bizon/draw_crouch_bizon.vnmclip_c CRC:0090c07434 size:17734
+animation/anims/world/rifle/rifle_bizon/draw_bizon.vnmclip_c CRC:00ab073bf1 size:16758
+animation/anims/world/rifle/rifle_bizon/draw_crouch_bizon.vnmclip_c CRC:0034800e59 size:17735
animation/anims/world/rifle/rifle_bizon/idle_bizon.vnmclip+non_additive.vnmclip_c CRC:00c177c220 size:4566
animation/anims/world/rifle/rifle_bizon/idle_bizon.vnmclip_c CRC:0063cecf63 size:4266
animation/anims/world/rifle/rifle_bizon/idle_crouch_bizon.vnmclip+non_additive.vnmclip_c CRC:00fc3c4c9f size:4577
@@ -2578,8 +2578,8 @@ animation/anims/world/rifle/rifle_bizon/reload_crouch_bizon.vnmclip_c CRC:005fa3
animation/anims/world/rifle/rifle_bizon/reload_crouch_bizon_silent.vnmclip_c CRC:001965e84b size:24952
animation/anims/world/rifle/rifle_bizon/shoot_bizon.vnmclip+non_additive.vnmclip_c CRC:009e841c24 size:10729
animation/anims/world/rifle/rifle_bizon/shoot_bizon.vnmclip_c CRC:00bce48118 size:9968
-animation/anims/world/rifle/rifle_famas/draw_crouch_famas.vnmclip_c CRC:005141e5c0 size:16708
-animation/anims/world/rifle/rifle_famas/draw_famas.vnmclip_c CRC:00515a9c5a size:16123
+animation/anims/world/rifle/rifle_famas/draw_crouch_famas.vnmclip_c CRC:004f01bbaa size:16702
+animation/anims/world/rifle/rifle_famas/draw_famas.vnmclip_c CRC:00183746c6 size:16126
animation/anims/world/rifle/rifle_famas/idle_crouch_famas.vnmclip+non_additive.vnmclip_c CRC:00cf5b007e size:4574
animation/anims/world/rifle/rifle_famas/idle_crouch_famas.vnmclip_c CRC:007a7f33a5 size:4456
animation/anims/world/rifle/rifle_famas/idle_famas.vnmclip+non_additive.vnmclip_c CRC:002148d3af size:4554
@@ -2590,20 +2590,20 @@ animation/anims/world/rifle/rifle_famas/reload_famas.vnmclip_c CRC:00195b4e21 si
animation/anims/world/rifle/rifle_famas/reload_famas_silent.vnmclip_c CRC:00973360b9 size:41324
animation/anims/world/rifle/rifle_famas/shoot_famas.vnmclip+non_additive.vnmclip_c CRC:00c16bdb87 size:13932
animation/anims/world/rifle/rifle_famas/shoot_famas.vnmclip_c CRC:00068e08d0 size:12949
-animation/anims/world/rifle/rifle_g3sg1/draw_crouch_g3sg1.vnmclip_c CRC:009ff7711f size:17236
-animation/anims/world/rifle/rifle_g3sg1/draw_g3sg1.vnmclip_c CRC:00e50ba6b1 size:17620
+animation/anims/world/rifle/rifle_g3sg1/draw_crouch_g3sg1.vnmclip_c CRC:008269db24 size:17233
+animation/anims/world/rifle/rifle_g3sg1/draw_g3sg1.vnmclip_c CRC:006535c122 size:17615
animation/anims/world/rifle/rifle_g3sg1/idle_crouch_g3sg1.vnmclip+non_additive.vnmclip_c CRC:009e05bff3 size:4560
animation/anims/world/rifle/rifle_g3sg1/idle_crouch_g3sg1.vnmclip_c CRC:00c563c203 size:4454
animation/anims/world/rifle/rifle_g3sg1/idle_g3sg1.vnmclip+non_additive.vnmclip_c CRC:006437c398 size:4569
animation/anims/world/rifle/rifle_g3sg1/idle_g3sg1.vnmclip_c CRC:00b9dc3b50 size:4253
-animation/anims/world/rifle/rifle_g3sg1/reload_crouch_g3sg1.vnmclip_c CRC:00051376f5 size:43527
-animation/anims/world/rifle/rifle_g3sg1/reload_crouch_g3sg1_silent.vnmclip_c CRC:00ef99672e size:43527
+animation/anims/world/rifle/rifle_g3sg1/reload_crouch_g3sg1.vnmclip_c CRC:004a4adb88 size:43529
+animation/anims/world/rifle/rifle_g3sg1/reload_crouch_g3sg1_silent.vnmclip_c CRC:00633f4809 size:43529
animation/anims/world/rifle/rifle_g3sg1/reload_g3sg1.vnmclip_c CRC:00e26a8855 size:39751
animation/anims/world/rifle/rifle_g3sg1/reload_g3sg1_silent.vnmclip_c CRC:0011001e67 size:39767
animation/anims/world/rifle/rifle_g3sg1/shoot_g3sg1.vnmclip+non_additive.vnmclip_c CRC:00ed3e1359 size:11371
animation/anims/world/rifle/rifle_g3sg1/shoot_g3sg1.vnmclip_c CRC:001b332e12 size:10319
-animation/anims/world/rifle/rifle_galilar/draw_crouch_galilar.vnmclip_c CRC:00a4790940 size:17375
-animation/anims/world/rifle/rifle_galilar/draw_galilar.vnmclip_c CRC:006c357a60 size:16480
+animation/anims/world/rifle/rifle_galilar/draw_crouch_galilar.vnmclip_c CRC:00dd7bf73f size:17377
+animation/anims/world/rifle/rifle_galilar/draw_galilar.vnmclip_c CRC:00753be752 size:16479
animation/anims/world/rifle/rifle_galilar/idle_crouch_galilar.vnmclip+non_additive.vnmclip_c CRC:00567da3c5 size:4574
animation/anims/world/rifle/rifle_galilar/idle_crouch_galilar.vnmclip_c CRC:00d0ce9287 size:4405
animation/anims/world/rifle/rifle_galilar/idle_galilar.vnmclip+non_additive.vnmclip_c CRC:00053ca687 size:4575
@@ -2614,16 +2614,16 @@ animation/anims/world/rifle/rifle_galilar/reload_galilar.vnmclip_c CRC:007edfa8e
animation/anims/world/rifle/rifle_galilar/reload_galilar_silent.vnmclip_c CRC:00064d0caa size:36690
animation/anims/world/rifle/rifle_galilar/shoot_galilar.vnmclip+non_additive.vnmclip_c CRC:009b1495e0 size:13167
animation/anims/world/rifle/rifle_galilar/shoot_galilar.vnmclip_c CRC:009fa743bb size:12148
-animation/anims/world/rifle/rifle_m249/draw_crouch_m249.vnmclip_c CRC:00fec3b9a7 size:15499
-animation/anims/world/rifle/rifle_m249/draw_m249.vnmclip_c CRC:00b587170e size:14892
+animation/anims/world/rifle/rifle_m249/draw_crouch_m249.vnmclip_c CRC:00b8048c30 size:15499
+animation/anims/world/rifle/rifle_m249/draw_m249.vnmclip_c CRC:00aa553137 size:14889
animation/anims/world/rifle/rifle_m249/idle_crouch_m249.vnmclip+non_additive.vnmclip_c CRC:008005a391 size:4572
animation/anims/world/rifle/rifle_m249/idle_crouch_m249.vnmclip_c CRC:00b083e949 size:4370
animation/anims/world/rifle/rifle_m249/idle_m249.vnmclip+non_additive.vnmclip_c CRC:00104e679b size:4568
animation/anims/world/rifle/rifle_m249/idle_m249.vnmclip_c CRC:00d3d1b94e size:3824
animation/anims/world/rifle/rifle_m249/reload_crouch_m249.vnmclip_c CRC:0030f23352 size:157661
animation/anims/world/rifle/rifle_m249/reload_crouch_m249_silent.vnmclip_c CRC:00099c1469 size:157677
-animation/anims/world/rifle/rifle_m249/reload_m249.vnmclip_c CRC:00322078d9 size:157142
-animation/anims/world/rifle/rifle_m249/reload_m249_silent.vnmclip_c CRC:00c16ec416 size:157142
+animation/anims/world/rifle/rifle_m249/reload_m249.vnmclip_c CRC:009ace7576 size:157144
+animation/anims/world/rifle/rifle_m249/reload_m249_silent.vnmclip_c CRC:00cd516f45 size:157144
animation/anims/world/rifle/rifle_m249/shoot_m249.vnmclip+non_additive.vnmclip_c CRC:0015c65e40 size:13235
animation/anims/world/rifle/rifle_m249/shoot_m249.vnmclip_c CRC:0027636ef1 size:12238
animation/anims/world/rifle/rifle_m4a1_silencer/draw_crouch_m4a1s.vnmclip_c CRC:0086bf96d7 size:18976
@@ -2632,10 +2632,10 @@ animation/anims/world/rifle/rifle_m4a1_silencer/idle_crouch_m4a1s.vnmclip+non_ad
animation/anims/world/rifle/rifle_m4a1_silencer/idle_crouch_m4a1s.vnmclip_c CRC:0033db17d2 size:2584
animation/anims/world/rifle/rifle_m4a1_silencer/idle_m4a1s.vnmclip+non_additive.vnmclip_c CRC:005a18191a size:4559
animation/anims/world/rifle/rifle_m4a1_silencer/idle_m4a1s.vnmclip_c CRC:00a157a4cb size:2619
-animation/anims/world/rifle/rifle_m4a1_silencer/reload_crouch_m4a1s.vnmclip_c CRC:0073671963 size:36239
-animation/anims/world/rifle/rifle_m4a1_silencer/reload_crouch_m4a1s_silent.vnmclip_c CRC:00f8cc2ebb size:36239
-animation/anims/world/rifle/rifle_m4a1_silencer/reload_m4a1s.vnmclip_c CRC:007278e994 size:24387
-animation/anims/world/rifle/rifle_m4a1_silencer/reload_m4a1s_silent.vnmclip_c CRC:0041a33a38 size:24387
+animation/anims/world/rifle/rifle_m4a1_silencer/reload_crouch_m4a1s.vnmclip_c CRC:00f603de44 size:36239
+animation/anims/world/rifle/rifle_m4a1_silencer/reload_crouch_m4a1s_silent.vnmclip_c CRC:00a508b8a5 size:36239
+animation/anims/world/rifle/rifle_m4a1_silencer/reload_m4a1s.vnmclip_c CRC:005e0cf11f size:24387
+animation/anims/world/rifle/rifle_m4a1_silencer/reload_m4a1s_silent.vnmclip_c CRC:000ccb678f size:24387
animation/anims/world/rifle/rifle_m4a1_silencer/shoot_m4a1s.vnmclip+non_additive.vnmclip_c CRC:001c9eebcf size:7594
animation/anims/world/rifle/rifle_m4a1_silencer/shoot_m4a1s.vnmclip_c CRC:00997ed68e size:6654
animation/anims/world/rifle/rifle_m4a1_silencer/silencer_attach_m4a1s.vnmclip_c CRC:00493e23da size:47561
@@ -2646,22 +2646,22 @@ animation/anims/world/rifle/rifle_m4a4/idle_crouch_m4a4.vnmclip+non_additive.vnm
animation/anims/world/rifle/rifle_m4a4/idle_crouch_m4a4.vnmclip_c CRC:003e544df8 size:4337
animation/anims/world/rifle/rifle_m4a4/idle_m4a4.vnmclip+non_additive.vnmclip_c CRC:000cebd135 size:4553
animation/anims/world/rifle/rifle_m4a4/idle_m4a4.vnmclip_c CRC:007d9a6155 size:4082
-animation/anims/world/rifle/rifle_m4a4/reload_crouch_m4a4.vnmclip_c CRC:005bf7a556 size:29231
-animation/anims/world/rifle/rifle_m4a4/reload_crouch_m4a4_silent.vnmclip_c CRC:0019c4739a size:29231
-animation/anims/world/rifle/rifle_m4a4/reload_m4a4.vnmclip_c CRC:00e1d589fb size:29080
-animation/anims/world/rifle/rifle_m4a4/reload_m4a4_silent.vnmclip_c CRC:000824ee17 size:29080
+animation/anims/world/rifle/rifle_m4a4/reload_crouch_m4a4.vnmclip_c CRC:0071986696 size:29232
+animation/anims/world/rifle/rifle_m4a4/reload_crouch_m4a4_silent.vnmclip_c CRC:00abb616dc size:29232
+animation/anims/world/rifle/rifle_m4a4/reload_m4a4.vnmclip_c CRC:00dcacc1e8 size:29080
+animation/anims/world/rifle/rifle_m4a4/reload_m4a4_silent.vnmclip_c CRC:00ead03f13 size:29080
animation/anims/world/rifle/rifle_m4a4/shoot_m4a4.vnmclip+non_additive.vnmclip_c CRC:00f1df64b7 size:7393
animation/anims/world/rifle/rifle_m4a4/shoot_m4a4.vnmclip_c CRC:0000cca6b6 size:6473
-animation/anims/world/rifle/rifle_mac10/draw_crouch_mac10.vnmclip_c CRC:00b1447e13 size:18036
-animation/anims/world/rifle/rifle_mac10/draw_mac10.vnmclip_c CRC:0015f139b9 size:17362
+animation/anims/world/rifle/rifle_mac10/draw_crouch_mac10.vnmclip_c CRC:00dabca20f size:18033
+animation/anims/world/rifle/rifle_mac10/draw_mac10.vnmclip_c CRC:00490d8d86 size:17360
animation/anims/world/rifle/rifle_mac10/idle_crouch_mac10.vnmclip+non_additive.vnmclip_c CRC:00cd493405 size:4570
animation/anims/world/rifle/rifle_mac10/idle_crouch_mac10.vnmclip_c CRC:00ccb1f835 size:4465
animation/anims/world/rifle/rifle_mac10/idle_mac10.vnmclip+non_additive.vnmclip_c CRC:00aabec4ee size:4572
animation/anims/world/rifle/rifle_mac10/idle_mac10.vnmclip_c CRC:00e9058773 size:4279
-animation/anims/world/rifle/rifle_mac10/reload__crouch_mac10.vnmclip_c CRC:00faacabcb size:29065
-animation/anims/world/rifle/rifle_mac10/reload__crouch_mac10_silent.vnmclip_c CRC:0014dc5052 size:29081
-animation/anims/world/rifle/rifle_mac10/reload_mac10.vnmclip_c CRC:000486ba2c size:28952
-animation/anims/world/rifle/rifle_mac10/reload_mac10_silent.vnmclip_c CRC:00524016c1 size:28952
+animation/anims/world/rifle/rifle_mac10/reload__crouch_mac10.vnmclip_c CRC:00a4f08312 size:29065
+animation/anims/world/rifle/rifle_mac10/reload__crouch_mac10_silent.vnmclip_c CRC:00a68dcd33 size:29081
+animation/anims/world/rifle/rifle_mac10/reload_mac10.vnmclip_c CRC:000f10af1d size:28953
+animation/anims/world/rifle/rifle_mac10/reload_mac10_silent.vnmclip_c CRC:003ffa0937 size:28953
animation/anims/world/rifle/rifle_mac10/shoot_mac10.vnmclip+non_additive.vnmclip_c CRC:007bfaed3b size:11564
animation/anims/world/rifle/rifle_mac10/shoot_mac10.vnmclip_c CRC:00e48376fc size:10458
animation/anims/world/rifle/rifle_mag7/draw_crouch_mag7.vnmclip_c CRC:00069a534e size:15218
@@ -2670,10 +2670,10 @@ animation/anims/world/rifle/rifle_mag7/idle_crouch_mag7.vnmclip+non_additive.vnm
animation/anims/world/rifle/rifle_mag7/idle_crouch_mag7.vnmclip_c CRC:00b8a729a1 size:4462
animation/anims/world/rifle/rifle_mag7/idle_mag7.vnmclip+non_additive.vnmclip_c CRC:00ae298a6a size:4557
animation/anims/world/rifle/rifle_mag7/idle_mag7.vnmclip_c CRC:006ba70d6b size:4262
-animation/anims/world/rifle/rifle_mag7/reload_crouch_mag7.vnmclip_c CRC:006ccec109 size:22809
-animation/anims/world/rifle/rifle_mag7/reload_crouch_mag7_silent.vnmclip_c CRC:0053d936ed size:22825
-animation/anims/world/rifle/rifle_mag7/reload_mag7.vnmclip_c CRC:0092e4a390 size:24459
-animation/anims/world/rifle/rifle_mag7/reload_mag7_silent.vnmclip_c CRC:00f4756b75 size:24459
+animation/anims/world/rifle/rifle_mag7/reload_crouch_mag7.vnmclip_c CRC:00641b2846 size:22809
+animation/anims/world/rifle/rifle_mag7/reload_crouch_mag7_silent.vnmclip_c CRC:00caa69eaf size:22825
+animation/anims/world/rifle/rifle_mag7/reload_mag7.vnmclip_c CRC:00ca583cd3 size:24458
+animation/anims/world/rifle/rifle_mag7/reload_mag7_silent.vnmclip_c CRC:00a265f1e6 size:24458
animation/anims/world/rifle/rifle_mag7/shoot_mag7.vnmclip+non_additive.vnmclip_c CRC:0095f58b4b size:9645
animation/anims/world/rifle/rifle_mag7/shoot_mag7.vnmclip_c CRC:00cd5fc271 size:8757
animation/anims/world/rifle/rifle_mp5sd/draw2_crouch_mp5sd.vnmclip_c CRC:00daea6add size:14026
@@ -2684,50 +2684,50 @@ animation/anims/world/rifle/rifle_mp5sd/idle_crouch_mp5sd.vnmclip+non_additive.v
animation/anims/world/rifle/rifle_mp5sd/idle_crouch_mp5sd.vnmclip_c CRC:003051dd7a size:4476
animation/anims/world/rifle/rifle_mp5sd/idle_mp5sd.vnmclip+non_additive.vnmclip_c CRC:00577f156e size:4560
animation/anims/world/rifle/rifle_mp5sd/idle_mp5sd.vnmclip_c CRC:007b606235 size:4385
-animation/anims/world/rifle/rifle_mp5sd/reload_crouch_mp5sd.vnmclip_c CRC:00e04f8a64 size:27026
-animation/anims/world/rifle/rifle_mp5sd/reload_crouch_mp5sd_silent.vnmclip_c CRC:003cade9da size:27026
+animation/anims/world/rifle/rifle_mp5sd/reload_crouch_mp5sd.vnmclip_c CRC:004d682fef size:27027
+animation/anims/world/rifle/rifle_mp5sd/reload_crouch_mp5sd_silent.vnmclip_c CRC:0049895c5a size:27027
animation/anims/world/rifle/rifle_mp5sd/reload_mp5sd.vnmclip_c CRC:00186f4d71 size:26868
animation/anims/world/rifle/rifle_mp5sd/reload_mp5sd_silent.vnmclip_c CRC:005e632582 size:26868
animation/anims/world/rifle/rifle_mp5sd/shoot_mp5sd.vnmclip+non_additive.vnmclip_c CRC:00f4d5dfab size:7364
animation/anims/world/rifle/rifle_mp5sd/shoot_mp5sd.vnmclip_c CRC:00c706bb9a size:6298
-animation/anims/world/rifle/rifle_mp7/draw_crouch_mp7.vnmclip_c CRC:0075efe275 size:15109
-animation/anims/world/rifle/rifle_mp7/draw_mp7.vnmclip_c CRC:00cdca8f80 size:15383
+animation/anims/world/rifle/rifle_mp7/draw_crouch_mp7.vnmclip_c CRC:009129ef47 size:15106
+animation/anims/world/rifle/rifle_mp7/draw_mp7.vnmclip_c CRC:0035a59f76 size:15380
animation/anims/world/rifle/rifle_mp7/idle_crouch_mp7.vnmclip+non_additive.vnmclip_c CRC:00ba66fbc5 size:4552
animation/anims/world/rifle/rifle_mp7/idle_crouch_mp7.vnmclip_c CRC:0046bc6dca size:4432
animation/anims/world/rifle/rifle_mp7/idle_mp7.vnmclip+non_additive.vnmclip_c CRC:001f283bbe size:4531
animation/anims/world/rifle/rifle_mp7/idle_mp7.vnmclip_c CRC:00ebd1c4ba size:4397
-animation/anims/world/rifle/rifle_mp7/reload_crouch_mp7.vnmclip_c CRC:00bbee420c size:28735
-animation/anims/world/rifle/rifle_mp7/reload_crouch_mp7_silent.vnmclip_c CRC:0068100372 size:28735
-animation/anims/world/rifle/rifle_mp7/reload_mp7.vnmclip_c CRC:00a07b4070 size:28540
-animation/anims/world/rifle/rifle_mp7/reload_mp7_silent.vnmclip_c CRC:002e906e18 size:28556
+animation/anims/world/rifle/rifle_mp7/reload_crouch_mp7.vnmclip_c CRC:004c7a3674 size:28735
+animation/anims/world/rifle/rifle_mp7/reload_crouch_mp7_silent.vnmclip_c CRC:00fadebd4e size:28735
+animation/anims/world/rifle/rifle_mp7/reload_mp7.vnmclip_c CRC:00a07dfdd9 size:28540
+animation/anims/world/rifle/rifle_mp7/reload_mp7_silent.vnmclip_c CRC:00fc099247 size:28556
animation/anims/world/rifle/rifle_mp7/shoot_mp7.vnmclip+non_additive.vnmclip_c CRC:001a15c5d1 size:9508
animation/anims/world/rifle/rifle_mp7/shoot_mp7.vnmclip_c CRC:00e57e39ee size:8888
-animation/anims/world/rifle/rifle_mp9/draw__crouch_mp9.vnmclip_c CRC:002a638eaa size:16336
-animation/anims/world/rifle/rifle_mp9/draw_mp9.vnmclip_c CRC:00318888bd size:16854
+animation/anims/world/rifle/rifle_mp9/draw__crouch_mp9.vnmclip_c CRC:00713e77f3 size:16336
+animation/anims/world/rifle/rifle_mp9/draw_mp9.vnmclip_c CRC:0081e80e34 size:16854
animation/anims/world/rifle/rifle_mp9/idle_crouch_mp9.vnmclip+non_additive.vnmclip_c CRC:001bdf4c89 size:4576
animation/anims/world/rifle/rifle_mp9/idle_crouch_mp9.vnmclip_c CRC:007789dcf4 size:4475
animation/anims/world/rifle/rifle_mp9/idle_mp9.vnmclip+non_additive.vnmclip_c CRC:00d9f0a4e2 size:4569
animation/anims/world/rifle/rifle_mp9/idle_mp9.vnmclip_c CRC:00a0059a5b size:4269
-animation/anims/world/rifle/rifle_mp9/reload_crouch_mp9.vnmclip_c CRC:00d3a5a6e9 size:25862
-animation/anims/world/rifle/rifle_mp9/reload_crouch_mp9_silent.vnmclip_c CRC:0049da522c size:25862
-animation/anims/world/rifle/rifle_mp9/reload_mp9.vnmclip_c CRC:0066a86d8d size:26123
-animation/anims/world/rifle/rifle_mp9/reload_mp9_silent.vnmclip_c CRC:00020952ab size:26139
+animation/anims/world/rifle/rifle_mp9/reload_crouch_mp9.vnmclip_c CRC:009a9d7102 size:25862
+animation/anims/world/rifle/rifle_mp9/reload_crouch_mp9_silent.vnmclip_c CRC:008c02e690 size:25862
+animation/anims/world/rifle/rifle_mp9/reload_mp9.vnmclip_c CRC:0055b6b7b3 size:26124
+animation/anims/world/rifle/rifle_mp9/reload_mp9_silent.vnmclip_c CRC:00bb198516 size:26140
animation/anims/world/rifle/rifle_mp9/shoot_mp9.vnmclip+non_additive.vnmclip_c CRC:00c5acc74e size:9787
animation/anims/world/rifle/rifle_mp9/shoot_mp9.vnmclip_c CRC:00d297b6b4 size:8803
-animation/anims/world/rifle/rifle_negev/draw_crouch_negev.vnmclip_c CRC:0020ed3cfd size:17904
-animation/anims/world/rifle/rifle_negev/draw_negev.vnmclip_c CRC:0052203ce2 size:16309
+animation/anims/world/rifle/rifle_negev/draw_crouch_negev.vnmclip_c CRC:00b636c99f size:17903
+animation/anims/world/rifle/rifle_negev/draw_negev.vnmclip_c CRC:0043e10aea size:16310
animation/anims/world/rifle/rifle_negev/idle_crouch_negev.vnmclip+non_additive.vnmclip_c CRC:00598ad530 size:4567
animation/anims/world/rifle/rifle_negev/idle_crouch_negev.vnmclip_c CRC:00a25246a7 size:4472
animation/anims/world/rifle/rifle_negev/idle_negev.vnmclip+non_additive.vnmclip_c CRC:0049ea56ab size:4560
animation/anims/world/rifle/rifle_negev/idle_negev.vnmclip_c CRC:0045d9a1e8 size:4278
-animation/anims/world/rifle/rifle_negev/reload_crouch_negev.vnmclip_c CRC:00db19c56d size:106953
-animation/anims/world/rifle/rifle_negev/reload_crouch_negev_silent.vnmclip_c CRC:0000b1d101 size:106969
-animation/anims/world/rifle/rifle_negev/reload_negev.vnmclip_c CRC:001719b36b size:106415
-animation/anims/world/rifle/rifle_negev/reload_negev_silent.vnmclip_c CRC:00fc6b54f0 size:106415
+animation/anims/world/rifle/rifle_negev/reload_crouch_negev.vnmclip_c CRC:00d0f11191 size:106955
+animation/anims/world/rifle/rifle_negev/reload_crouch_negev_silent.vnmclip_c CRC:0015e8f62c size:106971
+animation/anims/world/rifle/rifle_negev/reload_negev.vnmclip_c CRC:000f1c2b4b size:106416
+animation/anims/world/rifle/rifle_negev/reload_negev_silent.vnmclip_c CRC:000fcd58f1 size:106416
animation/anims/world/rifle/rifle_negev/shoot_negev.vnmclip+non_additive.vnmclip_c CRC:0020229954 size:20223
animation/anims/world/rifle/rifle_negev/shoot_negev.vnmclip_c CRC:00fd67bb97 size:19070
-animation/anims/world/rifle/rifle_nova/draw_crouch_nova.vnmclip_c CRC:009f4e5fda size:13104
-animation/anims/world/rifle/rifle_nova/draw_nova.vnmclip_c CRC:0022fc514f size:13425
+animation/anims/world/rifle/rifle_nova/draw_crouch_nova.vnmclip_c CRC:001dfa3361 size:13105
+animation/anims/world/rifle/rifle_nova/draw_nova.vnmclip_c CRC:0028d26ebf size:13426
animation/anims/world/rifle/rifle_nova/idle_crouch_nova.vnmclip+non_additive.vnmclip_c CRC:00fd90dbbc size:4577
animation/anims/world/rifle/rifle_nova/idle_crouch_nova.vnmclip_c CRC:0033c49b6a size:4450
animation/anims/world/rifle/rifle_nova/idle_nova.vnmclip+non_additive.vnmclip_c CRC:00a66d1057 size:4576
@@ -2738,16 +2738,16 @@ animation/anims/world/rifle/rifle_nova/reload_nova.vnmclip_c CRC:000818f5a8 size
animation/anims/world/rifle/rifle_nova/reload_nova_silent.vnmclip_c CRC:003df945b5 size:20914
animation/anims/world/rifle/rifle_nova/shoot_nova.vnmclip+non_additive.vnmclip_c CRC:000b71642f size:9854
animation/anims/world/rifle/rifle_nova/shoot_nova.vnmclip_c CRC:005ec69ba3 size:8671
-animation/anims/world/rifle/rifle_p90/draw_crouch_p90.vnmclip_c CRC:0079064230 size:16737
-animation/anims/world/rifle/rifle_p90/draw_p90.vnmclip_c CRC:001d3a0164 size:17155
+animation/anims/world/rifle/rifle_p90/draw_crouch_p90.vnmclip_c CRC:005d6c1888 size:16737
+animation/anims/world/rifle/rifle_p90/draw_p90.vnmclip_c CRC:0083e3cb43 size:17155
animation/anims/world/rifle/rifle_p90/idle_crouch_p90.vnmclip+non_additive.vnmclip_c CRC:00e05854a6 size:4578
animation/anims/world/rifle/rifle_p90/idle_crouch_p90.vnmclip_c CRC:003ede180b size:4479
animation/anims/world/rifle/rifle_p90/idle_p90.vnmclip+non_additive.vnmclip_c CRC:00d2ebce33 size:4559
animation/anims/world/rifle/rifle_p90/idle_p90.vnmclip_c CRC:002c78f996 size:4288
-animation/anims/world/rifle/rifle_p90/reload_crouch_p90.vnmclip_c CRC:006d5b1e8d size:35373
-animation/anims/world/rifle/rifle_p90/reload_crouch_p90_silent.vnmclip_c CRC:00f6bf86bc size:35389
-animation/anims/world/rifle/rifle_p90/reload_p90.vnmclip_c CRC:0069672f2f size:35369
-animation/anims/world/rifle/rifle_p90/reload_p90_silent.vnmclip_c CRC:00ad890452 size:35369
+animation/anims/world/rifle/rifle_p90/reload_crouch_p90.vnmclip_c CRC:007f4dc41d size:35373
+animation/anims/world/rifle/rifle_p90/reload_crouch_p90_silent.vnmclip_c CRC:003fef6d53 size:35389
+animation/anims/world/rifle/rifle_p90/reload_p90.vnmclip_c CRC:000cfabc85 size:35369
+animation/anims/world/rifle/rifle_p90/reload_p90_silent.vnmclip_c CRC:00f2f70454 size:35369
animation/anims/world/rifle/rifle_p90/shoot_p90.vnmclip+non_additive.vnmclip_c CRC:001789d867 size:13689
animation/anims/world/rifle/rifle_p90/shoot_p90.vnmclip_c CRC:005a339bcf size:12682
animation/anims/world/rifle/rifle_sawedoff/draw_crouch_sawedoff.vnmclip_c CRC:00639df0a7 size:16699
@@ -2756,69 +2756,69 @@ animation/anims/world/rifle/rifle_sawedoff/idle_crouch_sawedoff.vnmclip+non_addi
animation/anims/world/rifle/rifle_sawedoff/idle_crouch_sawedoff.vnmclip_c CRC:00132a892a size:4452
animation/anims/world/rifle/rifle_sawedoff/idle_sawedoff.vnmclip+non_additive.vnmclip_c CRC:00878ec4e3 size:4574
animation/anims/world/rifle/rifle_sawedoff/idle_sawedoff.vnmclip_c CRC:00e20d955c size:4253
-animation/anims/world/rifle/rifle_sawedoff/reload_crouch_sawedoff.vnmclip_c CRC:0088fb6e2e size:17922
-animation/anims/world/rifle/rifle_sawedoff/reload_crouch_sawedoff_silent.vnmclip_c CRC:00094792d7 size:17922
-animation/anims/world/rifle/rifle_sawedoff/reload_sawedoff.vnmclip_c CRC:002f30fe56 size:17765
-animation/anims/world/rifle/rifle_sawedoff/reload_sawedoff_silent.vnmclip_c CRC:00d5467ccb size:17765
+animation/anims/world/rifle/rifle_sawedoff/reload_crouch_sawedoff.vnmclip_c CRC:00d34f2891 size:17925
+animation/anims/world/rifle/rifle_sawedoff/reload_crouch_sawedoff_silent.vnmclip_c CRC:0066ddb12f size:17925
+animation/anims/world/rifle/rifle_sawedoff/reload_sawedoff.vnmclip_c CRC:005652c566 size:17762
+animation/anims/world/rifle/rifle_sawedoff/reload_sawedoff_silent.vnmclip_c CRC:008efa0537 size:17778
animation/anims/world/rifle/rifle_sawedoff/shoot_sawedoff.vnmclip+non_additive.vnmclip_c CRC:00db987845 size:9812
animation/anims/world/rifle/rifle_sawedoff/shoot_sawedoff.vnmclip_c CRC:008ad1a310 size:8846
-animation/anims/world/rifle/rifle_scar/draw_crouch_scar20.vnmclip_c CRC:008d827eee size:13515
-animation/anims/world/rifle/rifle_scar/draw_scar20.vnmclip_c CRC:0092b2b949 size:13115
+animation/anims/world/rifle/rifle_scar/draw_crouch_scar20.vnmclip_c CRC:00307501b8 size:13502
+animation/anims/world/rifle/rifle_scar/draw_scar20.vnmclip_c CRC:0090ff3414 size:13112
animation/anims/world/rifle/rifle_scar/idle_crouch_scar20.vnmclip+non_additive.vnmclip_c CRC:00223d85bf size:4564
animation/anims/world/rifle/rifle_scar/idle_crouch_scar20.vnmclip_c CRC:009eab1ae6 size:4447
animation/anims/world/rifle/rifle_scar/idle_scar20.vnmclip+non_additive.vnmclip_c CRC:00bdf98c6a size:4566
animation/anims/world/rifle/rifle_scar/idle_scar20.vnmclip_c CRC:003282e2b3 size:4244
-animation/anims/world/rifle/rifle_scar/reload_crouch_scar20.vnmclip_c CRC:003a53774c size:28611
-animation/anims/world/rifle/rifle_scar/reload_crouch_scar20_silent.vnmclip_c CRC:00cb3e15dd size:28611
-animation/anims/world/rifle/rifle_scar/reload_scar20.vnmclip_c CRC:00792520b6 size:30344
-animation/anims/world/rifle/rifle_scar/reload_scar20_silent.vnmclip_c CRC:00005e8d90 size:30344
+animation/anims/world/rifle/rifle_scar/reload_crouch_scar20.vnmclip_c CRC:00506cd7f5 size:28611
+animation/anims/world/rifle/rifle_scar/reload_crouch_scar20_silent.vnmclip_c CRC:00bb2d2de1 size:28611
+animation/anims/world/rifle/rifle_scar/reload_scar20.vnmclip_c CRC:00cc6418f4 size:30344
+animation/anims/world/rifle/rifle_scar/reload_scar20_silent.vnmclip_c CRC:001837e245 size:30344
animation/anims/world/rifle/rifle_scar/shoot_scar20.vnmclip+non_additive.vnmclip_c CRC:0063da594a size:11692
animation/anims/world/rifle/rifle_scar/shoot_scar20.vnmclip_c CRC:004a5377a6 size:10384
-animation/anims/world/rifle/rifle_sg556/draw_crouch_sg556.vnmclip_c CRC:00c0d381bd size:13524
-animation/anims/world/rifle/rifle_sg556/draw_sg556.vnmclip_c CRC:00400cec9c size:13958
+animation/anims/world/rifle/rifle_sg556/draw_crouch_sg556.vnmclip_c CRC:005111e677 size:13524
+animation/anims/world/rifle/rifle_sg556/draw_sg556.vnmclip_c CRC:0029da185a size:13958
animation/anims/world/rifle/rifle_sg556/idle_crouch_sg556.vnmclip+non_additive.vnmclip_c CRC:00110d3cea size:4574
animation/anims/world/rifle/rifle_sg556/idle_crouch_sg556.vnmclip_c CRC:00f995cbcc size:4443
animation/anims/world/rifle/rifle_sg556/idle_sg556.vnmclip+non_additive.vnmclip_c CRC:000e3fdec2 size:4564
animation/anims/world/rifle/rifle_sg556/idle_sg556.vnmclip_c CRC:00310ab755 size:4409
-animation/anims/world/rifle/rifle_sg556/reload_crouch_sg556.vnmclip_c CRC:002765af11 size:25249
-animation/anims/world/rifle/rifle_sg556/reload_crouch_sg556_silent.vnmclip_c CRC:00a7981c5b size:25265
-animation/anims/world/rifle/rifle_sg556/reload_sg556.vnmclip_c CRC:00daf51dce size:24867
-animation/anims/world/rifle/rifle_sg556/reload_sg556_silent.vnmclip_c CRC:00877dd825 size:24867
+animation/anims/world/rifle/rifle_sg556/reload_crouch_sg556.vnmclip_c CRC:00f3a1e3d9 size:25248
+animation/anims/world/rifle/rifle_sg556/reload_crouch_sg556_silent.vnmclip_c CRC:008cc45ab7 size:25264
+animation/anims/world/rifle/rifle_sg556/reload_sg556.vnmclip_c CRC:0043e9fa93 size:24866
+animation/anims/world/rifle/rifle_sg556/reload_sg556_silent.vnmclip_c CRC:00b2846984 size:24866
animation/anims/world/rifle/rifle_sg556/shoot_sg556.vnmclip+non_additive.vnmclip_c CRC:00e46754b4 size:10377
animation/anims/world/rifle/rifle_sg556/shoot_sg556.vnmclip_c CRC:0094e6208f size:9404
animation/anims/world/rifle/rifle_ssg08/draw_crouch_ssg08.vnmclip_c CRC:007d07ec12 size:16969
-animation/anims/world/rifle/rifle_ssg08/draw_ssg08.vnmclip_c CRC:003531547e size:17140
+animation/anims/world/rifle/rifle_ssg08/draw_ssg08.vnmclip_c CRC:00e6d92766 size:17139
animation/anims/world/rifle/rifle_ssg08/idle_crouch_ssg08.vnmclip+non_additive.vnmclip_c CRC:001d9a6444 size:4568
animation/anims/world/rifle/rifle_ssg08/idle_crouch_ssg08.vnmclip_c CRC:008df02f66 size:4392
animation/anims/world/rifle/rifle_ssg08/idle_ssg08.vnmclip+non_additive.vnmclip_c CRC:00e7265579 size:4575
animation/anims/world/rifle/rifle_ssg08/idle_ssg08.vnmclip_c CRC:00daafce8a size:4143
-animation/anims/world/rifle/rifle_ssg08/reload_crouch_ssg08.vnmclip_c CRC:00f0d70361 size:33732
-animation/anims/world/rifle/rifle_ssg08/reload_crouch_ssg08_silent.vnmclip_c CRC:00b432a0cd size:33748
-animation/anims/world/rifle/rifle_ssg08/reload_ssg08.vnmclip_c CRC:004b8251d0 size:33217
-animation/anims/world/rifle/rifle_ssg08/reload_ssg08_silent.vnmclip_c CRC:00192591d7 size:33217
+animation/anims/world/rifle/rifle_ssg08/reload_crouch_ssg08.vnmclip_c CRC:00bdd298c3 size:33732
+animation/anims/world/rifle/rifle_ssg08/reload_crouch_ssg08_silent.vnmclip_c CRC:00f7ad95bc size:33748
+animation/anims/world/rifle/rifle_ssg08/reload_ssg08.vnmclip_c CRC:003e70b4f3 size:33217
+animation/anims/world/rifle/rifle_ssg08/reload_ssg08_silent.vnmclip_c CRC:00558bdf80 size:33217
animation/anims/world/rifle/rifle_ssg08/shoot_ssg08.vnmclip+non_additive.vnmclip_c CRC:00aa8b00a1 size:18630
animation/anims/world/rifle/rifle_ssg08/shoot_ssg08.vnmclip_c CRC:003d1becb2 size:17769
-animation/anims/world/rifle/rifle_ump45/draw_crouch_ump45.vnmclip_c CRC:009dadc2c8 size:17118
-animation/anims/world/rifle/rifle_ump45/draw_ump45.vnmclip_c CRC:0080790016 size:17503
+animation/anims/world/rifle/rifle_ump45/draw_crouch_ump45.vnmclip_c CRC:00370c8565 size:17114
+animation/anims/world/rifle/rifle_ump45/draw_ump45.vnmclip_c CRC:00a2d3aee1 size:17503
animation/anims/world/rifle/rifle_ump45/idle_crouch_ump45.vnmclip+non_additive.vnmclip_c CRC:0040b79059 size:4580
animation/anims/world/rifle/rifle_ump45/idle_crouch_ump45.vnmclip_c CRC:001cc0fab4 size:4450
animation/anims/world/rifle/rifle_ump45/idle_ump45.vnmclip+non_additive.vnmclip_c CRC:0095b7d3ba size:4550
animation/anims/world/rifle/rifle_ump45/idle_ump45.vnmclip_c CRC:00bb3bfdb2 size:4430
-animation/anims/world/rifle/rifle_ump45/reload_crouch_ump45.vnmclip_c CRC:000adaf2b9 size:30926
-animation/anims/world/rifle/rifle_ump45/reload_crouch_ump45_silent.vnmclip_c CRC:003d87c479 size:30926
-animation/anims/world/rifle/rifle_ump45/reload_ump45.vnmclip_c CRC:005efdad2d size:30855
-animation/anims/world/rifle/rifle_ump45/reload_ump45_silent.vnmclip_c CRC:00a7ffc259 size:30855
+animation/anims/world/rifle/rifle_ump45/reload_crouch_ump45.vnmclip_c CRC:0004952794 size:30927
+animation/anims/world/rifle/rifle_ump45/reload_crouch_ump45_silent.vnmclip_c CRC:000c1af705 size:30927
+animation/anims/world/rifle/rifle_ump45/reload_ump45.vnmclip_c CRC:005194008b size:30856
+animation/anims/world/rifle/rifle_ump45/reload_ump45_silent.vnmclip_c CRC:00277179a6 size:30856
animation/anims/world/rifle/rifle_ump45/shoot_ump45.vnmclip+non_additive.vnmclip_c CRC:00767f56c7 size:11385
animation/anims/world/rifle/rifle_ump45/shoot_ump45.vnmclip_c CRC:004569bf32 size:10361
-animation/anims/world/rifle/rifle_xm1014/draw_crouch_xm1014.vnmclip_c CRC:0096f80a10 size:11406
-animation/anims/world/rifle/rifle_xm1014/draw_xm1014.vnmclip_c CRC:005eb31210 size:11615
+animation/anims/world/rifle/rifle_xm1014/draw_crouch_xm1014.vnmclip_c CRC:00d4dd8308 size:11409
+animation/anims/world/rifle/rifle_xm1014/draw_xm1014.vnmclip_c CRC:00efec21ca size:11615
animation/anims/world/rifle/rifle_xm1014/idle_crouch_xm1014.vnmclip+non_additive.vnmclip_c CRC:00b770bc92 size:4896
animation/anims/world/rifle/rifle_xm1014/idle_crouch_xm1014.vnmclip_c CRC:0078e4f517 size:4877
animation/anims/world/rifle/rifle_xm1014/idle_xm1014.vnmclip+non_additive.vnmclip_c CRC:003fdad468 size:4898
animation/anims/world/rifle/rifle_xm1014/idle_xm1014.vnmclip_c CRC:00daa71b1b size:4622
animation/anims/world/rifle/rifle_xm1014/reload_crouch_xm1014.vnmclip_c CRC:00f44a4597 size:19028
animation/anims/world/rifle/rifle_xm1014/reload_crouch_xm1014_silent.vnmclip_c CRC:007abc64c4 size:19044
-animation/anims/world/rifle/rifle_xm1014/reload_xm1014.vnmclip_c CRC:002b142038 size:19379
+animation/anims/world/rifle/rifle_xm1014/reload_xm1014.vnmclip_c CRC:00ca8a7cfc size:19379
animation/anims/world/rifle/rifle_xm1014/reload_xm1014_silent.vnmclip_c CRC:002b7ad3e1 size:19379
animation/anims/world/rifle/rifle_xm1014/shoot_xm1014.vnmclip+non_additive.vnmclip_c CRC:00db565ebe size:9457
animation/anims/world/rifle/rifle_xm1014/shoot_xm1014.vnmclip_c CRC:003f942730 size:8407
@@ -3139,7 +3139,7 @@ animation/graphs/viewmodel/viewmodel_knife.vnmgraph_c CRC:002f223d05 size:8504
animation/graphs/viewmodel/viewmodel_knife_butterfly.vnmgraph_c CRC:00d8a1d1f2 size:8335
animation/graphs/viewmodel/viewmodel_knife_karambit.vnmgraph_c CRC:00a460498e size:8333
animation/graphs/viewmodel/viewmodel_knife_talon.vnmgraph_c CRC:0092514c48 size:8249
-animation/graphs/worldmodel/worldmodel.vnmgraph_c CRC:00bb1317bb size:73481
+animation/graphs/worldmodel/worldmodel.vnmgraph_c CRC:00ebc8f863 size:73496
animation/graphs/worldmodel/worldmodel_grenade.vnmgraph+decoy.vnmgraph_c CRC:008065ce30 size:5313
animation/graphs/worldmodel/worldmodel_grenade.vnmgraph+flash.vnmgraph_c CRC:00e879d270 size:5315
animation/graphs/worldmodel/worldmodel_grenade.vnmgraph+he.vnmgraph_c CRC:006f790dc2 size:5311
@@ -3326,11 +3326,11 @@ cfg/moddefaults.txt CRC:0068b076c6 size:315510
cfg/survival/coop/coop_sirocco_missions.kv3 CRC:00bd783c4a size:8518
cfg/survival/coop/dzcooptest_missions.kv3 CRC:00d63215ed size:5899
cfg/survival/survival_config.kv3 CRC:0034a09936 size:30113
-cfg/video_defaults_0.txt CRC:009c72f446 size:467
-cfg/video_defaults_1.txt CRC:0008f0936a size:468
-cfg/video_defaults_2.txt CRC:005439d79a size:468
-cfg/video_defaults_3.txt CRC:007a888e0e size:477
-cfg/video_version.txt CRC:00ff3ce713 size:197
+cfg/video_defaults_0.txt CRC:00877dcf55 size:510
+cfg/video_defaults_1.txt CRC:00009efb39 size:511
+cfg/video_defaults_2.txt CRC:0051fcad97 size:511
+cfg/video_defaults_3.txt CRC:003ba1472c size:520
+cfg/video_version.txt CRC:00594beca7 size:197
characters/models/ctm_diver/ctm_diver_varianta.vmdl_c CRC:00086fed19 size:4818
characters/models/ctm_diver/ctm_diver_variantb.vmdl_c CRC:00eb02f675 size:4818
characters/models/ctm_diver/ctm_diver_variantc.vmdl_c CRC:00b5d9ff51 size:4818
@@ -16795,6 +16795,7 @@ materials/dev/dof2.vmat_c CRC:00c942e8ea size:1516
materials/dev/downsample_outlineglows.vmat_c CRC:00446ffccc size:1306
materials/dev/film_grain_noise_tga_ee035d08.vtex_c CRC:00fb5bcc34 size:34784
materials/dev/friendly_crosshair_icon_psd_66512e34.vtex_c CRC:00506e3570 size:18480
+materials/dev/frost.vtex_c CRC:000dc5f403 size:1400232
materials/dev/generate_decal_normals.vmat_c CRC:00cc728db2 size:1584
materials/dev/glow_health_color.vmat_c CRC:00af2f9c86 size:3056
materials/dev/glow_health_color_vmat_g_tcolor_37753f91.vtex_c CRC:00b53b1e0e size:1968
@@ -84434,7 +84435,7 @@ panorama/layout/settings/settings_promoted.vxml_c CRC:00680b88f2 size:2157
panorama/layout/settings/settings_search.vxml_c CRC:00656a9fbc size:2302
panorama/layout/settings/settings_slider.vxml_c CRC:00271e714b size:1988
panorama/layout/settings/settings_steaminput.vxml_c CRC:00e643d64a size:5018
-panorama/layout/settings/settings_video.vxml_c CRC:00177cb05e size:7903
+panorama/layout/settings/settings_video.vxml_c CRC:00a566c7fe size:8015
panorama/layout/shielddamagealert.vxml_c CRC:00444e5974 size:1592
panorama/layout/simple_player_tile.vxml_c CRC:00b16a2ced size:1709
panorama/layout/slider_toggle.vxml_c CRC:0051cab4e4 size:1596
@@ -87985,31 +87986,31 @@ resource/csgo_bulgarian.txt CRC:00ad431afd size:7759343
resource/csgo_czech.txt CRC:005482a707 size:5097565
resource/csgo_danish.txt CRC:00bb321d04 size:5004038
resource/csgo_dutch.txt CRC:0045192cf1 size:5049873
-resource/csgo_english.txt CRC:00e83600df size:4879039
-resource/csgo_finnish.txt CRC:00a79f8c2b size:4960818
+resource/csgo_english.txt CRC:00e80a07c7 size:4879236
+resource/csgo_finnish.txt CRC:002fc7ab9d size:4960817
resource/csgo_french.txt CRC:002433e025 size:5254990
-resource/csgo_german.txt CRC:008c76453f size:5165453
-resource/csgo_greek.txt CRC:00a68efa30 size:7151367
+resource/csgo_german.txt CRC:00b7318010 size:5165419
+resource/csgo_greek.txt CRC:003592854b size:7152191
resource/csgo_hungarian.txt CRC:000a1961a8 size:5078957
resource/csgo_indonesian.txt CRC:0023f7fd61 size:4729593
-resource/csgo_italian.txt CRC:0019309189 size:5178719
+resource/csgo_italian.txt CRC:0001be6bca size:5178719
resource/csgo_japanese.txt CRC:007c931b86 size:5333463
-resource/csgo_koreana.txt CRC:007c56bde5 size:5096798
+resource/csgo_koreana.txt CRC:004c2ea4f8 size:5097080
resource/csgo_latam.txt CRC:00430502d0 size:5188734
resource/csgo_norwegian.txt CRC:001049104e size:4925063
-resource/csgo_polish.txt CRC:0048f2bc13 size:5321400
+resource/csgo_polish.txt CRC:00f548da8d size:5322005
resource/csgo_portuguese.txt CRC:00bf8fe57b size:5060318
-resource/csgo_romanian.txt CRC:00f8a9b880 size:5271518
-resource/csgo_russian.txt CRC:0089b5889a size:6563734
-resource/csgo_schinese.txt CRC:007b74ea72 size:4931452
+resource/csgo_romanian.txt CRC:00999ead8f size:5271569
+resource/csgo_russian.txt CRC:00e74335d2 size:6564323
+resource/csgo_schinese.txt CRC:002d1fa173 size:4931866
resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645
resource/csgo_spanish.txt CRC:00deb972b5 size:5160188
resource/csgo_swedish.txt CRC:00b4c12d74 size:5032375
-resource/csgo_tchinese.txt CRC:00f44e6b58 size:4627815
-resource/csgo_thai.txt CRC:00826d1c7b size:8128621
+resource/csgo_tchinese.txt CRC:00e8efb69c size:4628387
+resource/csgo_thai.txt CRC:0079d7968d size:8129614
resource/csgo_turkish.txt CRC:00cabf481a size:5165905
resource/csgo_ukrainian.txt CRC:003ac03c61 size:6621798
-resource/csgo_vietnamese.txt CRC:00ee4d1e19 size:5450532
+resource/csgo_vietnamese.txt CRC:007aea5525 size:5451149
resource/game.gameevents CRC:0090de10bc size:9837
resource/halflife2.vfont CRC:00b064848c size:58000
resource/mod.gameevents CRC:0035ddf423 size:20770
@@ -88098,6 +88099,12 @@ scripts/ai/practice/modules/newplayer_dust2_01/bt_t_5.kv3 CRC:00f8f036c3 size:61
scripts/ai/practice/modules/newplayer_dust2_01/bt_takeover_strategy.kv3 CRC:00a42346ef size:1427
scripts/ai/practice/modules/newplayer_dust2_01/bt_wait.kv3 CRC:00a764ca22 size:295
scripts/ai/practice/newplayer_dust2_01.kv3 CRC:005756f767 size:8887
+scripts/ai/retakes/bt_config.kv3 CRC:0067e7fe47 size:17972
+scripts/ai/retakes/bt_default.kv3 CRC:000f58389f size:3897
+scripts/ai/retakes/modules/bt_defuse_planted_bomb.kv3 CRC:0080a2708c size:1259
+scripts/ai/retakes/modules/bt_hide_near_planted_bomb.kv3 CRC:0088fd0792 size:3180
+scripts/ai/retakes/modules/bt_hold_near_planted_bomb.kv3 CRC:00b91d97cf size:988
+scripts/ai/retakes/modules/bt_watch_approach_points.kv3 CRC:00b7703534 size:489
scripts/ai/rush/bt_config.kv3 CRC:0067e7fe47 size:17972
scripts/ai/rush/bt_default.kv3 CRC:00a81d754f size:4520
scripts/camera_data.json CRC:00b8437a11 size:1887
@@ -135581,7 +135588,8 @@ weapons/models/bizon/weapon_smg_bizon_mag.vmdl_c CRC:0015b02247 size:75366
weapons/models/c4/defuse_multimeter.vmdl_c CRC:0007a5ff05 size:37678
weapons/models/c4/materials/c4_ao_tga_bb64a00d.vtex_c CRC:009ea6f6e8 size:1562328
weapons/models/c4/materials/c4_color_psd_75da6dec.vtex_c CRC:0044656af2 size:4287764
-weapons/models/c4/materials/c4_digits_psd_52746c2d.vtex_c CRC:008f08827c size:77606
+weapons/models/c4/materials/c4_digits_mask_psd_3de339d1.vtex_c CRC:0050f6267a size:45808
+weapons/models/c4/materials/c4_digits_psd_f79d8a5b.vtex_c CRC:00f5905449 size:62459
weapons/models/c4/materials/c4_led_selfillum_psd_d8363a2a.vtex_c CRC:00d7344b97 size:46702
weapons/models/c4/materials/c4_normal_tga_389762e7.vtex_c CRC:001fe768f2 size:1317004
weapons/models/c4/materials/c4_normal_tga_4e48d437.vtex_c CRC:00c3a1128e size:4914548
@@ -135603,9 +135611,10 @@ weapons/models/c4/materials/defuse_multimeter_color_psd_93513db5.vtex_c CRC:0088
weapons/models/c4/materials/defuse_multimeter_rough_tga_4ee97d61.vtex_c CRC:0041a8839e size:229308
weapons/models/c4/materials/stickers/weapon_c4_sticker_mask_psd_a9cf6509.vtex_c CRC:0005f9ce48 size:16785
weapons/models/c4/materials/weapon_c4.vmat_c CRC:0078b6f155 size:7204
-weapons/models/c4/materials/weapon_c4_digits.vmat_c CRC:0092001150 size:3956
+weapons/models/c4/materials/weapon_c4_digits.vmat_c CRC:00a850ca82 size:4660
+weapons/models/c4/materials/weapon_c4_digits_vmat_g_tcolor_6dc78c9e.vtex_c CRC:000a0f569e size:2000
weapons/models/c4/materials/weapon_c4_digits_vmat_g_tmetalness_5818ca09.vtex_c CRC:00702fc683 size:2256
-weapons/models/c4/weapon_c4.vmdl_c CRC:006f816ff5 size:470164
+weapons/models/c4/weapon_c4.vmdl_c CRC:00d9190618 size:468916
weapons/models/cz75a/materials/composite_inputs/weapon_pist_cz75a_cavity_psd_ffc5ea6f.vtex_c CRC:0083759f3e size:706616
weapons/models/cz75a/materials/composite_inputs/weapon_pist_cz75a_composite_inputs.vmat_c CRC:00cab58bff size:3929
weapons/models/cz75a/materials/composite_inputs/weapon_pist_cz75a_masks_png_bb8e5559.vtex_c CRC:00c8d75ff0 size:188419
@@ -136442,7 +136451,7 @@ weapons/paints/community/community_37/p90_deathgaze.vcompmat_c CRC:009016d88e si
weapons/paints/community/community_37/sawedoff_fusion.vcompmat_c CRC:00135969c4 size:5812
weapons/paints/community/community_37/ump_fragment.vcompmat_c CRC:009bc9c301 size:5833
weapons/paints/community/community_37/usps_silent_boy.vcompmat_c CRC:00a4c87d7a size:5907
-weapons/paints/legacy/_shared_paint_generic.vcompmat_c CRC:002dccc7cf size:3038
+weapons/paints/legacy/_shared_paint_generic.vcompmat_c CRC:0008e69648 size:3096
weapons/paints/legacy/aa_ancient_brown.vcompmat_c CRC:00a92f27e9 size:1681
weapons/paints/legacy/aa_awp_fade.vcompmat_c CRC:0094e96f18 size:1612
weapons/paints/legacy/aa_desert_bloom_bright.vcompmat_c CRC:00cb8b3cb9 size:1704
game/csgo/pak01_dir/cfg/video_defaults_0.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -12,6 +12,7 @@
"setting.videocfg_texture_detail" "0"
"setting.videocfg_particle_detail" "0"
"setting.videocfg_ao_detail" "0"
+ "setting.videocfg_parallax_detail" "0"
"setting.videocfg_hdr_detail" "3"
"setting.videocfg_fsr_detail" "3"
game/csgo/pak01_dir/cfg/video_defaults_1.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -12,6 +12,7 @@
"setting.videocfg_texture_detail" "1"
"setting.videocfg_particle_detail" "1"
"setting.videocfg_ao_detail" "0"
+ "setting.videocfg_parallax_detail" "0"
"setting.videocfg_hdr_detail" "3"
"setting.videocfg_fsr_detail" "2"
game/csgo/pak01_dir/cfg/video_defaults_2.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -12,6 +12,7 @@
"setting.videocfg_texture_detail" "2"
"setting.videocfg_particle_detail" "2"
"setting.videocfg_ao_detail" "2"
+ "setting.videocfg_parallax_detail" "1"
"setting.videocfg_hdr_detail" "-1"
"setting.videocfg_fsr_detail" "0"
game/csgo/pak01_dir/cfg/video_defaults_3.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -12,6 +12,7 @@
"setting.videocfg_texture_detail" "2"
"setting.videocfg_particle_detail" "3"
"setting.videocfg_ao_detail" "3"
+ "setting.videocfg_parallax_detail" "1"
"setting.videocfg_hdr_detail" "-1"
"setting.videocfg_fsr_detail" "0"
game/csgo/pak01_dir/cfg/video_version.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -1,5 +1,5 @@
// Bump the version number to force auto config to be re-run so that the local settings will be re-generated from the appropriate video_defaults_#.txt
"video_version.txt"
{
- "Version" "16"
+ "Version" "17"
}
game/csgo/pak01_dir/panorama/layout/settings/settings_video.xml
modified • +8 / -0 • changes: 8
Show patch
@@ -253,6 +253,14 @@
</CSGOSettingsEnumDropDown>
</TooltipPanel>
<Panel class="horizontal-separator" />
+ <TooltipPanel class="SettingsMenuDropdownContainer" tooltip="#SFUI_Settings_Parallax_Info" id="ParallaxPanel">
+ <Label text="#SFUI_Settings_Parallax" class="half-width" />
+ <CSGOSettingsEnumDropDown onuserinputsubmit="SettingsMenuShared.VideoSettingsEnableDiscard()" oninputsubmit="CSGOVideoChanged(&apos;&apos;)" class="PopupButton White" id="ParallaxDetail">
+ <Label text="#SFUI_Settings_Disabled" value="0" id="parallax0" />
+ <Label text="#SFUI_Settings_Enabled" value="1" id="parallax1" />
+ </CSGOSettingsEnumDropDown>
+ </TooltipPanel>
+ <Panel class="horizontal-separator" id="ParallaxSeparator" />
<TooltipPanel class="SettingsMenuDropdownContainer" tooltip="#SFUI_Settings_HDR_Info">
<Label text="#SFUI_Settings_HDR" class="half-width" />
<CSGOSettingsEnumDropDown onuserinputsubmit="SettingsMenuShared.VideoSettingsEnableDiscard()" oninputsubmit="CSGOVideoChanged(&apos;&apos;)" class="PopupButton White" id="HDR">
game/csgo/pak01_dir/resource/csgo_english.txt
modified • +2 / -0 • changes: 2
Show patch
@@ -44560,6 +44560,8 @@
"SFUI_Settings_AOProxy" "Ambient Occlusion"
"SFUI_Settings_AOProxy_Info" "Calculate lighting using Ambient Occlusion. Enabling Ambient Occlusion can degrade graphics performance."
+ "SFUI_Settings_Parallax" "Parallax Occlusion Mapping"
+ "SFUI_Settings_Parallax_Info" "Gives some surfaces, such as snow, real looking depth. Enabling it can degrade graphics performance."
"SFUI_Settings_FSR" "FidelityFX Super Resolution"
"SFUI_Settings_FSR_Info" "FidelityFX Super Resolution may improve performance by rendering at reduced resolution and upscaling using a high-quality spatial technique."
game/csgo/pak01_dir/scripts/ai/retakes/bt_config.kv3
added • +453 / -0 • changes: 453
Show patch
@@ -0,0 +1,453 @@
+<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
+{
+ default =
+ {
+ aim_target_acquisition_lerp_time = 0.7
+ aim_target_acquisition_lerp_time_deviation = 0.1
+ aim_target_acquisition_angle_penalty = 7.0
+ aim_target_acquisition_angle_penalty_deviation = 2.0
+ aim_target_acquisition_angle_penalty_reduction_ratio = 0.3
+ aim_target_acquisition_angle_tolerance = 1.0
+ aim_target_acquisition_angle_lerp_bias = 0.75
+ aim_target_tracking_lerp_time = 0.1
+ aim_target_tracking_lerp_time_deviation = 0.05
+ aim_target_tracking_focus_interval = 0.07
+ aim_target_tracking_focus_interval_deviation = 0.02
+ aim_target_tracking_angle_lerp_bias = 0.35
+ aim_ready_angle_tolerance = 3.0
+ aim_new_target_angle_tolerance = 30.0
+ aim_max_duration = 0.9
+ aim_max_duration_deviation = 0.3
+ aim_punch_angle_reaction_chance = 0.5
+
+ look_around_awareness_yaw_range = 50
+ look_around_awareness_pitch_range = 10
+ look_around_focus_interval = 0.7
+ look_around_focus_interval_deviation = 0.2
+ look_around_lerp_time = 0.3
+ look_around_lerp_time_deviation = 0.05
+ look_around_lerp_bias = 0.5
+
+ reaction_time = 0.4
+
+ combat_crouch_chance = 0.1
+ combat_dodge_command_duration = 1.2
+ combat_dodge_command_duration_deviation = 0.2
+
+ attack =
+ [
+ // duration, duration deviation, cadence, cooldown, cooldown deviation
+
+ // KNIFE PISTOL SUBMACHINEGUN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ 0.95, 0.25, 0.5, 0.15, 0.05 ], [ 0.42, 0.07, 0.0, 0.15, 0.05 ],
+ // RIFLE SHOTGUN SNIPER_RIFLE
+ [ 0.22, 0.07, 0.0, 0.45, 0.15 ], [ 0.3, 0.0, 0.0, 0.95, 0.25 ], [ 0.22, 0.07, 0.0, 2.0, 0.0 ],
+ // MACHINEGUN C4 TASER
+ [ 0.75, 0.15, 0.0, 0.3, 0.1 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // GRENADE EQUIPMENT STACKABLEITEM
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // UNKNOWN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ]
+ ]
+ }
+ low =
+ {
+ aim_target_acquisition_lerp_time = 0.5
+ aim_target_acquisition_lerp_time_deviation = 0.1
+ aim_target_acquisition_angle_penalty = 5
+ aim_target_acquisition_angle_penalty_deviation = 1.5
+ aim_target_acquisition_angle_penalty_reduction_ratio = 0.8
+ aim_target_acquisition_angle_tolerance = 1.0
+ aim_target_acquisition_angle_lerp_bias = 0.5
+ aim_target_tracking_lerp_time = 0.65
+ aim_target_tracking_lerp_time_deviation = 0.1
+ aim_target_tracking_focus_interval = 0.35
+ aim_target_tracking_focus_interval_deviation = 0.1
+ aim_target_tracking_angle_lerp_bias = 0.5
+ aim_ready_angle_tolerance = 3.0
+ aim_new_target_angle_tolerance = 30.0
+ aim_max_duration = 1.1
+ aim_max_duration_deviation = 0.3
+ aim_punch_angle_reaction_chance = 0.35
+
+ look_around_awareness_yaw_range = 60
+ look_around_awareness_pitch_range = 20
+ look_around_focus_interval = 0.9
+ look_around_focus_interval_deviation = 0.4
+ look_around_lerp_time = 0.6
+ look_around_lerp_time_deviation = 0.1
+ look_around_lerp_bias = 0.25
+
+ reaction_time = 0.5
+
+ combat_crouch_chance = 0
+ combat_dodge_command_duration = 2.2
+ combat_dodge_command_duration_deviation = 0.3
+
+ attack =
+ [
+ // duration, duration deviation, cadence, cooldown, cooldown deviation
+
+ // KNIFE PISTOL SUBMACHINEGUN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ 0.95, 0.25, 0.6, 0.15, 0.05 ], [ 0.75, 0.15, 0.0, 0.25, 0.05 ],
+ // RIFLE SHOTGUN SNIPER_RIFLE
+ [ 0.95, 0.25, 0.0, 0.75, 0.15 ], [ 0.3, 0.0, 0.0, 0.8, 0.0 ], [ 0.22, 0.07, 0.0, 2.0, 0.0 ],
+ // MACHINEGUN C4 TASER
+ [ 1.45, 0.25, 0.0, 0.8, 0.1 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // GRENADE EQUIPMENT STACKABLEITEM
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // UNKNOWN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ]
+ ]
+ }
+ fair =
+ {
+ aim_target_acquisition_lerp_time = 0.45
+ aim_target_acquisition_lerp_time_deviation = 0.1
+ aim_target_acquisition_angle_penalty = 5
+ aim_target_acquisition_angle_penalty_deviation = 1.5
+ aim_target_acquisition_angle_penalty_reduction_ratio = 0.7
+ aim_target_acquisition_angle_tolerance = 1.0
+ aim_target_acquisition_angle_lerp_bias = 0.5
+ aim_target_tracking_lerp_time = 0.55
+ aim_target_tracking_lerp_time_deviation = 0.1
+ aim_target_tracking_focus_interval = 0.3
+ aim_target_tracking_focus_interval_deviation = 0.05
+ aim_target_tracking_angle_lerp_bias = 0.5
+ aim_ready_angle_tolerance = 3.0
+ aim_new_target_angle_tolerance = 30.0
+ aim_max_duration = 1.1
+ aim_max_duration_deviation = 0.3
+ aim_punch_angle_reaction_chance = 0.5
+
+ look_around_awareness_yaw_range = 60
+ look_around_awareness_pitch_range = 20
+ look_around_focus_interval = 0.9
+ look_around_focus_interval_deviation = 0.4
+ look_around_lerp_time = 0.55
+ look_around_lerp_time_deviation = 0.1
+ look_around_lerp_bias = 0.25
+
+ reaction_time = 0.5
+
+ combat_crouch_chance = 0.05
+ combat_dodge_command_duration = 1.3
+ combat_dodge_command_duration_deviation = 0.2
+
+ attack =
+ [
+ // duration, duration deviation, cadence, cooldown, cooldown deviation
+
+ // KNIFE PISTOL SUBMACHINEGUN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ 0.9, 0.2, 0.6, 0.15, 0.05 ], [ 0.42, 0.08, 0.0, 0.15, 0.05 ],
+ // RIFLE SHOTGUN SNIPER_RIFLE
+ [ 0.95, 0.25, 0.0, 0.65, 0.15 ], [ 0.3, 0.0, 0.0, 0.65, 0.0 ], [ 0.22, 0.07, 0.0, 2.0, 0.0 ],
+ // MACHINEGUN C4 TASER
+ [ 1.05, 0.15, 0.0, 0.65, 0.15 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // GRENADE EQUIPMENT STACKABLEITEM
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // UNKNOWN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ]
+ ]
+ }
+ normal =
+ {
+ aim_target_acquisition_lerp_time = 0.4
+ aim_target_acquisition_lerp_time_deviation = 0.1
+ aim_target_acquisition_angle_penalty = 5
+ aim_target_acquisition_angle_penalty_deviation = 1.5
+ aim_target_acquisition_angle_penalty_reduction_ratio = 0.6
+ aim_target_acquisition_angle_tolerance = 1.0
+ aim_target_acquisition_angle_lerp_bias = 0.5
+ aim_target_tracking_lerp_time = 0.5
+ aim_target_tracking_lerp_time_deviation = 0.1
+ aim_target_tracking_focus_interval = 0.275
+ aim_target_tracking_focus_interval_deviation = 0.05
+ aim_target_tracking_angle_lerp_bias = 0.5
+ aim_ready_angle_tolerance = 3.0
+ aim_new_target_angle_tolerance = 30.0
+ aim_max_duration = 1.1
+ aim_max_duration_deviation = 0.3
+ aim_punch_angle_reaction_chance = 0.55
+
+ look_around_awareness_yaw_range = 60
+ look_around_awareness_pitch_range = 20
+ look_around_focus_interval = 0.85
+ look_around_focus_interval_deviation = 0.4
+ look_around_lerp_time = 0.5
+ look_around_lerp_time_deviation = 0.05
+ look_around_lerp_bias = 0.25
+
+ reaction_time = 0.4
+
+ combat_crouch_chance = 0.1
+ combat_dodge_command_duration = 1.2
+ combat_dodge_command_duration_deviation = 0.2
+
+ attack =
+ [
+ // duration, duration deviation, cadence, cooldown, cooldown deviation
+
+ // KNIFE PISTOL SUBMACHINEGUN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ 0.95, 0.25, 0.5, 0.15, 0.05 ], [ 0.42, 0.07, 0.0, 0.15, 0.05 ],
+ // RIFLE SHOTGUN SNIPER_RIFLE
+ [ 0.22, 0.07, 0.0, 0.45, 0.15 ], [ 0.3, 0.0, 0.0, 0.95, 0.25 ], [ 0.22, 0.07, 0.0, 2.0, 0.0 ],
+ // MACHINEGUN C4 TASER
+ [ 0.75, 0.15, 0.0, 0.3, 0.1 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // GRENADE EQUIPMENT STACKABLEITEM
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // UNKNOWN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ]
+ ]
+ }
+ tough =
+ {
+ aim_target_acquisition_lerp_time = 0.375
+ aim_target_acquisition_lerp_time_deviation = 0.1
+ aim_target_acquisition_angle_penalty = 5
+ aim_target_acquisition_angle_penalty_deviation = 1.5
+ aim_target_acquisition_angle_penalty_reduction_ratio = 0.6
+ aim_target_acquisition_angle_tolerance = 1.0
+ aim_target_acquisition_angle_lerp_bias = 0.5
+ aim_target_tracking_lerp_time = 0.475
+ aim_target_tracking_lerp_time_deviation = 0.1
+ aim_target_tracking_focus_interval = 0.25
+ aim_target_tracking_focus_interval_deviation = 0.05
+ aim_target_tracking_angle_lerp_bias = 0.5
+ aim_ready_angle_tolerance = 3.0
+ aim_new_target_angle_tolerance = 30.0
+ aim_max_duration = 1.1
+ aim_max_duration_deviation = 0.3
+ aim_punch_angle_reaction_chance = 0.6
+
+ look_around_awareness_yaw_range = 60
+ look_around_awareness_pitch_range = 20
+ look_around_focus_interval = 0.85
+ look_around_focus_interval_deviation = 0.4
+ look_around_lerp_time = 0.45
+ look_around_lerp_time_deviation = 0.05
+ look_around_lerp_bias = 0.25
+
+ reaction_time = 0.35
+
+ combat_crouch_chance = 0.12
+ combat_dodge_command_duration = 1.05
+ combat_dodge_command_duration_deviation = 0.25
+
+ attack =
+ [
+ // duration, duration deviation, cadence, cooldown, cooldown deviation
+
+ // KNIFE PISTOL SUBMACHINEGUN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ 0.95, 0.25, 0.45, 0.125, 0.025 ], [ 0.4, 0.1, 0.0, 0.175, 0.025 ],
+ // RIFLE SHOTGUN SNIPER_RIFLE
+ [ 0.225, 0.075, 0.0, 0.32, 0.12 ], [ 0.3, 0.0, 0.0, 0.55, 0.1 ], [ 0.22, 0.07, 0.0, 2.0, 0.0 ],
+ // MACHINEGUN C4 TASER
+ [ 0.85, 0.25, 0.0, 0.3, 0.1 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // GRENADE EQUIPMENT STACKABLEITEM
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // UNKNOWN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ]
+ ]
+ }
+ hard =
+ {
+ aim_target_acquisition_lerp_time = 0.35
+ aim_target_acquisition_lerp_time_deviation = 0.1
+ aim_target_acquisition_angle_penalty = 5
+ aim_target_acquisition_angle_penalty_deviation = 1.5
+ aim_target_acquisition_angle_penalty_reduction_ratio = 0.55
+ aim_target_acquisition_angle_tolerance = 1.0
+ aim_target_acquisition_angle_lerp_bias = 0.45
+ aim_target_tracking_lerp_time = 0.45
+ aim_target_tracking_lerp_time_deviation = 0.1
+ aim_target_tracking_focus_interval = 0.2
+ aim_target_tracking_focus_interval_deviation = 0.05
+ aim_target_tracking_angle_lerp_bias = 0.5
+ aim_ready_angle_tolerance = 3.0
+ aim_new_target_angle_tolerance = 30.0
+ aim_max_duration = 1.1
+ aim_max_duration_deviation = 0.3
+ aim_punch_angle_reaction_chance = 0.65
+
+ look_around_awareness_yaw_range = 60
+ look_around_awareness_pitch_range = 20
+ look_around_focus_interval = 0.8
+ look_around_focus_interval_deviation = 0.3
+ look_around_lerp_time = 0.4
+ look_around_lerp_time_deviation = 0.05
+ look_around_lerp_bias = 0.25
+
+ reaction_time = 0.3
+
+ combat_crouch_chance = 0.22
+ combat_dodge_command_duration = 0.95
+ combat_dodge_command_duration_deviation = 0.25
+
+ attack =
+ [
+ // duration, duration deviation, cadence, cooldown, cooldown deviation
+
+ // KNIFE PISTOL SUBMACHINEGUN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ 0.95, 0.25, 0.4, 0.1, 0.0 ], [ 0.4, 0.1, 0.0, 0.175, 0.025 ],
+ // RIFLE SHOTGUN SNIPER_RIFLE
+ [ 0.225, 0.075, 0.0, 0.25, 0.05 ], [ 0.3, 0.0, 0.0, 0.375, 0.075 ], [ 0.22, 0.07, 0.0, 2.0, 0.0 ],
+ // MACHINEGUN C4 TASER
+ [ 0.9, 0.3, 0.0, 0.275, 0.075 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // GRENADE EQUIPMENT STACKABLEITEM
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // UNKNOWN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ]
+ ]
+ }
+ very_hard =
+ {
+ aim_target_acquisition_lerp_time = 0.3
+ aim_target_acquisition_lerp_time_deviation = 0.1
+ aim_target_acquisition_angle_penalty = 5
+ aim_target_acquisition_angle_penalty_deviation = 1.5
+ aim_target_acquisition_angle_penalty_reduction_ratio = 0.45
+ aim_target_acquisition_angle_tolerance = 1.0
+ aim_target_acquisition_angle_lerp_bias = 0.3
+ aim_target_tracking_lerp_time = 0.4
+ aim_target_tracking_lerp_time_deviation = 0.1
+ aim_target_tracking_focus_interval = 0.2
+ aim_target_tracking_focus_interval_deviation = 0.05
+ aim_target_tracking_angle_lerp_bias = 0.5
+ aim_ready_angle_tolerance = 3.0
+ aim_new_target_angle_tolerance = 30.0
+ aim_max_duration = 1.1
+ aim_max_duration_deviation = 0.3
+ aim_punch_angle_reaction_chance = 0.7
+
+ look_around_awareness_yaw_range = 60
+ look_around_awareness_pitch_range = 20
+ look_around_focus_interval = 0.7
+ look_around_focus_interval_deviation = 0.2
+ look_around_lerp_time = 0.35
+ look_around_lerp_time_deviation = 0.05
+ look_around_lerp_bias = 0.25
+
+ reaction_time = 0.25
+
+ combat_crouch_chance = 0.22
+ combat_dodge_command_duration = 0.95
+ combat_dodge_command_duration_deviation = 0.15
+
+ attack =
+ [
+ // duration, duration deviation, cadence, cooldown, cooldown deviation
+
+ // KNIFE PISTOL SUBMACHINEGUN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ 0.95, 0.25, 0.35, 0.05, 0.0 ], [ 0.4, 0.1, 0.0, 0.175, 0.025 ],
+ // RIFLE SHOTGUN SNIPER_RIFLE
+ [ 0.225, 0.075, 0.0, 0.2, 0.05 ], [ 0.3, 0.0, 0.0, 0.3, 0.05 ], [ 0.22, 0.07, 0.0, 2.0, 0.0 ],
+ // MACHINEGUN C4 TASER
+ [ 0.9, 0.3, 0.0, 0.25, 0.05 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // GRENADE EQUIPMENT STACKABLEITEM
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // UNKNOWN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ]
+ ]
+ }
+ expert =
+ {
+ aim_target_acquisition_lerp_time = 0.25
+ aim_target_acquisition_lerp_time_deviation = 0.1
+ aim_target_acquisition_angle_penalty = 5
+ aim_target_acquisition_angle_penalty_deviation = 1.5
+ aim_target_acquisition_angle_penalty_reduction_ratio = 0.35
+ aim_target_acquisition_angle_tolerance = 1.0
+ aim_target_acquisition_angle_lerp_bias = 0.3
+ aim_target_tracking_lerp_time = 0.3
+ aim_target_tracking_lerp_time_deviation = 0.1
+ aim_target_tracking_focus_interval = 0.15
+ aim_target_tracking_focus_interval_deviation = 0.05
+ aim_target_tracking_angle_lerp_bias = 0.5
+ aim_ready_angle_tolerance = 3.0
+ aim_new_target_angle_tolerance = 30.0
+ aim_max_duration = 1.1
+ aim_max_duration_deviation = 0.3
+ aim_punch_angle_reaction_chance = 0.75
+
+ look_around_awareness_yaw_range = 60
+ look_around_awareness_pitch_range = 20
+ look_around_focus_interval = 0.6
+ look_around_focus_interval_deviation = 0.2
+ look_around_lerp_time = 0.25
+ look_around_lerp_time_deviation = 0.05
+ look_around_lerp_bias = 0.25
+
+ reaction_time = 0.2
+
+ combat_crouch_chance = 0.33
+ combat_dodge_command_duration = 0.95
+ combat_dodge_command_duration_deviation = 0.15
+
+ attack =
+ [
+ // duration, duration deviation, cadence, cooldown, cooldown deviation
+
+ // KNIFE PISTOL SUBMACHINEGUN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ 0.95, 0.25, 0.25, 0.05, 0.0 ], [ 0.425, 0.075, 0.0, 0.125, 0.025 ],
+ // RIFLE SHOTGUN SNIPER_RIFLE
+ [ 0.225, 0.075, 0.0, 0.15, 0.05 ], [ 0.3, 0.0, 0.0, 0.25, 0.05 ], [ 0.22, 0.07, 0.0, 2.0, 0.0 ],
+ // MACHINEGUN C4 TASER
+ [ 0.9, 0.3, 0.0, 0.15, 0.05 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // GRENADE EQUIPMENT STACKABLEITEM
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // UNKNOWN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ]
+ ]
+ }
+ elite =
+ {
+ aim_target_acquisition_lerp_time = 0.15
+ aim_target_acquisition_lerp_time_deviation = 0.05
+ aim_target_acquisition_angle_penalty = 4
+ aim_target_acquisition_angle_penalty_deviation = 1.5
+ aim_target_acquisition_angle_penalty_reduction_ratio = 0.2
+ aim_target_acquisition_angle_tolerance = 1.0
+ aim_target_acquisition_angle_lerp_bias = 0.3
+ aim_target_tracking_lerp_time = 0.15
+ aim_target_tracking_lerp_time_deviation = 0.1
+ aim_target_tracking_focus_interval = 0.06
+ aim_target_tracking_focus_interval_deviation = 0.03
+ aim_target_tracking_angle_lerp_bias = 0.3
+ aim_ready_angle_tolerance = 3.0
+ aim_new_target_angle_tolerance = 30.0
+ aim_max_duration = 1.1
+ aim_max_duration_deviation = 0.3
+ aim_punch_angle_reaction_chance = 0.95
+
+ look_around_awareness_yaw_range = 60
+ look_around_awareness_pitch_range = 20
+ look_around_focus_interval = 0.4
+ look_around_focus_interval_deviation = 0.2
+ look_around_lerp_time = 0.15
+ look_around_lerp_time_deviation = 0.05
+ look_around_lerp_bias = 0.25
+
+ reaction_time = 0.12
+
+ combat_crouch_chance = 0.33
+ combat_dodge_command_duration = 0.95
+ combat_dodge_command_duration_deviation = 0.15
+
+ attack =
+ [
+ // duration, duration deviation, cadence, cooldown, cooldown deviation
+
+ // KNIFE PISTOL SUBMACHINEGUN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ 0.95, 0.25, 0.2, 0.05, 0.0 ], [ 0.425, 0.075, 0.0, 0.125, 0.025 ],
+ // RIFLE SHOTGUN SNIPER_RIFLE
+ [ 0.155, 0.035, 0.0, 0.15, 0.05 ], [ 0.3, 0.0, 0.0, 0.25, 0.05 ], [ 0.22, 0.07, 0.0, 2.0, 0.0 ],
+ // MACHINEGUN C4 TASER
+ [ 0.9, 0.3, 0.0, 0.15, 0.05 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // GRENADE EQUIPMENT STACKABLEITEM
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],
+ // UNKNOWN
+ [ -1.0, -1.0, -1.0, -1.0, -1.0 ]
+ ]
+ }
+}
game/csgo/pak01_dir/scripts/ai/retakes/bt_default.kv3
added • +156 / -0 • changes: 156
Show patch
@@ -0,0 +1,156 @@
+<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
+// Retakes bots. CTs defuse and push the site, Ts hide around the bomb.
+{
+ config = "scripts/ai/retakes/bt_config.kv3"
+ root =
+ {
+ type = "decorator_bot_service"
+ memory_to_expire =
+ [
+ {
+ key = "ShortTermAttackMemory"
+ time = 0.7
+ distance = 0
+ },
+ {
+ key = "LongTermMemory"
+ time = 10
+ distance = 500
+ },
+ {
+ key = "ShortTermInvestigateMemory"
+ time = 3
+ distance = 200
+ }
+ ]
+ child =
+ {
+ type = "parallel"
+ children =
+ [
+ {
+ type = "decorator_repeat"
+ child =
+ {
+ type = "parallel"
+ children =
+ [
+ // memorize enemies through vision
+ {
+ type = "subtree"
+ file = "scripts/ai/modules/bt_memorize_enemies_vision.kv3"
+ name = "MemorizeEnemiesVision"
+ },
+ // memorize noises happening right now
+ {
+ type = "subtree"
+ file = "scripts/ai/modules/bt_memorize_noises.kv3"
+ name = "MemorizeNoises"
+ },
+ // record the nearest memorized event to investigate
+ {
+ type = "subtree"
+ file = "scripts/ai/modules/bt_memorize_nearest_investigation.kv3"
+ name = "MemorizeNearestInvestigation"
+ }
+ ]
+ }
+ },
+ {
+ type = "decorator_repeat"
+ child =
+ {
+ type = "selector"
+ children =
+ [
+ // face the damage source if we're taking damage
+ {
+ type = "decorator_sensor"
+ entity_type_filter = "DAMAGE"
+ output = "Damage"
+ priority = 0
+ child =
+ {
+ type = "condition_is_empty"
+ input = "Damage"
+ negated = 1
+ child =
+ {
+ type = "action_aim"
+ input = "Damage"
+ acquire_only = 1
+ }
+ }
+ },
+ // Else: attack if we see an enemy
+ {
+ type = "subtree"
+ file = "scripts/ai/modules/bt_attack.kv3"
+ name = "Attack"
+ },
+ // Else: one CT goes for the defuse
+ {
+ type = "condition_is_equal"
+ source = "TeamName"
+ destination = "'CT'"
+ child =
+ {
+ type = "subtree"
+ file = "scripts/ai/retakes/modules/bt_defuse_planted_bomb.kv3"
+ name = "DefusePlantedBomb"
+ }
+ },
+ // Else: Ts take cover around the bomb
+ {
+ type = "condition_is_equal"
+ source = "TeamName"
+ destination = "'T'"
+ child =
+ {
+ type = "subtree"
+ file = "scripts/ai/retakes/modules/bt_hide_near_planted_bomb.kv3"
+ name = "HideNearPlantedBomb"
+ }
+ },
+ // Else: CTs push onto the site
+ {
+ type = "condition_is_equal"
+ source = "TeamName"
+ destination = "'CT'"
+ child =
+ {
+ type = "subtree"
+ file = "scripts/ai/retakes/modules/bt_hold_near_planted_bomb.kv3"
+ name = "HoldNearPlantedBomb"
+ }
+ },
+ // Else: investigate the closest memorized event
+ {
+ type = "subtree"
+ file = "scripts/ai/modules/bt_investigate_closest_memorized_event.kv3"
+ name = "InvestigateClosestMemorizedEvent"
+ },
+ // Else: hunt. Only reached with no bomb, like warmup.
+ {
+ type = "sequencer"
+ children =
+ [
+ {
+ type = "decorator_random_approach_point"
+ output = "TargetHuntArea"
+ },
+ {
+ type = "action_move_to"
+ destination = "TargetHuntArea"
+ movement_type = "BT_ACTION_MOVETO_RUN"
+ route_type = "BT_ACTION_MOVETO_FASTEST_ROUTE"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+}
game/csgo/pak01_dir/scripts/ai/retakes/modules/bt_defuse_planted_bomb.kv3
added • +53 / -0 • changes: 53
Show patch
@@ -0,0 +1,53 @@
+<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
+// Run to the planted bomb anywhere on the map and hold use on it. One bot at a time.
+{
+ type = "decorator_sensor"
+ entity_type_filter = "CLASSNAME"
+ class_name = "planted_c4"
+ output = "PlantedBomb"
+ priority = 1
+ child =
+ {
+ type = "condition_is_empty"
+ input = "PlantedBomb"
+ negated = 1
+ child =
+ {
+ type = "decorator_try_lock"
+ domain = "'DefusePlantedBomb'"
+ child =
+ {
+ type = "sequencer"
+ children =
+ [
+ {
+ type = "action_move_to"
+ destination = "PlantedBomb"
+ movement_type = "BT_ACTION_MOVETO_RUN"
+ route_type = "BT_ACTION_MOVETO_FASTEST_ROUTE"
+ threat = "NearestThreatMemory"
+ nearest_area_distance_threshold = 20
+ arrival_epsilon = 35
+ },
+ {
+ type = "action_look_at"
+ input_location = "PlantedBomb"
+ },
+ {
+ type = "action_wait"
+ wait_time_min = 0.25
+ wait_time_max = 0.25
+ },
+ // keep pressing use so the defuse doesn't cancel
+ {
+ type = "decorator_repeat"
+ child =
+ {
+ type = "action_use"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
game/csgo/pak01_dir/scripts/ai/retakes/modules/bt_hide_near_planted_bomb.kv3
added • +124 / -0 • changes: 124
Show patch
@@ -0,0 +1,124 @@
+<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
+// Move to a random spot near the planted bomb, then take the nearest free hiding spot and watch where enemies could come from.
+{
+ type = "decorator_sensor"
+ entity_type_filter = "CLASSNAME"
+ class_name = "planted_c4"
+ output = "PlantedBomb"
+ priority = 1
+ child =
+ {
+ type = "condition_is_empty"
+ input = "PlantedBomb"
+ negated = 1
+ child =
+ {
+ type = "sequencer"
+ children =
+ [
+ {
+ type = "action_choose_random_waypoint_within_radius"
+ origin = "PlantedBomb"
+ radius = 500
+ output = "BombHoldSpot"
+ },
+ {
+ type = "action_move_to"
+ destination = "BombHoldSpot"
+ movement_type = "BT_ACTION_MOVETO_RUN"
+ route_type = "BT_ACTION_MOVETO_FASTEST_ROUTE"
+ threat = "NearestThreatMemory"
+ },
+ {
+ type = "selector"
+ children =
+ [
+ // take cover at the closest hiding spot nobody is in
+ {
+ type = "sequencer"
+ children =
+ [
+ {
+ type = "action_hide"
+ max_range = 400
+ output = "BombHidingSpot"
+ },
+ {
+ type = "action_move_to"
+ destination = "BombHidingSpot"
+ movement_type = "BT_ACTION_MOVETO_RUN"
+ route_type = "BT_ACTION_MOVETO_FASTEST_ROUTE"
+ threat = "NearestThreatMemory"
+ arrival_epsilon = 20
+ },
+ // only stay if no teammate got here first
+ {
+ type = "decorator_sensor"
+ entity_type_filter = "PLAYERS"
+ team_filter = "SAME"
+ shape =
+ {
+ type = "sensor_shape_sphere"
+ radius = 80
+ }
+ output = "TeammatesAtSpot"
+ child =
+ {
+ type = "condition_is_empty"
+ input = "TeammatesAtSpot"
+ child =
+ {
+ type = "decorator_repeat"
+ amount = 4
+ child =
+ {
+ type = "subtree"
+ file = "scripts/ai/retakes/modules/bt_watch_approach_points.kv3"
+ name = "WatchApproachPoints"
+ }
+ }
+ }
+ }
+ ]
+ },
+ // Else: a teammate already has this spot, leave so we pick another one
+ {
+ type = "decorator_sensor"
+ entity_type_filter = "PLAYERS"
+ team_filter = "SAME"
+ shape =
+ {
+ type = "sensor_shape_sphere"
+ radius = 80
+ }
+ output = "TeammatesAtSpot"
+ child =
+ {
+ type = "condition_is_empty"
+ input = "TeammatesAtSpot"
+ negated = 1
+ child =
+ {
+ type = "action_wait"
+ wait_time_min = 0.1
+ wait_time_max = 0.1
+ }
+ }
+ },
+ // Else: no hiding spot nearby, watch from here for a bit
+ {
+ type = "decorator_repeat"
+ amount = 2
+ child =
+ {
+ type = "subtree"
+ file = "scripts/ai/retakes/modules/bt_watch_approach_points.kv3"
+ name = "WatchApproachPoints"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
game/csgo/pak01_dir/scripts/ai/retakes/modules/bt_hold_near_planted_bomb.kv3
added • +40 / -0 • changes: 40
Show patch
@@ -0,0 +1,40 @@
+<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
+// Move to a random spot near the planted bomb and hold it for a few seconds, then pick a new spot.
+{
+ type = "decorator_sensor"
+ entity_type_filter = "CLASSNAME"
+ class_name = "planted_c4"
+ output = "PlantedBomb"
+ priority = 1
+ child =
+ {
+ type = "condition_is_empty"
+ input = "PlantedBomb"
+ negated = 1
+ child =
+ {
+ type = "sequencer"
+ children =
+ [
+ {
+ type = "action_choose_random_waypoint_within_radius"
+ origin = "PlantedBomb"
+ radius = 500
+ output = "BombHoldSpot"
+ },
+ {
+ type = "action_move_to"
+ destination = "BombHoldSpot"
+ movement_type = "BT_ACTION_MOVETO_RUN"
+ route_type = "BT_ACTION_MOVETO_FASTEST_ROUTE"
+ threat = "NearestThreatMemory"
+ },
+ {
+ type = "action_wait"
+ wait_time_min = 3
+ wait_time_max = 6
+ }
+ ]
+ }
+ }
+}
game/csgo/pak01_dir/scripts/ai/retakes/modules/bt_watch_approach_points.kv3
added • +21 / -0 • changes: 21
Show patch
@@ -0,0 +1,21 @@
+<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
+// Face a spot enemies could come from and watch it for a few seconds.
+{
+ type = "sequencer"
+ children =
+ [
+ {
+ type = "decorator_random_approach_point"
+ output = "WatchPoint"
+ },
+ {
+ type = "action_look_at"
+ input_location = "WatchPoint"
+ },
+ {
+ type = "action_wait"
+ wait_time_min = 2
+ wait_time_max = 4
+ }
+ ]
+}
game/csgo/readonly_tools_asset_info.txt
modified • +4 / -1 • changes: 5
Show patch
@@ -106658,7 +106658,6 @@ materials/de_inferno/ground/inferno_stone_floor_08_ao_tga_961ee77e.vtex
materials/de_inferno/ground/inferno_stone_floor_08_color_tga_199a7503.vtex
materials/trim/concrete_trim_02_ao_tga_68704a36.vtex
materials/trim/concrete_trim_02_color_tga_971de7c0.vtex
-weapons/models/c4/materials/c4_digits_psd_52746c2d.vtex
weapons/models/c4/materials/weapon_c4_digits_vmat_g_tmetalness_5818ca09.vtex
weapons/models/shared/shells/shotgun/mag7_bullet_color_psd_29ec1a9d.vtex
maps/ar_shoots_night.vmap
@@ -134924,3 +134923,7 @@ panorama/layout/hud/hudmutators.vxml
panorama/styles/hud/hudmutators.vcss
sounds/graphs/bighead_pitch.vsnd
panorama/images/econ/keychains/bud2025/kc_bud2025_png.vtex
+materials/dev/frost.vtex
+weapons/models/c4/materials/c4_digits_mask_psd_3de339d1.vtex
+weapons/models/c4/materials/c4_digits_psd_f79d8a5b.vtex
+weapons/models/c4/materials/weapon_c4_digits_vmat_g_tcolor_6dc78c9e.vtex
game/csgo/shaders_pc_dir.txt
modified • +199 / -199 • changes: 398
Show patch
@@ -1,10 +1,10 @@
shaders/vfx/bilateral_upsample.ini CRC:0000000000 size:0
-shaders/vfx/bilateral_upsample_pc_50_features.vcs CRC:0034e7463f size:1746
-shaders/vfx/bilateral_upsample_pc_50_ps.vcs CRC:00e1ae0d6b size:2684
+shaders/vfx/bilateral_upsample_pc_50_features.vcs CRC:006c4f6911 size:1762
+shaders/vfx/bilateral_upsample_pc_50_ps.vcs CRC:00042818cd size:2684
shaders/vfx/bilateral_upsample_pc_50_vs.vcs CRC:00f096d35d size:2526
shaders/vfx/bloom_cs.ini CRC:0000000000 size:0
-shaders/vfx/bloom_cs_pc_50_cs.vcs CRC:003c640dc0 size:9081
-shaders/vfx/bloom_cs_pc_50_features.vcs CRC:008fd509b8 size:2018
+shaders/vfx/bloom_cs_pc_50_cs.vcs CRC:00db01272e size:9081
+shaders/vfx/bloom_cs_pc_50_features.vcs CRC:0074832d4b size:2018
shaders/vfx/blur.ini CRC:0000000000 size:0
shaders/vfx/blur_pc_50_features.vcs CRC:001ea646d8 size:2098
shaders/vfx/blur_pc_50_ps.vcs CRC:0080a05570 size:14418
@@ -18,10 +18,10 @@ shaders/vfx/bomb_blast_pc_50_features.vcs CRC:007c0852a7 size:1682
shaders/vfx/bomb_blast_pc_50_ps.vcs CRC:001870c92e size:2718
shaders/vfx/bomb_blast_pc_50_vs.vcs CRC:00d87cc785 size:2253
shaders/vfx/cables.ini CRC:0000000000 size:0
-shaders/vfx/cables_pc_50_features.vcs CRC:001ff5763c size:4690
-shaders/vfx/cables_pc_50_ps.vcs CRC:0038710ee4 size:256518
-shaders/vfx/cables_pc_50_psrs.vcs CRC:00ebbb81fb size:3266
-shaders/vfx/cables_pc_50_vs.vcs CRC:0076b3ef42 size:22671
+shaders/vfx/cables_pc_50_features.vcs CRC:00006c1e1c size:4690
+shaders/vfx/cables_pc_50_ps.vcs CRC:000e95ec88 size:256463
+shaders/vfx/cables_pc_50_psrs.vcs CRC:00b935a061 size:3282
+shaders/vfx/cables_pc_50_vs.vcs CRC:00f307b471 size:22671
shaders/vfx/cs_color_picker.ini CRC:0000000000 size:0
shaders/vfx/cs_color_picker_pc_50_features.vcs CRC:00b8399ca8 size:1394
shaders/vfx/cs_color_picker_pc_50_ps.vcs CRC:00532d7d2a size:1843
@@ -31,25 +31,25 @@ shaders/vfx/csgo_alpha_immunity_pc_50_features.vcs CRC:0028b20085 size:1698
shaders/vfx/csgo_alpha_immunity_pc_50_ps.vcs CRC:00b932a9b1 size:1937
shaders/vfx/csgo_alpha_immunity_pc_50_vs.vcs CRC:009d972d06 size:1935
shaders/vfx/csgo_beachfoam.ini CRC:0000000000 size:0
-shaders/vfx/csgo_beachfoam_pc_50_features.vcs CRC:00a69a0c5d size:3282
-shaders/vfx/csgo_beachfoam_pc_50_ps.vcs CRC:00bd3c0ca7 size:4373
-shaders/vfx/csgo_beachfoam_pc_50_psrs.vcs CRC:00a641f69c size:1826
-shaders/vfx/csgo_beachfoam_pc_50_vs.vcs CRC:001bdb8e1b size:10066
+shaders/vfx/csgo_beachfoam_pc_50_features.vcs CRC:00d55e96ba size:3298
+shaders/vfx/csgo_beachfoam_pc_50_ps.vcs CRC:00e9d92dda size:4373
+shaders/vfx/csgo_beachfoam_pc_50_psrs.vcs CRC:0024b3b21e size:1826
+shaders/vfx/csgo_beachfoam_pc_50_vs.vcs CRC:00f256386b size:10066
shaders/vfx/csgo_black_unlit.ini CRC:0000000000 size:0
-shaders/vfx/csgo_black_unlit_pc_50_features.vcs CRC:006b997500 size:2658
-shaders/vfx/csgo_black_unlit_pc_50_ps.vcs CRC:00db0acfad size:3782
-shaders/vfx/csgo_black_unlit_pc_50_psrs.vcs CRC:000a9a08e4 size:1794
-shaders/vfx/csgo_black_unlit_pc_50_vs.vcs CRC:00b4f45add size:5438
+shaders/vfx/csgo_black_unlit_pc_50_features.vcs CRC:00e6ea9e1c size:2658
+shaders/vfx/csgo_black_unlit_pc_50_ps.vcs CRC:00d062960d size:3782
+shaders/vfx/csgo_black_unlit_pc_50_psrs.vcs CRC:005a2ae455 size:1794
+shaders/vfx/csgo_black_unlit_pc_50_vs.vcs CRC:004a5323fa size:5454
shaders/vfx/csgo_character.ini CRC:0000000000 size:0
-shaders/vfx/csgo_character_pc_50_features.vcs CRC:00f06dd1c3 size:8978
-shaders/vfx/csgo_character_pc_50_ps.vcs CRC:000bbac0ac size:189827159
-shaders/vfx/csgo_character_pc_50_psrs.vcs CRC:00b02597dd size:3474
-shaders/vfx/csgo_character_pc_50_vs.vcs CRC:0055266743 size:1087605
+shaders/vfx/csgo_character_pc_50_features.vcs CRC:008eefeaa7 size:9010
+shaders/vfx/csgo_character_pc_50_ps.vcs CRC:005a31661e size:207470863
+shaders/vfx/csgo_character_pc_50_psrs.vcs CRC:00fc9939ed size:3474
+shaders/vfx/csgo_character_pc_50_vs.vcs CRC:0006510e27 size:1122552
shaders/vfx/csgo_complex.ini CRC:0000000000 size:0
-shaders/vfx/csgo_complex_pc_50_features.vcs CRC:002c54617b size:7442
-shaders/vfx/csgo_complex_pc_50_ps.vcs CRC:00c7b99669 size:28492560
+shaders/vfx/csgo_complex_pc_50_features.vcs CRC:002361cfa7 size:7458
+shaders/vfx/csgo_complex_pc_50_ps.vcs CRC:00788902eb size:28676540
shaders/vfx/csgo_complex_pc_50_psrs.vcs CRC:0052229d16 size:3186
-shaders/vfx/csgo_complex_pc_50_vs.vcs CRC:0077bd33e4 size:253601
+shaders/vfx/csgo_complex_pc_50_vs.vcs CRC:002bdb8f50 size:253636
shaders/vfx/csgo_composite_generic.ini CRC:0000000000 size:0
shaders/vfx/csgo_composite_generic_pc_50_features.vcs CRC:0056569b3f size:1778
shaders/vfx/csgo_composite_generic_pc_50_ps.vcs CRC:004276e0a8 size:2028
@@ -71,103 +71,103 @@ shaders/vfx/csgo_crosshair_pc_50_features.vcs CRC:00f12acb43 size:1730
shaders/vfx/csgo_crosshair_pc_50_ps.vcs CRC:00ec3b135b size:3493
shaders/vfx/csgo_crosshair_pc_50_vs.vcs CRC:004ff0a9c9 size:1438
shaders/vfx/csgo_customglove.ini CRC:0000000000 size:0
-shaders/vfx/csgo_customglove_pc_50_features.vcs CRC:0004c59a8b size:11538
-shaders/vfx/csgo_customglove_pc_50_ps.vcs CRC:0067b422db size:38190
+shaders/vfx/csgo_customglove_pc_50_features.vcs CRC:004931493e size:11538
+shaders/vfx/csgo_customglove_pc_50_ps.vcs CRC:00d78330d8 size:38190
shaders/vfx/csgo_customglove_pc_50_vs.vcs CRC:003c0a3fbf size:3732
shaders/vfx/csgo_customglove_preview.ini CRC:0000000000 size:0
-shaders/vfx/csgo_customglove_preview_pc_50_features.vcs CRC:002c379f80 size:9714
-shaders/vfx/csgo_customglove_preview_pc_50_ps.vcs CRC:00f807d88f size:66324
-shaders/vfx/csgo_customglove_preview_pc_50_psrs.vcs CRC:009b036760 size:1874
-shaders/vfx/csgo_customglove_preview_pc_50_vs.vcs CRC:009109a76d size:12642
+shaders/vfx/csgo_customglove_preview_pc_50_features.vcs CRC:00cf860234 size:9714
+shaders/vfx/csgo_customglove_preview_pc_50_ps.vcs CRC:005b883d0c size:66365
+shaders/vfx/csgo_customglove_preview_pc_50_psrs.vcs CRC:0076bdde45 size:1874
+shaders/vfx/csgo_customglove_preview_pc_50_vs.vcs CRC:007fe752e7 size:12656
shaders/vfx/csgo_customweapon.ini CRC:0000000000 size:0
-shaders/vfx/csgo_customweapon_pc_50_features.vcs CRC:00f5faa539 size:6642
-shaders/vfx/csgo_customweapon_pc_50_ps.vcs CRC:00bf16439b size:2369483
+shaders/vfx/csgo_customweapon_pc_50_features.vcs CRC:00d0dbb0d1 size:6642
+shaders/vfx/csgo_customweapon_pc_50_ps.vcs CRC:0066543773 size:2369483
shaders/vfx/csgo_customweapon_pc_50_vs.vcs CRC:00aef77df3 size:3926
shaders/vfx/csgo_decal_renderer.ini CRC:0000000000 size:0
-shaders/vfx/csgo_decal_renderer_pc_50_features.vcs CRC:00ad4c4fd7 size:1986
-shaders/vfx/csgo_decal_renderer_pc_50_ps.vcs CRC:002caf0993 size:2311
-shaders/vfx/csgo_decal_renderer_pc_50_vs.vcs CRC:00898d6700 size:4014
+shaders/vfx/csgo_decal_renderer_pc_50_features.vcs CRC:00205d1ed4 size:1986
+shaders/vfx/csgo_decal_renderer_pc_50_ps.vcs CRC:00c9bee2cb size:2311
+shaders/vfx/csgo_decal_renderer_pc_50_vs.vcs CRC:009f750384 size:4014
shaders/vfx/csgo_decalmodulate.ini CRC:0000000000 size:0
-shaders/vfx/csgo_decalmodulate_pc_50_features.vcs CRC:00512501a2 size:3426
-shaders/vfx/csgo_decalmodulate_pc_50_ps.vcs CRC:00eafa1455 size:3743
-shaders/vfx/csgo_decalmodulate_pc_50_psrs.vcs CRC:00c3bbd8e9 size:1890
-shaders/vfx/csgo_decalmodulate_pc_50_vs.vcs CRC:00a96d1538 size:15536
+shaders/vfx/csgo_decalmodulate_pc_50_features.vcs CRC:006f5f0fb8 size:3426
+shaders/vfx/csgo_decalmodulate_pc_50_ps.vcs CRC:0031250161 size:3743
+shaders/vfx/csgo_decalmodulate_pc_50_psrs.vcs CRC:007c80e187 size:1906
+shaders/vfx/csgo_decalmodulate_pc_50_vs.vcs CRC:005bab6986 size:15536
shaders/vfx/csgo_depth_only.ini CRC:0000000000 size:0
-shaders/vfx/csgo_depth_only_pc_50_features.vcs CRC:00dc9a4723 size:3218
-shaders/vfx/csgo_depth_only_pc_50_ps.vcs CRC:00ae9f5104 size:4588
-shaders/vfx/csgo_depth_only_pc_50_vs.vcs CRC:0026d0d00d size:9367
+shaders/vfx/csgo_depth_only_pc_50_features.vcs CRC:00690fd609 size:3234
+shaders/vfx/csgo_depth_only_pc_50_ps.vcs CRC:00da61265c size:4604
+shaders/vfx/csgo_depth_only_pc_50_vs.vcs CRC:00ebcbccf1 size:9367
shaders/vfx/csgo_dronecam.ini CRC:0000000000 size:0
shaders/vfx/csgo_dronecam_pc_50_features.vcs CRC:00c669bb55 size:1778
shaders/vfx/csgo_dronecam_pc_50_ps.vcs CRC:0064da1316 size:2617
shaders/vfx/csgo_dronecam_pc_50_vs.vcs CRC:0080ed5afd size:1419
shaders/vfx/csgo_effects.ini CRC:0000000000 size:0
-shaders/vfx/csgo_effects_pc_50_features.vcs CRC:0030264a33 size:4210
-shaders/vfx/csgo_effects_pc_50_ps.vcs CRC:00fdbf6300 size:85300
-shaders/vfx/csgo_effects_pc_50_psrs.vcs CRC:00e60f45eb size:2242
-shaders/vfx/csgo_effects_pc_50_vs.vcs CRC:00a4824733 size:12391
+shaders/vfx/csgo_effects_pc_50_features.vcs CRC:0013a5d2c7 size:4226
+shaders/vfx/csgo_effects_pc_50_ps.vcs CRC:004f3dc82d size:85300
+shaders/vfx/csgo_effects_pc_50_psrs.vcs CRC:00153d4526 size:2242
+shaders/vfx/csgo_effects_pc_50_vs.vcs CRC:00ba26d49a size:12391
shaders/vfx/csgo_environment.ini CRC:0000000000 size:0
shaders/vfx/csgo_environment_blend.ini CRC:0000000000 size:0
-shaders/vfx/csgo_environment_blend_pc_50_features.vcs CRC:00628a172a size:10802
-shaders/vfx/csgo_environment_blend_pc_50_ps.vcs CRC:00a1f5b123 size:16771460
-shaders/vfx/csgo_environment_blend_pc_50_psrs.vcs CRC:009b0d6923 size:2498
-shaders/vfx/csgo_environment_blend_pc_50_vs.vcs CRC:00a98781f0 size:262853
-shaders/vfx/csgo_environment_pc_50_features.vcs CRC:004cc5e42a size:6402
-shaders/vfx/csgo_environment_pc_50_ps.vcs CRC:00e08c6423 size:586762
-shaders/vfx/csgo_environment_pc_50_psrs.vcs CRC:005fcd929b size:2450
-shaders/vfx/csgo_environment_pc_50_vs.vcs CRC:0020d390c7 size:108674
+shaders/vfx/csgo_environment_blend_pc_50_features.vcs CRC:00b4ff75e4 size:11298
+shaders/vfx/csgo_environment_blend_pc_50_ps.vcs CRC:00f90093db size:76670919
+shaders/vfx/csgo_environment_blend_pc_50_psrs.vcs CRC:001472f002 size:2722
+shaders/vfx/csgo_environment_blend_pc_50_vs.vcs CRC:007d04cd5e size:468956
+shaders/vfx/csgo_environment_pc_50_features.vcs CRC:00c59ec509 size:6834
+shaders/vfx/csgo_environment_pc_50_ps.vcs CRC:005275f316 size:2487759
+shaders/vfx/csgo_environment_pc_50_psrs.vcs CRC:004ac0f75e size:2594
+shaders/vfx/csgo_environment_pc_50_vs.vcs CRC:009a2a7cfe size:192935
shaders/vfx/csgo_eyeball.ini CRC:0000000000 size:0
-shaders/vfx/csgo_eyeball_pc_50_features.vcs CRC:000f2dfa98 size:3922
-shaders/vfx/csgo_eyeball_pc_50_ps.vcs CRC:00df4e7bc8 size:67003
-shaders/vfx/csgo_eyeball_pc_50_psrs.vcs CRC:00b0972c53 size:1650
-shaders/vfx/csgo_eyeball_pc_50_vs.vcs CRC:00f96baefc size:16917
+shaders/vfx/csgo_eyeball_pc_50_features.vcs CRC:0016b98da6 size:3922
+shaders/vfx/csgo_eyeball_pc_50_ps.vcs CRC:00e11218f9 size:66492
+shaders/vfx/csgo_eyeball_pc_50_psrs.vcs CRC:00072dbbdc size:1650
+shaders/vfx/csgo_eyeball_pc_50_vs.vcs CRC:00326c6a8e size:16917
shaders/vfx/csgo_flashbang_overlay.ini CRC:0000000000 size:0
-shaders/vfx/csgo_flashbang_overlay_pc_50_features.vcs CRC:00969e232f size:3506
-shaders/vfx/csgo_flashbang_overlay_pc_50_ps.vcs CRC:00da6182a6 size:3441
-shaders/vfx/csgo_flashbang_overlay_pc_50_psrs.vcs CRC:00c63abcc9 size:1810
-shaders/vfx/csgo_flashbang_overlay_pc_50_vs.vcs CRC:006f2f92dd size:10955
+shaders/vfx/csgo_flashbang_overlay_pc_50_features.vcs CRC:00629c8b47 size:3506
+shaders/vfx/csgo_flashbang_overlay_pc_50_ps.vcs CRC:00eb33329b size:3457
+shaders/vfx/csgo_flashbang_overlay_pc_50_psrs.vcs CRC:00cf9557be size:1810
+shaders/vfx/csgo_flashbang_overlay_pc_50_vs.vcs CRC:00a9beece1 size:10955
shaders/vfx/csgo_foliage.ini CRC:0000000000 size:0
-shaders/vfx/csgo_foliage_pc_50_features.vcs CRC:0024e6305a size:6546
-shaders/vfx/csgo_foliage_pc_50_ps.vcs CRC:00bfdccfd6 size:1780494
+shaders/vfx/csgo_foliage_pc_50_features.vcs CRC:00e75ed1a3 size:6562
+shaders/vfx/csgo_foliage_pc_50_ps.vcs CRC:00298e50c4 size:1792798
shaders/vfx/csgo_foliage_pc_50_psrs.vcs CRC:0031f2542c size:2338
-shaders/vfx/csgo_foliage_pc_50_vs.vcs CRC:002c7e7ad5 size:181743
+shaders/vfx/csgo_foliage_pc_50_vs.vcs CRC:00da5d427f size:181749
shaders/vfx/csgo_glass.ini CRC:0000000000 size:0
-shaders/vfx/csgo_glass_pc_50_features.vcs CRC:00d2842b3d size:4402
-shaders/vfx/csgo_glass_pc_50_ps.vcs CRC:003ea7ff8c size:331042
+shaders/vfx/csgo_glass_pc_50_features.vcs CRC:00fbb549d6 size:4418
+shaders/vfx/csgo_glass_pc_50_ps.vcs CRC:000f3b36cc size:331042
shaders/vfx/csgo_glass_pc_50_psrs.vcs CRC:005ac685d9 size:2818
-shaders/vfx/csgo_glass_pc_50_vs.vcs CRC:0025c5aa41 size:103464
+shaders/vfx/csgo_glass_pc_50_vs.vcs CRC:00949969fc size:103526
shaders/vfx/csgo_grenade_camera.ini CRC:0000000000 size:0
-shaders/vfx/csgo_grenade_camera_pc_50_features.vcs CRC:000c7874cb size:1890
-shaders/vfx/csgo_grenade_camera_pc_50_ps.vcs CRC:00d4fdb943 size:2964
+shaders/vfx/csgo_grenade_camera_pc_50_features.vcs CRC:006a5f3554 size:1890
+shaders/vfx/csgo_grenade_camera_pc_50_ps.vcs CRC:00fe98941f size:2964
shaders/vfx/csgo_grenade_camera_pc_50_vs.vcs CRC:0005d6a808 size:1408
shaders/vfx/csgo_legs_prepass.ini CRC:0000000000 size:0
-shaders/vfx/csgo_legs_prepass_pc_50_features.vcs CRC:004e844ea8 size:3074
-shaders/vfx/csgo_legs_prepass_pc_50_ps.vcs CRC:007aeda789 size:2033
-shaders/vfx/csgo_legs_prepass_pc_50_vs.vcs CRC:00a04b38b1 size:14653
+shaders/vfx/csgo_legs_prepass_pc_50_features.vcs CRC:00bc7d148c size:3074
+shaders/vfx/csgo_legs_prepass_pc_50_ps.vcs CRC:007fdbbe6a size:2033
+shaders/vfx/csgo_legs_prepass_pc_50_vs.vcs CRC:0081c22f2e size:14666
shaders/vfx/csgo_lightmapped_4wayblend.ini CRC:0000000000 size:0
-shaders/vfx/csgo_lightmapped_4wayblend_pc_50_features.vcs CRC:006c1c09f3 size:4594
-shaders/vfx/csgo_lightmapped_4wayblend_pc_50_ps.vcs CRC:007ea53fa7 size:388193
-shaders/vfx/csgo_lightmapped_4wayblend_pc_50_psrs.vcs CRC:003c1c6177 size:2050
-shaders/vfx/csgo_lightmapped_4wayblend_pc_50_vs.vcs CRC:00a217c744 size:46838
+shaders/vfx/csgo_lightmapped_4wayblend_pc_50_features.vcs CRC:006c523e22 size:4594
+shaders/vfx/csgo_lightmapped_4wayblend_pc_50_ps.vcs CRC:000552caf2 size:389420
+shaders/vfx/csgo_lightmapped_4wayblend_pc_50_psrs.vcs CRC:00fe2f5b08 size:2050
+shaders/vfx/csgo_lightmapped_4wayblend_pc_50_vs.vcs CRC:001d0e662e size:46836
shaders/vfx/csgo_lightmappedgeneric.ini CRC:0000000000 size:0
-shaders/vfx/csgo_lightmappedgeneric_pc_50_features.vcs CRC:00ab338200 size:7010
-shaders/vfx/csgo_lightmappedgeneric_pc_50_ps.vcs CRC:00d42aecf8 size:11580019
-shaders/vfx/csgo_lightmappedgeneric_pc_50_psrs.vcs CRC:00d26d1ffd size:3986
-shaders/vfx/csgo_lightmappedgeneric_pc_50_vs.vcs CRC:00766cc456 size:464239
+shaders/vfx/csgo_lightmappedgeneric_pc_50_features.vcs CRC:007da3545b size:7042
+shaders/vfx/csgo_lightmappedgeneric_pc_50_ps.vcs CRC:008c2aea61 size:11648526
+shaders/vfx/csgo_lightmappedgeneric_pc_50_psrs.vcs CRC:0054e765df size:4002
+shaders/vfx/csgo_lightmappedgeneric_pc_50_vs.vcs CRC:00f77e68b5 size:648944
shaders/vfx/csgo_moondome.ini CRC:0000000000 size:0
-shaders/vfx/csgo_moondome_pc_50_features.vcs CRC:004b2fc1ab size:3634
-shaders/vfx/csgo_moondome_pc_50_ps.vcs CRC:00ca9ad03d size:4945
-shaders/vfx/csgo_moondome_pc_50_psrs.vcs CRC:009f55912f size:1762
-shaders/vfx/csgo_moondome_pc_50_vs.vcs CRC:001bdb8e1b size:10066
+shaders/vfx/csgo_moondome_pc_50_features.vcs CRC:0020f98436 size:3650
+shaders/vfx/csgo_moondome_pc_50_ps.vcs CRC:007dda1bc9 size:4945
+shaders/vfx/csgo_moondome_pc_50_psrs.vcs CRC:00e49eec17 size:1762
+shaders/vfx/csgo_moondome_pc_50_vs.vcs CRC:00f256386b size:10066
shaders/vfx/csgo_panolayer_rt.ini CRC:0000000000 size:0
-shaders/vfx/csgo_panolayer_rt_pc_50_features.vcs CRC:00a63eaa01 size:1858
-shaders/vfx/csgo_panolayer_rt_pc_50_ps.vcs CRC:00cea846d3 size:2459
-shaders/vfx/csgo_panolayer_rt_pc_50_psrs.vcs CRC:00bcb37f20 size:1586
-shaders/vfx/csgo_panolayer_rt_pc_50_vs.vcs CRC:004f3c6ce2 size:1419
+shaders/vfx/csgo_panolayer_rt_pc_50_features.vcs CRC:00c1759f92 size:1858
+shaders/vfx/csgo_panolayer_rt_pc_50_ps.vcs CRC:00a8cd3e0c size:2475
+shaders/vfx/csgo_panolayer_rt_pc_50_psrs.vcs CRC:0029a0cc5e size:1586
+shaders/vfx/csgo_panolayer_rt_pc_50_vs.vcs CRC:00bce22fb9 size:1419
shaders/vfx/csgo_projected_decals.ini CRC:0000000000 size:0
-shaders/vfx/csgo_projected_decals_pc_50_features.vcs CRC:0000663690 size:5362
-shaders/vfx/csgo_projected_decals_pc_50_ps.vcs CRC:001cd181b2 size:38518294
-shaders/vfx/csgo_projected_decals_pc_50_psrs.vcs CRC:002ab260b2 size:2786
-shaders/vfx/csgo_projected_decals_pc_50_vs.vcs CRC:005e3ce8d5 size:9438
+shaders/vfx/csgo_projected_decals_pc_50_features.vcs CRC:00d8e93893 size:5362
+shaders/vfx/csgo_projected_decals_pc_50_ps.vcs CRC:00ca835ab8 size:38861312
+shaders/vfx/csgo_projected_decals_pc_50_psrs.vcs CRC:00ad2bd92b size:2786
+shaders/vfx/csgo_projected_decals_pc_50_vs.vcs CRC:001a6ee55c size:9438
shaders/vfx/csgo_refract.ini CRC:0000000000 size:0
shaders/vfx/csgo_refract_pc_50_features.vcs CRC:00743561c0 size:2530
shaders/vfx/csgo_refract_pc_50_ps.vcs CRC:00eee6c25d size:9649
@@ -178,34 +178,34 @@ shaders/vfx/csgo_screenspace_zone_pc_50_ps.vcs CRC:0042a3d8e9 size:3579
shaders/vfx/csgo_screenspace_zone_pc_50_vs.vcs CRC:0080ed5afd size:1419
shaders/vfx/csgo_simple.ini CRC:0000000000 size:0
shaders/vfx/csgo_simple_2way_blend.ini CRC:0000000000 size:0
-shaders/vfx/csgo_simple_2way_blend_pc_50_features.vcs CRC:0057a7c390 size:4754
-shaders/vfx/csgo_simple_2way_blend_pc_50_ps.vcs CRC:0099bfdb09 size:213121
+shaders/vfx/csgo_simple_2way_blend_pc_50_features.vcs CRC:00ca6d9747 size:4770
+shaders/vfx/csgo_simple_2way_blend_pc_50_ps.vcs CRC:006e297b57 size:214804
shaders/vfx/csgo_simple_2way_blend_pc_50_psrs.vcs CRC:0090fd3cc3 size:1826
-shaders/vfx/csgo_simple_2way_blend_pc_50_vs.vcs CRC:0019225be2 size:27921
+shaders/vfx/csgo_simple_2way_blend_pc_50_vs.vcs CRC:00325aecc7 size:27921
shaders/vfx/csgo_simple_3layer_parallax.ini CRC:0000000000 size:0
-shaders/vfx/csgo_simple_3layer_parallax_pc_50_features.vcs CRC:00d9b4c117 size:4946
-shaders/vfx/csgo_simple_3layer_parallax_pc_50_ps.vcs CRC:00afc01a69 size:3090430
+shaders/vfx/csgo_simple_3layer_parallax_pc_50_features.vcs CRC:004f50c607 size:4962
+shaders/vfx/csgo_simple_3layer_parallax_pc_50_ps.vcs CRC:00812de13f size:3100480
shaders/vfx/csgo_simple_3layer_parallax_pc_50_psrs.vcs CRC:0051d20c11 size:1890
-shaders/vfx/csgo_simple_3layer_parallax_pc_50_vs.vcs CRC:008fdae558 size:25434
+shaders/vfx/csgo_simple_3layer_parallax_pc_50_vs.vcs CRC:00b270a088 size:25436
shaders/vfx/csgo_simple_liquid.ini CRC:0000000000 size:0
-shaders/vfx/csgo_simple_liquid_pc_50_features.vcs CRC:00eba0f1b9 size:5810
-shaders/vfx/csgo_simple_liquid_pc_50_ps.vcs CRC:00a17d45fa size:1003783
-shaders/vfx/csgo_simple_liquid_pc_50_psrs.vcs CRC:009897a715 size:1826
-shaders/vfx/csgo_simple_liquid_pc_50_vs.vcs CRC:00e8bef575 size:41959
-shaders/vfx/csgo_simple_pc_50_features.vcs CRC:00fb3b70e4 size:4754
-shaders/vfx/csgo_simple_pc_50_ps.vcs CRC:00bce484ff size:314662
+shaders/vfx/csgo_simple_liquid_pc_50_features.vcs CRC:005ba47738 size:5874
+shaders/vfx/csgo_simple_liquid_pc_50_ps.vcs CRC:00b2e7db99 size:1119447
+shaders/vfx/csgo_simple_liquid_pc_50_psrs.vcs CRC:007031f32d size:1842
+shaders/vfx/csgo_simple_liquid_pc_50_vs.vcs CRC:0081f2cd4d size:43667
+shaders/vfx/csgo_simple_pc_50_features.vcs CRC:0026fefa0a size:4754
+shaders/vfx/csgo_simple_pc_50_ps.vcs CRC:00be0541d6 size:316365
shaders/vfx/csgo_simple_pc_50_psrs.vcs CRC:001a21352e size:2082
-shaders/vfx/csgo_simple_pc_50_vs.vcs CRC:00d3cec24c size:27531
+shaders/vfx/csgo_simple_pc_50_vs.vcs CRC:002b6e0499 size:27542
shaders/vfx/csgo_static_overlay.ini CRC:0000000000 size:0
-shaders/vfx/csgo_static_overlay_pc_50_features.vcs CRC:00ef4dc224 size:7666
-shaders/vfx/csgo_static_overlay_pc_50_ps.vcs CRC:00d49c87a1 size:550765
-shaders/vfx/csgo_static_overlay_pc_50_psrs.vcs CRC:0044b08142 size:2610
-shaders/vfx/csgo_static_overlay_pc_50_vs.vcs CRC:00a5a24102 size:164188
+shaders/vfx/csgo_static_overlay_pc_50_features.vcs CRC:009e159750 size:7698
+shaders/vfx/csgo_static_overlay_pc_50_ps.vcs CRC:00bfe17d30 size:566088
+shaders/vfx/csgo_static_overlay_pc_50_psrs.vcs CRC:000e222ab4 size:2610
+shaders/vfx/csgo_static_overlay_pc_50_vs.vcs CRC:0049c8b951 size:174537
shaders/vfx/csgo_textile_layer.ini CRC:0000000000 size:0
-shaders/vfx/csgo_textile_layer_pc_50_features.vcs CRC:001e279830 size:7170
-shaders/vfx/csgo_textile_layer_pc_50_ps.vcs CRC:006ca73be9 size:63755
-shaders/vfx/csgo_textile_layer_pc_50_psrs.vcs CRC:00ace63e8c size:1858
-shaders/vfx/csgo_textile_layer_pc_50_vs.vcs CRC:00349ea552 size:11757
+shaders/vfx/csgo_textile_layer_pc_50_features.vcs CRC:0097e0b483 size:7170
+shaders/vfx/csgo_textile_layer_pc_50_ps.vcs CRC:00db4e4125 size:63816
+shaders/vfx/csgo_textile_layer_pc_50_psrs.vcs CRC:00ff9799e7 size:1858
+shaders/vfx/csgo_textile_layer_pc_50_vs.vcs CRC:00f643c4db size:11790
shaders/vfx/csgo_tools_shading_complexity.ini CRC:0000000000 size:0
shaders/vfx/csgo_tools_shading_complexity_pc_50_features.vcs CRC:00d8a30b64 size:2114
shaders/vfx/csgo_tools_shading_complexity_pc_50_ps.vcs CRC:00eecda73b size:2577
@@ -219,39 +219,39 @@ shaders/vfx/csgo_ui_texture_attribute_pc_50_features.vcs CRC:003dc34fc4 size:161
shaders/vfx/csgo_ui_texture_attribute_pc_50_ps.vcs CRC:00431b2656 size:1848
shaders/vfx/csgo_ui_texture_attribute_pc_50_vs.vcs CRC:003c1853ee size:1867
shaders/vfx/csgo_unlitgeneric.ini CRC:0000000000 size:0
-shaders/vfx/csgo_unlitgeneric_pc_50_features.vcs CRC:00f0929503 size:4770
-shaders/vfx/csgo_unlitgeneric_pc_50_ps.vcs CRC:00e7bf9e46 size:76959
-shaders/vfx/csgo_unlitgeneric_pc_50_psrs.vcs CRC:0073277f05 size:3314
-shaders/vfx/csgo_unlitgeneric_pc_50_vs.vcs CRC:00318acf7e size:103921
+shaders/vfx/csgo_unlitgeneric_pc_50_features.vcs CRC:00bd0c721d size:4770
+shaders/vfx/csgo_unlitgeneric_pc_50_ps.vcs CRC:00b017f336 size:76959
+shaders/vfx/csgo_unlitgeneric_pc_50_psrs.vcs CRC:00b75836fd size:3314
+shaders/vfx/csgo_unlitgeneric_pc_50_vs.vcs CRC:00fc810b1f size:103921
shaders/vfx/csgo_vertexlitgeneric.ini CRC:0000000000 size:0
-shaders/vfx/csgo_vertexlitgeneric_pc_50_features.vcs CRC:004e1f5a12 size:6658
-shaders/vfx/csgo_vertexlitgeneric_pc_50_ps.vcs CRC:0066457772 size:12667234
+shaders/vfx/csgo_vertexlitgeneric_pc_50_features.vcs CRC:00544d2abe size:6642
+shaders/vfx/csgo_vertexlitgeneric_pc_50_ps.vcs CRC:003304b993 size:12755930
shaders/vfx/csgo_vertexlitgeneric_pc_50_psrs.vcs CRC:00db85377a size:3106
-shaders/vfx/csgo_vertexlitgeneric_pc_50_vs.vcs CRC:008bc35408 size:126928
+shaders/vfx/csgo_vertexlitgeneric_pc_50_vs.vcs CRC:00b12fdf01 size:126943
shaders/vfx/csgo_volume_viewer.ini CRC:0000000000 size:0
shaders/vfx/csgo_volume_viewer_pc_50_features.vcs CRC:00bdb2e588 size:1794
shaders/vfx/csgo_volume_viewer_pc_50_ps.vcs CRC:00600c6a33 size:2179
shaders/vfx/csgo_volume_viewer_pc_50_vs.vcs CRC:0029500299 size:2659
shaders/vfx/csgo_water.ini CRC:0000000000 size:0
shaders/vfx/csgo_water_fancy.ini CRC:0000000000 size:0
-shaders/vfx/csgo_water_fancy_pc_50_features.vcs CRC:00c2275326 size:6162
-shaders/vfx/csgo_water_fancy_pc_50_ps.vcs CRC:001bbe3d34 size:3503468
-shaders/vfx/csgo_water_fancy_pc_50_psrs.vcs CRC:00e4b067b7 size:2018
-shaders/vfx/csgo_water_fancy_pc_50_vs.vcs CRC:00ca1229b6 size:19579
-shaders/vfx/csgo_water_pc_50_features.vcs CRC:000cad1c3a size:5138
-shaders/vfx/csgo_water_pc_50_ps.vcs CRC:0001291e1b size:2221212
-shaders/vfx/csgo_water_pc_50_psrs.vcs CRC:0087a55d56 size:1954
-shaders/vfx/csgo_water_pc_50_vs.vcs CRC:0093c11494 size:20601
+shaders/vfx/csgo_water_fancy_pc_50_features.vcs CRC:00262edc14 size:6162
+shaders/vfx/csgo_water_fancy_pc_50_ps.vcs CRC:00d8ff36ee size:3578730
+shaders/vfx/csgo_water_fancy_pc_50_psrs.vcs CRC:0004f79ddd size:2034
+shaders/vfx/csgo_water_fancy_pc_50_vs.vcs CRC:003f8c14d3 size:19595
+shaders/vfx/csgo_water_pc_50_features.vcs CRC:004373abbd size:5138
+shaders/vfx/csgo_water_pc_50_ps.vcs CRC:0073b9f700 size:2220610
+shaders/vfx/csgo_water_pc_50_psrs.vcs CRC:00c6817183 size:1954
+shaders/vfx/csgo_water_pc_50_vs.vcs CRC:000cee3c23 size:20601
shaders/vfx/csgo_weapon.ini CRC:0000000000 size:0
-shaders/vfx/csgo_weapon_pc_50_features.vcs CRC:00bd645c36 size:10418
-shaders/vfx/csgo_weapon_pc_50_ps.vcs CRC:002e0f201d size:19658921
-shaders/vfx/csgo_weapon_pc_50_psrs.vcs CRC:006d9cbaa5 size:2354
-shaders/vfx/csgo_weapon_pc_50_vs.vcs CRC:00d4d49014 size:44923
+shaders/vfx/csgo_weapon_pc_50_features.vcs CRC:00df9602ca size:10466
+shaders/vfx/csgo_weapon_pc_50_ps.vcs CRC:0004b6fdc7 size:22231269
+shaders/vfx/csgo_weapon_pc_50_psrs.vcs CRC:00f3d4d37e size:2354
+shaders/vfx/csgo_weapon_pc_50_vs.vcs CRC:0006aef284 size:46901
shaders/vfx/csgo_weapon_sticker.ini CRC:0000000000 size:0
-shaders/vfx/csgo_weapon_sticker_pc_50_features.vcs CRC:00ee8f2ca3 size:4898
-shaders/vfx/csgo_weapon_sticker_pc_50_ps.vcs CRC:008449e6cd size:68340
-shaders/vfx/csgo_weapon_sticker_pc_50_psrs.vcs CRC:00080c9adc size:1586
-shaders/vfx/csgo_weapon_sticker_pc_50_vs.vcs CRC:00242d0cb8 size:12898
+shaders/vfx/csgo_weapon_sticker_pc_50_features.vcs CRC:002cac1c3b size:4898
+shaders/vfx/csgo_weapon_sticker_pc_50_ps.vcs CRC:00e5a10529 size:68746
+shaders/vfx/csgo_weapon_sticker_pc_50_psrs.vcs CRC:00a6a7b43d size:1586
+shaders/vfx/csgo_weapon_sticker_pc_50_vs.vcs CRC:00a0703155 size:12901
shaders/vfx/deferred_particle_shadows.ini CRC:0000000000 size:0
shaders/vfx/deferred_particle_shadows_pc_50_features.vcs CRC:00d44879f1 size:1682
shaders/vfx/deferred_particle_shadows_pc_50_ps.vcs CRC:009a835a77 size:2992
@@ -288,15 +288,15 @@ shaders/vfx/generate_decal_normals_pc_50_features.vcs CRC:00069b1c3e size:1554
shaders/vfx/generate_decal_normals_pc_50_ps.vcs CRC:00839562e3 size:1895
shaders/vfx/generate_decal_normals_pc_50_vs.vcs CRC:002d1a35e9 size:1419
shaders/vfx/generic.ini CRC:0000000000 size:0
-shaders/vfx/generic_pc_50_features.vcs CRC:00a49ee6d7 size:5010
-shaders/vfx/generic_pc_50_ps.vcs CRC:007f5b5de9 size:1297216
-shaders/vfx/generic_pc_50_psrs.vcs CRC:005f693504 size:3442
-shaders/vfx/generic_pc_50_vs.vcs CRC:002e662204 size:31137
+shaders/vfx/generic_pc_50_features.vcs CRC:0016f89f37 size:5026
+shaders/vfx/generic_pc_50_ps.vcs CRC:00eb817a41 size:1307310
+shaders/vfx/generic_pc_50_psrs.vcs CRC:00896ac5fa size:3442
+shaders/vfx/generic_pc_50_vs.vcs CRC:00b0e71d64 size:31181
shaders/vfx/grasstile.ini CRC:0000000000 size:0
-shaders/vfx/grasstile_pc_50_features.vcs CRC:00707fe2e8 size:3490
-shaders/vfx/grasstile_pc_50_ps.vcs CRC:00a35ed17b size:51526
-shaders/vfx/grasstile_pc_50_psrs.vcs CRC:00f2d803fd size:2002
-shaders/vfx/grasstile_pc_50_vs.vcs CRC:00b31ffdcb size:6278
+shaders/vfx/grasstile_pc_50_features.vcs CRC:00b51f5d59 size:3490
+shaders/vfx/grasstile_pc_50_ps.vcs CRC:00277696d8 size:52151
+shaders/vfx/grasstile_pc_50_psrs.vcs CRC:0076620160 size:2002
+shaders/vfx/grasstile_pc_50_vs.vcs CRC:00ebdb67c8 size:6278
shaders/vfx/grasstile_preview.ini CRC:0000000000 size:0
shaders/vfx/grasstile_preview_pc_50_features.vcs CRC:00f9a2db40 size:2162
shaders/vfx/grasstile_preview_pc_50_ps.vcs CRC:00c1526de5 size:2785
@@ -306,44 +306,44 @@ shaders/vfx/healthboost_pc_50_features.vcs CRC:00f1c7615b size:1794
shaders/vfx/healthboost_pc_50_ps.vcs CRC:00cc385ef6 size:2308
shaders/vfx/healthboost_pc_50_vs.vcs CRC:00ea0f5927 size:1353
shaders/vfx/histogram_cs.ini CRC:0000000000 size:0
-shaders/vfx/histogram_cs_pc_50_cs.vcs CRC:0087c15044 size:8723
-shaders/vfx/histogram_cs_pc_50_features.vcs CRC:004748ea81 size:1730
+shaders/vfx/histogram_cs_pc_50_cs.vcs CRC:006ee143a1 size:8723
+shaders/vfx/histogram_cs_pc_50_features.vcs CRC:0054363111 size:1730
shaders/vfx/inferno.ini CRC:0000000000 size:0
-shaders/vfx/inferno_pc_50_features.vcs CRC:00e8a32a48 size:1858
-shaders/vfx/inferno_pc_50_ps.vcs CRC:0020e63fb1 size:2955
-shaders/vfx/inferno_pc_50_vs.vcs CRC:007e4883ac size:2274
+shaders/vfx/inferno_pc_50_features.vcs CRC:00a2f47759 size:1858
+shaders/vfx/inferno_pc_50_ps.vcs CRC:007219e50e size:2955
+shaders/vfx/inferno_pc_50_vs.vcs CRC:003dbfc764 size:2290
shaders/vfx/legacy_sniper_scope.ini CRC:0000000000 size:0
shaders/vfx/legacy_sniper_scope_pc_50_features.vcs CRC:000ec34ac7 size:1714
shaders/vfx/legacy_sniper_scope_pc_50_ps.vcs CRC:00122e834a size:2967
shaders/vfx/legacy_sniper_scope_pc_50_vs.vcs CRC:00ea0f5927 size:1353
shaders/vfx/lpv_debug_grid.ini CRC:0000000000 size:0
-shaders/vfx/lpv_debug_grid_pc_50_features.vcs CRC:001f4ea574 size:2786
-shaders/vfx/lpv_debug_grid_pc_50_gs.vcs CRC:0073fb9e1d size:3622
-shaders/vfx/lpv_debug_grid_pc_50_ps.vcs CRC:00bbe14152 size:45414
-shaders/vfx/lpv_debug_grid_pc_50_vs.vcs CRC:00179f8e7d size:2513
+shaders/vfx/lpv_debug_grid_pc_50_features.vcs CRC:003b1f5f43 size:2786
+shaders/vfx/lpv_debug_grid_pc_50_gs.vcs CRC:00a9eb3df9 size:3622
+shaders/vfx/lpv_debug_grid_pc_50_ps.vcs CRC:00f3bd2331 size:45306
+shaders/vfx/lpv_debug_grid_pc_50_vs.vcs CRC:00ca4b87d5 size:2513
shaders/vfx/luminaire.ini CRC:0000000000 size:0
-shaders/vfx/luminaire_pc_50_features.vcs CRC:000c8a8a01 size:2370
-shaders/vfx/luminaire_pc_50_ps.vcs CRC:005477504a size:6420
-shaders/vfx/luminaire_pc_50_psrs.vcs CRC:00c073b324 size:2018
-shaders/vfx/luminaire_pc_50_vs.vcs CRC:005761c2b8 size:5422
+shaders/vfx/luminaire_pc_50_features.vcs CRC:00659c1803 size:2370
+shaders/vfx/luminaire_pc_50_ps.vcs CRC:009b665347 size:6420
+shaders/vfx/luminaire_pc_50_psrs.vcs CRC:00200a1e43 size:2018
+shaders/vfx/luminaire_pc_50_vs.vcs CRC:00b020b50b size:5422
shaders/vfx/mboit_mixed_combine.ini CRC:0000000000 size:0
-shaders/vfx/mboit_mixed_combine_pc_50_features.vcs CRC:00687315fc size:1954
-shaders/vfx/mboit_mixed_combine_pc_50_ps.vcs CRC:008ce3b2ce size:4764
+shaders/vfx/mboit_mixed_combine_pc_50_features.vcs CRC:006e6a68e8 size:1954
+shaders/vfx/mboit_mixed_combine_pc_50_ps.vcs CRC:00456cd2a6 size:4764
shaders/vfx/mboit_mixed_combine_pc_50_vs.vcs CRC:00627195be size:2506
shaders/vfx/mboit_mixed_upsample.ini CRC:0000000000 size:0
-shaders/vfx/mboit_mixed_upsample_pc_50_cs.vcs CRC:00b9d86274 size:7650
-shaders/vfx/mboit_mixed_upsample_pc_50_features.vcs CRC:00d01e8f59 size:2018
+shaders/vfx/mboit_mixed_upsample_pc_50_cs.vcs CRC:00c1d69fc1 size:7650
+shaders/vfx/mboit_mixed_upsample_pc_50_features.vcs CRC:00cd5dd0e3 size:2018
shaders/vfx/mboitfinal.ini CRC:0000000000 size:0
-shaders/vfx/mboitfinal_pc_50_features.vcs CRC:003b53f60e size:1954
-shaders/vfx/mboitfinal_pc_50_ps.vcs CRC:00da5098d9 size:5142
+shaders/vfx/mboitfinal_pc_50_features.vcs CRC:00f06fac64 size:1970
+shaders/vfx/mboitfinal_pc_50_ps.vcs CRC:00e30898c9 size:5158
shaders/vfx/mboitfinal_pc_50_vs.vcs CRC:00559a2a7c size:2996
shaders/vfx/outlines.ini CRC:0000000000 size:0
shaders/vfx/outlines_pc_50_features.vcs CRC:00e6864a88 size:1778
shaders/vfx/outlines_pc_50_ps.vcs CRC:00af708a6e size:2745
shaders/vfx/outlines_pc_50_vs.vcs CRC:0058323fb8 size:1360
shaders/vfx/overlay_smoke.ini CRC:0000000000 size:0
-shaders/vfx/overlay_smoke_pc_50_features.vcs CRC:00e84b3e90 size:1746
-shaders/vfx/overlay_smoke_pc_50_ps.vcs CRC:0078c01ce7 size:2646
+shaders/vfx/overlay_smoke_pc_50_features.vcs CRC:00c8282e48 size:1762
+shaders/vfx/overlay_smoke_pc_50_ps.vcs CRC:00733181dd size:2646
shaders/vfx/overlay_smoke_pc_50_vs.vcs CRC:00dc9157c8 size:1438
shaders/vfx/panorama_alpha.ini CRC:0000000000 size:0
shaders/vfx/panorama_alpha_pc_50_features.vcs CRC:00900fc740 size:1682
@@ -362,69 +362,69 @@ shaders/vfx/player_visibility_stencil_proxy_pc_50_features.vcs CRC:00fb953c16 si
shaders/vfx/player_visibility_stencil_proxy_pc_50_ps.vcs CRC:00de86fb1f size:1576
shaders/vfx/player_visibility_stencil_proxy_pc_50_vs.vcs CRC:00b1aacfdd size:2452
shaders/vfx/post_process.ini CRC:0000000000 size:0
-shaders/vfx/post_process_pc_50_features.vcs CRC:000d231024 size:2578
-shaders/vfx/post_process_pc_50_ps.vcs CRC:00b7b5cd9b size:70997
-shaders/vfx/post_process_pc_50_vs.vcs CRC:00055984f8 size:1419
+shaders/vfx/post_process_pc_50_features.vcs CRC:00bee159b8 size:2578
+shaders/vfx/post_process_pc_50_ps.vcs CRC:00c104c042 size:71013
+shaders/vfx/post_process_pc_50_vs.vcs CRC:000f93f89e size:1419
shaders/vfx/reconstruct_normals.ini CRC:0000000000 size:0
shaders/vfx/reconstruct_normals_pc_50_features.vcs CRC:0037fa53d2 size:1506
shaders/vfx/reconstruct_normals_pc_50_ps.vcs CRC:00a5e6318e size:2862
shaders/vfx/reconstruct_normals_pc_50_vs.vcs CRC:00364cbcfb size:1413
shaders/vfx/screenparticlescombine.ini CRC:0000000000 size:0
-shaders/vfx/screenparticlescombine_pc_50_features.vcs CRC:002c516485 size:1666
-shaders/vfx/screenparticlescombine_pc_50_ps.vcs CRC:00348524a1 size:1939
+shaders/vfx/screenparticlescombine_pc_50_features.vcs CRC:009adb1abc size:1666
+shaders/vfx/screenparticlescombine_pc_50_ps.vcs CRC:00a9842c30 size:1939
shaders/vfx/screenparticlescombine_pc_50_vs.vcs CRC:00baed8259 size:1431
shaders/vfx/simple.ini CRC:0000000000 size:0
-shaders/vfx/simple_pc_50_features.vcs CRC:00da37a5cf size:4498
-shaders/vfx/simple_pc_50_ps.vcs CRC:001c8778f1 size:50980
-shaders/vfx/simple_pc_50_psrs.vcs CRC:0002da3ae8 size:1794
-shaders/vfx/simple_pc_50_vs.vcs CRC:00d7453a50 size:15263
+shaders/vfx/simple_pc_50_features.vcs CRC:00ab692aa6 size:4498
+shaders/vfx/simple_pc_50_ps.vcs CRC:005ffc5588 size:51149
+shaders/vfx/simple_pc_50_psrs.vcs CRC:00f71bc38a size:1794
+shaders/vfx/simple_pc_50_vs.vcs CRC:0088c44746 size:15267
shaders/vfx/sky.ini CRC:0000000000 size:0
shaders/vfx/sky_occluder.ini CRC:0000000000 size:0
shaders/vfx/sky_occluder_pc_50_features.vcs CRC:0045563b9b size:1858
shaders/vfx/sky_occluder_pc_50_ps.vcs CRC:0007c6fc0e size:2287
shaders/vfx/sky_occluder_pc_50_vs.vcs CRC:005291a3af size:2734
-shaders/vfx/sky_pc_50_features.vcs CRC:00ff614270 size:2498
-shaders/vfx/sky_pc_50_ps.vcs CRC:00b811f548 size:6044
-shaders/vfx/sky_pc_50_vs.vcs CRC:00d1e97a99 size:2791
+shaders/vfx/sky_pc_50_features.vcs CRC:00b0889679 size:2498
+shaders/vfx/sky_pc_50_ps.vcs CRC:00478cb7b8 size:6044
+shaders/vfx/sky_pc_50_vs.vcs CRC:0026963613 size:2791
shaders/vfx/skybox_blur.ini CRC:0000000000 size:0
shaders/vfx/skybox_blur_pc_50_features.vcs CRC:00a3bfa04a size:1634
shaders/vfx/skybox_blur_pc_50_ps.vcs CRC:006a2ac5d5 size:2333
shaders/vfx/skybox_blur_pc_50_vs.vcs CRC:009a7ddc87 size:1359
shaders/vfx/smoke_volume.ini CRC:0000000000 size:0
shaders/vfx/smoke_volume_cs.ini CRC:0000000000 size:0
-shaders/vfx/smoke_volume_cs_pc_50_cs.vcs CRC:00c480fd0d size:129865
-shaders/vfx/smoke_volume_cs_pc_50_features.vcs CRC:003f5eb89f size:2754
+shaders/vfx/smoke_volume_cs_pc_50_cs.vcs CRC:00b59cda56 size:129865
+shaders/vfx/smoke_volume_cs_pc_50_features.vcs CRC:005881135e size:2754
shaders/vfx/smoke_volume_depth.ini CRC:0000000000 size:0
-shaders/vfx/smoke_volume_depth_pc_50_features.vcs CRC:0060802cd6 size:1922
-shaders/vfx/smoke_volume_depth_pc_50_ps.vcs CRC:00576e49bb size:6256
-shaders/vfx/smoke_volume_depth_pc_50_vs.vcs CRC:006dc8aea2 size:1477
+shaders/vfx/smoke_volume_depth_pc_50_features.vcs CRC:00cbfe814c size:1922
+shaders/vfx/smoke_volume_depth_pc_50_ps.vcs CRC:006ebba90d size:6256
+shaders/vfx/smoke_volume_depth_pc_50_vs.vcs CRC:00c8d2e31d size:1477
shaders/vfx/smoke_volume_lpv.ini CRC:0000000000 size:0
-shaders/vfx/smoke_volume_lpv_pc_50_cs.vcs CRC:00ad83226c size:8236
-shaders/vfx/smoke_volume_lpv_pc_50_features.vcs CRC:006c33fd9e size:1810
+shaders/vfx/smoke_volume_lpv_pc_50_cs.vcs CRC:00647a7535 size:8236
+shaders/vfx/smoke_volume_lpv_pc_50_features.vcs CRC:00c25e9dd6 size:1810
shaders/vfx/smoke_volume_mask.ini CRC:0000000000 size:0
-shaders/vfx/smoke_volume_mask_pc_50_features.vcs CRC:00a0da20ff size:1874
-shaders/vfx/smoke_volume_mask_pc_50_ps.vcs CRC:0092024552 size:10866
+shaders/vfx/smoke_volume_mask_pc_50_features.vcs CRC:0095b56c66 size:1874
+shaders/vfx/smoke_volume_mask_pc_50_ps.vcs CRC:00fff9d1ad size:10866
shaders/vfx/smoke_volume_mask_pc_50_vs.vcs CRC:007d56cdff size:2724
-shaders/vfx/smoke_volume_pc_50_features.vcs CRC:0030d99bd1 size:2786
-shaders/vfx/smoke_volume_pc_50_ps.vcs CRC:003522e4b4 size:151934
-shaders/vfx/smoke_volume_pc_50_vs.vcs CRC:00158ed5d4 size:2244
+shaders/vfx/smoke_volume_pc_50_features.vcs CRC:00933b6135 size:2786
+shaders/vfx/smoke_volume_pc_50_ps.vcs CRC:0062b11dc6 size:151934
+shaders/vfx/smoke_volume_pc_50_vs.vcs CRC:002bfdd311 size:2260
shaders/vfx/solidcolor.ini CRC:0000000000 size:0
shaders/vfx/solidcolor_pc_50_features.vcs CRC:001b30fdb8 size:2290
shaders/vfx/solidcolor_pc_50_ps.vcs CRC:006868f938 size:3120
shaders/vfx/solidcolor_pc_50_vs.vcs CRC:00018bd3f6 size:8001
shaders/vfx/spritecard.ini CRC:0000000000 size:0
-shaders/vfx/spritecard_pc_50_features.vcs CRC:004ddbc204 size:3458
-shaders/vfx/spritecard_pc_50_ps.vcs CRC:0000fb5eba size:2274965
-shaders/vfx/spritecard_pc_50_vs.vcs CRC:001a104e3a size:1130172
+shaders/vfx/spritecard_pc_50_features.vcs CRC:00b91f52ab size:3458
+shaders/vfx/spritecard_pc_50_ps.vcs CRC:0008438141 size:2269250
+shaders/vfx/spritecard_pc_50_vs.vcs CRC:00cbf55fe0 size:1131766
shaders/vfx/tools_solid.ini CRC:0000000000 size:0
-shaders/vfx/tools_solid_pc_50_features.vcs CRC:000aea73e0 size:1826
-shaders/vfx/tools_solid_pc_50_ps.vcs CRC:00db19f4eb size:2958
-shaders/vfx/tools_solid_pc_50_vs.vcs CRC:0041e0b95e size:3868
+shaders/vfx/tools_solid_pc_50_features.vcs CRC:00e381840a size:1826
+shaders/vfx/tools_solid_pc_50_ps.vcs CRC:007babeb8e size:2958
+shaders/vfx/tools_solid_pc_50_vs.vcs CRC:00179080a0 size:3868
shaders/vfx/tools_wireframe.ini CRC:0000000000 size:0
-shaders/vfx/tools_wireframe_pc_50_features.vcs CRC:00ca3bdfb2 size:2194
-shaders/vfx/tools_wireframe_pc_50_gs.vcs CRC:002dc0269f size:3253
-shaders/vfx/tools_wireframe_pc_50_ps.vcs CRC:0032e21a12 size:4244
-shaders/vfx/tools_wireframe_pc_50_vs.vcs CRC:0003ecbe88 size:13189
+shaders/vfx/tools_wireframe_pc_50_features.vcs CRC:00ceed6095 size:2194
+shaders/vfx/tools_wireframe_pc_50_gs.vcs CRC:0018cb8385 size:3253
+shaders/vfx/tools_wireframe_pc_50_ps.vcs CRC:008887a885 size:4244
+shaders/vfx/tools_wireframe_pc_50_vs.vcs CRC:00d3c4362b size:13189
shaders/vfx/upsample.ini CRC:0000000000 size:0
shaders/vfx/upsample_pc_50_features.vcs CRC:007910fb4a size:1554
shaders/vfx/upsample_pc_50_ps.vcs CRC:000dafda7a size:1834
game/csgo/shaders_vulkan_dir.txt
modified • +233 / -233 • changes: 466
Show patch
@@ -1,10 +1,10 @@
shaders/vfx/bilateral_upsample.ini CRC:0000000000 size:0
-shaders/vfx/bilateral_upsample_vulkan_50_features.vcs CRC:0034e7463f size:1746
-shaders/vfx/bilateral_upsample_vulkan_50_ps.vcs CRC:007268d31b size:3399
+shaders/vfx/bilateral_upsample_vulkan_50_features.vcs CRC:006c4f6911 size:1762
+shaders/vfx/bilateral_upsample_vulkan_50_ps.vcs CRC:004520b06b size:3399
shaders/vfx/bilateral_upsample_vulkan_50_vs.vcs CRC:008ce38aea size:2180
shaders/vfx/bloom_cs.ini CRC:0000000000 size:0
-shaders/vfx/bloom_cs_vulkan_50_cs.vcs CRC:002fc6f99e size:9179
-shaders/vfx/bloom_cs_vulkan_50_features.vcs CRC:008fd509b8 size:2018
+shaders/vfx/bloom_cs_vulkan_50_cs.vcs CRC:00a2b0bcb2 size:9165
+shaders/vfx/bloom_cs_vulkan_50_features.vcs CRC:0074832d4b size:2018
shaders/vfx/blur.ini CRC:0000000000 size:0
shaders/vfx/blur_vulkan_50_features.vcs CRC:001ea646d8 size:2098
shaders/vfx/blur_vulkan_50_ps.vcs CRC:00ee532d85 size:14512
@@ -18,10 +18,10 @@ shaders/vfx/bomb_blast_vulkan_50_features.vcs CRC:00626f06ee size:1730
shaders/vfx/bomb_blast_vulkan_50_ps.vcs CRC:00b3a844da size:3535
shaders/vfx/bomb_blast_vulkan_50_vs.vcs CRC:006dfb6be5 size:1999
shaders/vfx/cables.ini CRC:0000000000 size:0
-shaders/vfx/cables_vulkan_50_features.vcs CRC:004d766b28 size:4770
-shaders/vfx/cables_vulkan_50_ps.vcs CRC:003d82aa0f size:468151
-shaders/vfx/cables_vulkan_50_psrs.vcs CRC:00ebbb81fb size:3266
-shaders/vfx/cables_vulkan_50_vs.vcs CRC:000be2f528 size:24522
+shaders/vfx/cables_vulkan_50_features.vcs CRC:00ab9038a5 size:4770
+shaders/vfx/cables_vulkan_50_ps.vcs CRC:00be5fca2d size:469626
+shaders/vfx/cables_vulkan_50_psrs.vcs CRC:00b935a061 size:3282
+shaders/vfx/cables_vulkan_50_vs.vcs CRC:001c096931 size:24522
shaders/vfx/cs_color_picker.ini CRC:0000000000 size:0
shaders/vfx/cs_color_picker_vulkan_50_features.vcs CRC:00b8399ca8 size:1394
shaders/vfx/cs_color_picker_vulkan_50_ps.vcs CRC:00d06198b4 size:2156
@@ -31,30 +31,30 @@ shaders/vfx/csgo_alpha_immunity_vulkan_50_features.vcs CRC:0028b20085 size:1698
shaders/vfx/csgo_alpha_immunity_vulkan_50_ps.vcs CRC:00bba81630 size:2112
shaders/vfx/csgo_alpha_immunity_vulkan_50_vs.vcs CRC:009570e692 size:2025
shaders/vfx/csgo_beachfoam.ini CRC:0000000000 size:0
-shaders/vfx/csgo_beachfoam_vulkan_50_features.vcs CRC:0042459477 size:3362
-shaders/vfx/csgo_beachfoam_vulkan_50_ps.vcs CRC:0059bcc5ae size:5679
-shaders/vfx/csgo_beachfoam_vulkan_50_psrs.vcs CRC:00a641f69c size:1826
-shaders/vfx/csgo_beachfoam_vulkan_50_vs.vcs CRC:007124f218 size:9567
+shaders/vfx/csgo_beachfoam_vulkan_50_features.vcs CRC:00eddccc46 size:3362
+shaders/vfx/csgo_beachfoam_vulkan_50_ps.vcs CRC:00dad110f1 size:5696
+shaders/vfx/csgo_beachfoam_vulkan_50_psrs.vcs CRC:0024b3b21e size:1826
+shaders/vfx/csgo_beachfoam_vulkan_50_vs.vcs CRC:00e9cdc158 size:9567
shaders/vfx/csgo_black_unlit.ini CRC:0000000000 size:0
-shaders/vfx/csgo_black_unlit_vulkan_50_features.vcs CRC:00d81e1a69 size:2722
-shaders/vfx/csgo_black_unlit_vulkan_50_ps.vcs CRC:0066be1a67 size:7780
-shaders/vfx/csgo_black_unlit_vulkan_50_psrs.vcs CRC:000a9a08e4 size:1794
-shaders/vfx/csgo_black_unlit_vulkan_50_vs.vcs CRC:0036bfea6d size:4252
+shaders/vfx/csgo_black_unlit_vulkan_50_features.vcs CRC:0060b58227 size:2738
+shaders/vfx/csgo_black_unlit_vulkan_50_ps.vcs CRC:0005bcdbdc size:7778
+shaders/vfx/csgo_black_unlit_vulkan_50_psrs.vcs CRC:005a2ae455 size:1794
+shaders/vfx/csgo_black_unlit_vulkan_50_vs.vcs CRC:004dc685f2 size:4268
shaders/vfx/csgo_character.ini CRC:0000000000 size:0
-shaders/vfx/csgo_character_vulkan_50_features.vcs CRC:0077791be4 size:8834
-shaders/vfx/csgo_character_vulkan_50_ps.vcs CRC:009d642f4c size:303670574
-shaders/vfx/csgo_character_vulkan_50_psrs.vcs CRC:00a3d5d6ad size:3442
-shaders/vfx/csgo_character_vulkan_50_vs.vcs CRC:00cb74521e size:1093042
+shaders/vfx/csgo_character_vulkan_50_features.vcs CRC:00ae484612 size:8850
+shaders/vfx/csgo_character_vulkan_50_ps.vcs CRC:002718ee14 size:330897636
+shaders/vfx/csgo_character_vulkan_50_psrs.vcs CRC:008ca7d3f2 size:3442
+shaders/vfx/csgo_character_vulkan_50_vs.vcs CRC:006906d9d6 size:1119517
shaders/vfx/csgo_complex.ini CRC:0000000000 size:0
-shaders/vfx/csgo_complex_vulkan_50_features.vcs CRC:00630bac82 size:7266
-shaders/vfx/csgo_complex_vulkan_50_ps.vcs CRC:00aeb3e3ec size:38046739
+shaders/vfx/csgo_complex_vulkan_50_features.vcs CRC:00890420a7 size:7266
+shaders/vfx/csgo_complex_vulkan_50_ps.vcs CRC:00553e8768 size:38256682
shaders/vfx/csgo_complex_vulkan_50_psrs.vcs CRC:00492a4b95 size:3218
-shaders/vfx/csgo_complex_vulkan_50_vs.vcs CRC:00b1df1fd8 size:226190
-shaders/vfx/csgo_complex_vulkan_60_features.vcs CRC:009e37806b size:7314
-shaders/vfx/csgo_complex_vulkan_60_ps.vcs CRC:00aeb3e3ec size:38046739
+shaders/vfx/csgo_complex_vulkan_50_vs.vcs CRC:00de035e9e size:226230
+shaders/vfx/csgo_complex_vulkan_60_features.vcs CRC:004222c157 size:7346
+shaders/vfx/csgo_complex_vulkan_60_ps.vcs CRC:00553e8768 size:38256682
shaders/vfx/csgo_complex_vulkan_60_psrs.vcs CRC:00492a4b95 size:3218
-shaders/vfx/csgo_complex_vulkan_60_rtx.vcs CRC:00c671f06f size:33684546
-shaders/vfx/csgo_complex_vulkan_60_vs.vcs CRC:00b1df1fd8 size:226190
+shaders/vfx/csgo_complex_vulkan_60_rtx.vcs CRC:00aa19b314 size:33683976
+shaders/vfx/csgo_complex_vulkan_60_vs.vcs CRC:00de035e9e size:226230
shaders/vfx/csgo_composite_generic.ini CRC:0000000000 size:0
shaders/vfx/csgo_composite_generic_vulkan_50_features.vcs CRC:0056569b3f size:1778
shaders/vfx/csgo_composite_generic_vulkan_50_ps.vcs CRC:008b5c42bc size:2225
@@ -77,125 +77,125 @@ shaders/vfx/csgo_crosshair_vulkan_50_ps.vcs CRC:00ca2b509e size:5056
shaders/vfx/csgo_crosshair_vulkan_50_vs.vcs CRC:0088663ff7 size:1836
shaders/vfx/csgo_customglove.ini CRC:0000000000 size:0
shaders/vfx/csgo_customglove_preview.ini CRC:0000000000 size:0
-shaders/vfx/csgo_customglove_preview_vulkan_50_features.vcs CRC:00af9139ca size:9810
-shaders/vfx/csgo_customglove_preview_vulkan_50_ps.vcs CRC:00e94cf300 size:146188
-shaders/vfx/csgo_customglove_preview_vulkan_50_psrs.vcs CRC:009b036760 size:1874
-shaders/vfx/csgo_customglove_preview_vulkan_50_vs.vcs CRC:0006f49962 size:11346
-shaders/vfx/csgo_customglove_vulkan_50_features.vcs CRC:00c3279f1f size:11618
-shaders/vfx/csgo_customglove_vulkan_50_ps.vcs CRC:0097d23de7 size:73153
+shaders/vfx/csgo_customglove_preview_vulkan_50_features.vcs CRC:0097345d89 size:9810
+shaders/vfx/csgo_customglove_preview_vulkan_50_ps.vcs CRC:006f04de3f size:146028
+shaders/vfx/csgo_customglove_preview_vulkan_50_psrs.vcs CRC:0076bdde45 size:1874
+shaders/vfx/csgo_customglove_preview_vulkan_50_vs.vcs CRC:009adc1288 size:11346
+shaders/vfx/csgo_customglove_vulkan_50_features.vcs CRC:00d8c41934 size:11618
+shaders/vfx/csgo_customglove_vulkan_50_ps.vcs CRC:0017d1223e size:73172
shaders/vfx/csgo_customglove_vulkan_50_vs.vcs CRC:007eb65bcc size:4297
shaders/vfx/csgo_customweapon.ini CRC:0000000000 size:0
-shaders/vfx/csgo_customweapon_vulkan_50_features.vcs CRC:00d51eb813 size:6722
-shaders/vfx/csgo_customweapon_vulkan_50_ps.vcs CRC:00c2affc82 size:5830324
+shaders/vfx/csgo_customweapon_vulkan_50_features.vcs CRC:00a1837ffb size:6722
+shaders/vfx/csgo_customweapon_vulkan_50_ps.vcs CRC:001f3bf62e size:5830414
shaders/vfx/csgo_customweapon_vulkan_50_vs.vcs CRC:00f53b5243 size:4126
shaders/vfx/csgo_decal_renderer.ini CRC:0000000000 size:0
-shaders/vfx/csgo_decal_renderer_vulkan_50_features.vcs CRC:00fc08a890 size:2050
-shaders/vfx/csgo_decal_renderer_vulkan_50_ps.vcs CRC:001f7f2202 size:2655
-shaders/vfx/csgo_decal_renderer_vulkan_50_vs.vcs CRC:00bfe26b8b size:4346
-shaders/vfx/csgo_decal_renderer_vulkan_60_features.vcs CRC:00fc08a890 size:2050
-shaders/vfx/csgo_decal_renderer_vulkan_60_ps.vcs CRC:001f7f2202 size:2655
-shaders/vfx/csgo_decal_renderer_vulkan_60_vs.vcs CRC:00bfe26b8b size:4346
+shaders/vfx/csgo_decal_renderer_vulkan_50_features.vcs CRC:002135ce4f size:2050
+shaders/vfx/csgo_decal_renderer_vulkan_50_ps.vcs CRC:00ad311429 size:2659
+shaders/vfx/csgo_decal_renderer_vulkan_50_vs.vcs CRC:003923c6e6 size:4346
+shaders/vfx/csgo_decal_renderer_vulkan_60_features.vcs CRC:002135ce4f size:2050
+shaders/vfx/csgo_decal_renderer_vulkan_60_ps.vcs CRC:00ad311429 size:2659
+shaders/vfx/csgo_decal_renderer_vulkan_60_vs.vcs CRC:003923c6e6 size:4346
shaders/vfx/csgo_decalmodulate.ini CRC:0000000000 size:0
-shaders/vfx/csgo_decalmodulate_vulkan_50_features.vcs CRC:00faaad0e8 size:3490
-shaders/vfx/csgo_decalmodulate_vulkan_50_ps.vcs CRC:00aa7c7b98 size:5100
-shaders/vfx/csgo_decalmodulate_vulkan_50_psrs.vcs CRC:00c3bbd8e9 size:1890
-shaders/vfx/csgo_decalmodulate_vulkan_50_vs.vcs CRC:001717093e size:10809
+shaders/vfx/csgo_decalmodulate_vulkan_50_features.vcs CRC:00c666124f size:3490
+shaders/vfx/csgo_decalmodulate_vulkan_50_ps.vcs CRC:004b9e3fad size:5115
+shaders/vfx/csgo_decalmodulate_vulkan_50_psrs.vcs CRC:007c80e187 size:1906
+shaders/vfx/csgo_decalmodulate_vulkan_50_vs.vcs CRC:003451da03 size:10809
shaders/vfx/csgo_depth_only.ini CRC:0000000000 size:0
-shaders/vfx/csgo_depth_only_vulkan_50_features.vcs CRC:0002f5c58c size:3330
-shaders/vfx/csgo_depth_only_vulkan_50_ps.vcs CRC:00f96d8bcb size:5996
-shaders/vfx/csgo_depth_only_vulkan_50_vs.vcs CRC:007d069b1d size:8045
+shaders/vfx/csgo_depth_only_vulkan_50_features.vcs CRC:00d2e8d035 size:3330
+shaders/vfx/csgo_depth_only_vulkan_50_ps.vcs CRC:00432726d2 size:5993
+shaders/vfx/csgo_depth_only_vulkan_50_vs.vcs CRC:00521597e3 size:8042
shaders/vfx/csgo_dronecam.ini CRC:0000000000 size:0
shaders/vfx/csgo_dronecam_vulkan_50_features.vcs CRC:00c669bb55 size:1778
shaders/vfx/csgo_dronecam_vulkan_50_ps.vcs CRC:00dc35e479 size:2912
shaders/vfx/csgo_dronecam_vulkan_50_vs.vcs CRC:0058e8989f size:1446
shaders/vfx/csgo_effects.ini CRC:0000000000 size:0
-shaders/vfx/csgo_effects_vulkan_50_features.vcs CRC:006fdb163e size:4290
-shaders/vfx/csgo_effects_vulkan_50_ps.vcs CRC:008c800f8d size:144310
-shaders/vfx/csgo_effects_vulkan_50_psrs.vcs CRC:00e60f45eb size:2242
-shaders/vfx/csgo_effects_vulkan_50_vs.vcs CRC:009cff39ef size:10181
+shaders/vfx/csgo_effects_vulkan_50_features.vcs CRC:0011102306 size:4290
+shaders/vfx/csgo_effects_vulkan_50_ps.vcs CRC:00ab01f065 size:144444
+shaders/vfx/csgo_effects_vulkan_50_psrs.vcs CRC:00153d4526 size:2242
+shaders/vfx/csgo_effects_vulkan_50_vs.vcs CRC:00d17fbaf7 size:10181
shaders/vfx/csgo_environment.ini CRC:0000000000 size:0
shaders/vfx/csgo_environment_blend.ini CRC:0000000000 size:0
-shaders/vfx/csgo_environment_blend_vulkan_50_features.vcs CRC:0043310d45 size:10706
-shaders/vfx/csgo_environment_blend_vulkan_50_ps.vcs CRC:00b6d813c9 size:27563582
-shaders/vfx/csgo_environment_blend_vulkan_50_psrs.vcs CRC:00ad09f764 size:2530
-shaders/vfx/csgo_environment_blend_vulkan_50_vs.vcs CRC:007bfca819 size:188644
-shaders/vfx/csgo_environment_blend_vulkan_60_features.vcs CRC:00b201becc size:10770
-shaders/vfx/csgo_environment_blend_vulkan_60_ps.vcs CRC:00b6d813c9 size:27563582
-shaders/vfx/csgo_environment_blend_vulkan_60_psrs.vcs CRC:00ad09f764 size:2530
-shaders/vfx/csgo_environment_blend_vulkan_60_rtx.vcs CRC:00dd9a5a9a size:5354941
-shaders/vfx/csgo_environment_blend_vulkan_60_vs.vcs CRC:007bfca819 size:188644
-shaders/vfx/csgo_environment_vulkan_50_features.vcs CRC:00341957b3 size:6338
-shaders/vfx/csgo_environment_vulkan_50_ps.vcs CRC:00374df898 size:836237
-shaders/vfx/csgo_environment_vulkan_50_psrs.vcs CRC:00858646dd size:2466
-shaders/vfx/csgo_environment_vulkan_50_vs.vcs CRC:00bf6a438d size:44071
-shaders/vfx/csgo_environment_vulkan_60_features.vcs CRC:0079ec8e43 size:6402
-shaders/vfx/csgo_environment_vulkan_60_ps.vcs CRC:00374df898 size:836237
-shaders/vfx/csgo_environment_vulkan_60_psrs.vcs CRC:00858646dd size:2466
-shaders/vfx/csgo_environment_vulkan_60_rtx.vcs CRC:00c8cdb234 size:283892
-shaders/vfx/csgo_environment_vulkan_60_vs.vcs CRC:00bf6a438d size:44071
+shaders/vfx/csgo_environment_blend_vulkan_50_features.vcs CRC:003f5aa638 size:11170
+shaders/vfx/csgo_environment_blend_vulkan_50_ps.vcs CRC:005bdad6e6 size:115972608
+shaders/vfx/csgo_environment_blend_vulkan_50_psrs.vcs CRC:00abb56a27 size:2786
+shaders/vfx/csgo_environment_blend_vulkan_50_vs.vcs CRC:003065f4ae size:328208
+shaders/vfx/csgo_environment_blend_vulkan_60_features.vcs CRC:003cfdb60a size:11250
+shaders/vfx/csgo_environment_blend_vulkan_60_ps.vcs CRC:005bdad6e6 size:115972608
+shaders/vfx/csgo_environment_blend_vulkan_60_psrs.vcs CRC:00abb56a27 size:2786
+shaders/vfx/csgo_environment_blend_vulkan_60_rtx.vcs CRC:00a39a5822 size:7607916
+shaders/vfx/csgo_environment_blend_vulkan_60_vs.vcs CRC:003065f4ae size:328208
+shaders/vfx/csgo_environment_vulkan_50_features.vcs CRC:0060e5d2fc size:6722
+shaders/vfx/csgo_environment_vulkan_50_ps.vcs CRC:0039e0e408 size:3254315
+shaders/vfx/csgo_environment_vulkan_50_psrs.vcs CRC:0018a9c272 size:2610
+shaders/vfx/csgo_environment_vulkan_50_vs.vcs CRC:009377eede size:74760
+shaders/vfx/csgo_environment_vulkan_60_features.vcs CRC:006fd1c78f size:6834
+shaders/vfx/csgo_environment_vulkan_60_ps.vcs CRC:0039e0e408 size:3254315
+shaders/vfx/csgo_environment_vulkan_60_psrs.vcs CRC:0018a9c272 size:2610
+shaders/vfx/csgo_environment_vulkan_60_rtx.vcs CRC:00bcc7849d size:387892
+shaders/vfx/csgo_environment_vulkan_60_vs.vcs CRC:009377eede size:74760
shaders/vfx/csgo_eyeball.ini CRC:0000000000 size:0
-shaders/vfx/csgo_eyeball_vulkan_50_features.vcs CRC:0064906348 size:4018
-shaders/vfx/csgo_eyeball_vulkan_50_ps.vcs CRC:00d0f7c0dd size:82717
-shaders/vfx/csgo_eyeball_vulkan_50_psrs.vcs CRC:00b0972c53 size:1650
-shaders/vfx/csgo_eyeball_vulkan_50_vs.vcs CRC:0051aae988 size:17919
+shaders/vfx/csgo_eyeball_vulkan_50_features.vcs CRC:005ec2c0ef size:4018
+shaders/vfx/csgo_eyeball_vulkan_50_ps.vcs CRC:006432aaa9 size:82567
+shaders/vfx/csgo_eyeball_vulkan_50_psrs.vcs CRC:00072dbbdc size:1650
+shaders/vfx/csgo_eyeball_vulkan_50_vs.vcs CRC:00416b81a3 size:17919
shaders/vfx/csgo_flashbang_overlay.ini CRC:0000000000 size:0
-shaders/vfx/csgo_flashbang_overlay_vulkan_50_features.vcs CRC:003f6af5d8 size:3570
-shaders/vfx/csgo_flashbang_overlay_vulkan_50_ps.vcs CRC:0065eef858 size:3872
-shaders/vfx/csgo_flashbang_overlay_vulkan_50_psrs.vcs CRC:00c63abcc9 size:1810
-shaders/vfx/csgo_flashbang_overlay_vulkan_50_vs.vcs CRC:0013a96568 size:11088
+shaders/vfx/csgo_flashbang_overlay_vulkan_50_features.vcs CRC:00970522e2 size:3586
+shaders/vfx/csgo_flashbang_overlay_vulkan_50_ps.vcs CRC:00fd5fca89 size:3892
+shaders/vfx/csgo_flashbang_overlay_vulkan_50_psrs.vcs CRC:00cf9557be size:1810
+shaders/vfx/csgo_flashbang_overlay_vulkan_50_vs.vcs CRC:0049a12716 size:11088
shaders/vfx/csgo_foliage.ini CRC:0000000000 size:0
-shaders/vfx/csgo_foliage_vulkan_50_features.vcs CRC:001b04a572 size:6514
-shaders/vfx/csgo_foliage_vulkan_50_ps.vcs CRC:00ef5d5256 size:2184977
+shaders/vfx/csgo_foliage_vulkan_50_features.vcs CRC:008ba3926a size:6514
+shaders/vfx/csgo_foliage_vulkan_50_ps.vcs CRC:00fecfed27 size:2184374
shaders/vfx/csgo_foliage_vulkan_50_psrs.vcs CRC:00be28e494 size:2386
-shaders/vfx/csgo_foliage_vulkan_50_vs.vcs CRC:007ff23472 size:174138
-shaders/vfx/csgo_foliage_vulkan_60_features.vcs CRC:00d0d3c917 size:6578
-shaders/vfx/csgo_foliage_vulkan_60_ps.vcs CRC:00ef5d5256 size:2184977
+shaders/vfx/csgo_foliage_vulkan_50_vs.vcs CRC:001e5428b8 size:174151
+shaders/vfx/csgo_foliage_vulkan_60_features.vcs CRC:00fa09b6f2 size:6610
+shaders/vfx/csgo_foliage_vulkan_60_ps.vcs CRC:00fecfed27 size:2184374
shaders/vfx/csgo_foliage_vulkan_60_psrs.vcs CRC:00be28e494 size:2386
-shaders/vfx/csgo_foliage_vulkan_60_rtx.vcs CRC:004e8182ae size:175658
-shaders/vfx/csgo_foliage_vulkan_60_vs.vcs CRC:007ff23472 size:174138
+shaders/vfx/csgo_foliage_vulkan_60_rtx.vcs CRC:0067697b04 size:175693
+shaders/vfx/csgo_foliage_vulkan_60_vs.vcs CRC:001e5428b8 size:174151
shaders/vfx/csgo_glass.ini CRC:0000000000 size:0
-shaders/vfx/csgo_glass_vulkan_50_features.vcs CRC:0095195879 size:4306
-shaders/vfx/csgo_glass_vulkan_50_ps.vcs CRC:0080be49e6 size:494986
+shaders/vfx/csgo_glass_vulkan_50_features.vcs CRC:000df7f838 size:4306
+shaders/vfx/csgo_glass_vulkan_50_ps.vcs CRC:00e2a4264c size:495012
shaders/vfx/csgo_glass_vulkan_50_psrs.vcs CRC:006950f0be size:2866
-shaders/vfx/csgo_glass_vulkan_50_vs.vcs CRC:006772c139 size:91019
+shaders/vfx/csgo_glass_vulkan_50_vs.vcs CRC:00040c7782 size:91019
shaders/vfx/csgo_grenade_camera.ini CRC:0000000000 size:0
-shaders/vfx/csgo_grenade_camera_vulkan_50_features.vcs CRC:000c7874cb size:1890
-shaders/vfx/csgo_grenade_camera_vulkan_50_ps.vcs CRC:0040f1b4ad size:3525
+shaders/vfx/csgo_grenade_camera_vulkan_50_features.vcs CRC:006a5f3554 size:1890
+shaders/vfx/csgo_grenade_camera_vulkan_50_ps.vcs CRC:00456a1056 size:3524
shaders/vfx/csgo_grenade_camera_vulkan_50_vs.vcs CRC:00559fe5e5 size:1460
shaders/vfx/csgo_legs_prepass.ini CRC:0000000000 size:0
-shaders/vfx/csgo_legs_prepass_vulkan_50_features.vcs CRC:00122f60a9 size:3138
-shaders/vfx/csgo_legs_prepass_vulkan_50_ps.vcs CRC:002aa98770 size:2343
-shaders/vfx/csgo_legs_prepass_vulkan_50_vs.vcs CRC:0065787d44 size:12409
+shaders/vfx/csgo_legs_prepass_vulkan_50_features.vcs CRC:001c12d94c size:3138
+shaders/vfx/csgo_legs_prepass_vulkan_50_ps.vcs CRC:0072c655ee size:2343
+shaders/vfx/csgo_legs_prepass_vulkan_50_vs.vcs CRC:00b938db09 size:12409
shaders/vfx/csgo_lightmapped_4wayblend.ini CRC:0000000000 size:0
-shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_features.vcs CRC:00c2af0c78 size:4674
-shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_ps.vcs CRC:00511aaecc size:450955
-shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_psrs.vcs CRC:003c1c6177 size:2050
-shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_vs.vcs CRC:00ae1bfebe size:39241
+shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_features.vcs CRC:0015411f6f size:4690
+shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_ps.vcs CRC:0055dd51d6 size:453810
+shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_psrs.vcs CRC:00fe2f5b08 size:2050
+shaders/vfx/csgo_lightmapped_4wayblend_vulkan_50_vs.vcs CRC:0010a1f81e size:39257
shaders/vfx/csgo_lightmappedgeneric.ini CRC:0000000000 size:0
-shaders/vfx/csgo_lightmappedgeneric_vulkan_50_features.vcs CRC:00ba156f4f size:6882
-shaders/vfx/csgo_lightmappedgeneric_vulkan_50_ps.vcs CRC:00749f620d size:16761023
-shaders/vfx/csgo_lightmappedgeneric_vulkan_50_psrs.vcs CRC:00f92984a4 size:4050
-shaders/vfx/csgo_lightmappedgeneric_vulkan_50_vs.vcs CRC:00bceb2d3f size:391702
-shaders/vfx/csgo_lightmappedgeneric_vulkan_60_features.vcs CRC:00dd6e7ab1 size:6946
-shaders/vfx/csgo_lightmappedgeneric_vulkan_60_ps.vcs CRC:00749f620d size:16761023
-shaders/vfx/csgo_lightmappedgeneric_vulkan_60_psrs.vcs CRC:00f92984a4 size:4050
-shaders/vfx/csgo_lightmappedgeneric_vulkan_60_rtx.vcs CRC:008c3098ce size:1503471
-shaders/vfx/csgo_lightmappedgeneric_vulkan_60_vs.vcs CRC:00bceb2d3f size:391702
+shaders/vfx/csgo_lightmappedgeneric_vulkan_50_features.vcs CRC:00bea036be size:6914
+shaders/vfx/csgo_lightmappedgeneric_vulkan_50_ps.vcs CRC:00fd25f014 size:16875416
+shaders/vfx/csgo_lightmappedgeneric_vulkan_50_psrs.vcs CRC:00491764d5 size:4050
+shaders/vfx/csgo_lightmappedgeneric_vulkan_50_vs.vcs CRC:005b4144a5 size:552509
+shaders/vfx/csgo_lightmappedgeneric_vulkan_60_features.vcs CRC:004cccb30a size:6994
+shaders/vfx/csgo_lightmappedgeneric_vulkan_60_ps.vcs CRC:00fd25f014 size:16875416
+shaders/vfx/csgo_lightmappedgeneric_vulkan_60_psrs.vcs CRC:00491764d5 size:4050
+shaders/vfx/csgo_lightmappedgeneric_vulkan_60_rtx.vcs CRC:003c0c4fd4 size:1503539
+shaders/vfx/csgo_lightmappedgeneric_vulkan_60_vs.vcs CRC:005b4144a5 size:552509
shaders/vfx/csgo_moondome.ini CRC:0000000000 size:0
-shaders/vfx/csgo_moondome_vulkan_50_features.vcs CRC:00a89e5da9 size:3730
-shaders/vfx/csgo_moondome_vulkan_50_ps.vcs CRC:00a0f8a1ef size:9076
-shaders/vfx/csgo_moondome_vulkan_50_psrs.vcs CRC:009f55912f size:1762
-shaders/vfx/csgo_moondome_vulkan_50_vs.vcs CRC:007124f218 size:9567
+shaders/vfx/csgo_moondome_vulkan_50_features.vcs CRC:008c5895b0 size:3730
+shaders/vfx/csgo_moondome_vulkan_50_ps.vcs CRC:0018cdd32d size:9094
+shaders/vfx/csgo_moondome_vulkan_50_psrs.vcs CRC:00e49eec17 size:1762
+shaders/vfx/csgo_moondome_vulkan_50_vs.vcs CRC:00e9cdc158 size:9567
shaders/vfx/csgo_panolayer_rt.ini CRC:0000000000 size:0
-shaders/vfx/csgo_panolayer_rt_vulkan_50_features.vcs CRC:005bac7ecc size:1922
-shaders/vfx/csgo_panolayer_rt_vulkan_50_ps.vcs CRC:00c470dd4b size:2655
-shaders/vfx/csgo_panolayer_rt_vulkan_50_psrs.vcs CRC:00bcb37f20 size:1586
-shaders/vfx/csgo_panolayer_rt_vulkan_50_vs.vcs CRC:0093e19af8 size:1780
+shaders/vfx/csgo_panolayer_rt_vulkan_50_features.vcs CRC:00f9456bca size:1922
+shaders/vfx/csgo_panolayer_rt_vulkan_50_ps.vcs CRC:0064d32410 size:2655
+shaders/vfx/csgo_panolayer_rt_vulkan_50_psrs.vcs CRC:0029a0cc5e size:1586
+shaders/vfx/csgo_panolayer_rt_vulkan_50_vs.vcs CRC:00360851bc size:1780
shaders/vfx/csgo_projected_decals.ini CRC:0000000000 size:0
-shaders/vfx/csgo_projected_decals_vulkan_50_features.vcs CRC:0063b1a152 size:5442
-shaders/vfx/csgo_projected_decals_vulkan_50_ps.vcs CRC:00b3fd9ae1 size:50148908
-shaders/vfx/csgo_projected_decals_vulkan_50_psrs.vcs CRC:002ab260b2 size:2786
-shaders/vfx/csgo_projected_decals_vulkan_50_vs.vcs CRC:005efb3ea1 size:8706
+shaders/vfx/csgo_projected_decals_vulkan_50_features.vcs CRC:0071b927ee size:5442
+shaders/vfx/csgo_projected_decals_vulkan_50_ps.vcs CRC:00c156ca58 size:50519683
+shaders/vfx/csgo_projected_decals_vulkan_50_psrs.vcs CRC:00ad2bd92b size:2786
+shaders/vfx/csgo_projected_decals_vulkan_50_vs.vcs CRC:005d7d90f8 size:8706
shaders/vfx/csgo_refract.ini CRC:0000000000 size:0
shaders/vfx/csgo_refract_vulkan_50_features.vcs CRC:00b4d537c6 size:2594
shaders/vfx/csgo_refract_vulkan_50_ps.vcs CRC:00929c3f67 size:21805
@@ -206,39 +206,39 @@ shaders/vfx/csgo_screenspace_zone_vulkan_50_ps.vcs CRC:00e209cae1 size:4696
shaders/vfx/csgo_screenspace_zone_vulkan_50_vs.vcs CRC:0058e8989f size:1446
shaders/vfx/csgo_simple.ini CRC:0000000000 size:0
shaders/vfx/csgo_simple_2way_blend.ini CRC:0000000000 size:0
-shaders/vfx/csgo_simple_2way_blend_vulkan_50_features.vcs CRC:003af486ec size:4722
-shaders/vfx/csgo_simple_2way_blend_vulkan_50_ps.vcs CRC:007591ecb8 size:305198
+shaders/vfx/csgo_simple_2way_blend_vulkan_50_features.vcs CRC:0061a58d0c size:4738
+shaders/vfx/csgo_simple_2way_blend_vulkan_50_ps.vcs CRC:009575da12 size:306675
shaders/vfx/csgo_simple_2way_blend_vulkan_50_psrs.vcs CRC:0013b79f0e size:1874
-shaders/vfx/csgo_simple_2way_blend_vulkan_50_vs.vcs CRC:006f726b68 size:24693
-shaders/vfx/csgo_simple_2way_blend_vulkan_60_features.vcs CRC:002f614caa size:4802
-shaders/vfx/csgo_simple_2way_blend_vulkan_60_ps.vcs CRC:007591ecb8 size:305198
+shaders/vfx/csgo_simple_2way_blend_vulkan_50_vs.vcs CRC:0062360dd3 size:24693
+shaders/vfx/csgo_simple_2way_blend_vulkan_60_features.vcs CRC:00c56b620c size:4818
+shaders/vfx/csgo_simple_2way_blend_vulkan_60_ps.vcs CRC:009575da12 size:306675
shaders/vfx/csgo_simple_2way_blend_vulkan_60_psrs.vcs CRC:0013b79f0e size:1874
-shaders/vfx/csgo_simple_2way_blend_vulkan_60_rtx.vcs CRC:0041e04343 size:69804
-shaders/vfx/csgo_simple_2way_blend_vulkan_60_vs.vcs CRC:006f726b68 size:24693
+shaders/vfx/csgo_simple_2way_blend_vulkan_60_rtx.vcs CRC:0002d65eb6 size:69822
+shaders/vfx/csgo_simple_2way_blend_vulkan_60_vs.vcs CRC:0062360dd3 size:24693
shaders/vfx/csgo_simple_3layer_parallax.ini CRC:0000000000 size:0
-shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_features.vcs CRC:00126a679b size:4866
-shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_ps.vcs CRC:001da3c613 size:3191670
+shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_features.vcs CRC:006b3cd645 size:4866
+shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_ps.vcs CRC:0096efe05f size:3190570
shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_psrs.vcs CRC:00ec6ef90d size:1938
-shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_vs.vcs CRC:00d1b9d962 size:21931
+shaders/vfx/csgo_simple_3layer_parallax_vulkan_50_vs.vcs CRC:0068bf135b size:21948
shaders/vfx/csgo_simple_liquid.ini CRC:0000000000 size:0
-shaders/vfx/csgo_simple_liquid_vulkan_50_features.vcs CRC:00d51ad92c size:5890
-shaders/vfx/csgo_simple_liquid_vulkan_50_ps.vcs CRC:00e86b59df size:1418572
-shaders/vfx/csgo_simple_liquid_vulkan_50_psrs.vcs CRC:009897a715 size:1826
-shaders/vfx/csgo_simple_liquid_vulkan_50_vs.vcs CRC:004ccc6e87 size:32154
-shaders/vfx/csgo_simple_vulkan_50_features.vcs CRC:00a1a7b65f size:4658
-shaders/vfx/csgo_simple_vulkan_50_ps.vcs CRC:00c9e1f0ac size:275662
+shaders/vfx/csgo_simple_liquid_vulkan_50_features.vcs CRC:0027957c27 size:5954
+shaders/vfx/csgo_simple_liquid_vulkan_50_ps.vcs CRC:009825e0fe size:1574032
+shaders/vfx/csgo_simple_liquid_vulkan_50_psrs.vcs CRC:007031f32d size:1842
+shaders/vfx/csgo_simple_liquid_vulkan_50_vs.vcs CRC:008fc54866 size:34264
+shaders/vfx/csgo_simple_vulkan_50_features.vcs CRC:00186205c6 size:4658
+shaders/vfx/csgo_simple_vulkan_50_ps.vcs CRC:009d3a6e10 size:279137
shaders/vfx/csgo_simple_vulkan_50_psrs.vcs CRC:00ca11e680 size:2130
-shaders/vfx/csgo_simple_vulkan_50_vs.vcs CRC:004c6c5454 size:24231
+shaders/vfx/csgo_simple_vulkan_50_vs.vcs CRC:00ff5cdbe3 size:24231
shaders/vfx/csgo_static_overlay.ini CRC:0000000000 size:0
-shaders/vfx/csgo_static_overlay_vulkan_50_features.vcs CRC:007155fe1d size:7554
-shaders/vfx/csgo_static_overlay_vulkan_50_ps.vcs CRC:0095e7c840 size:841185
-shaders/vfx/csgo_static_overlay_vulkan_50_psrs.vcs CRC:00a626d5f8 size:2610
-shaders/vfx/csgo_static_overlay_vulkan_50_vs.vcs CRC:004abdc0fd size:128425
+shaders/vfx/csgo_static_overlay_vulkan_50_features.vcs CRC:00af09c8a6 size:7602
+shaders/vfx/csgo_static_overlay_vulkan_50_ps.vcs CRC:00afe553cd size:854052
+shaders/vfx/csgo_static_overlay_vulkan_50_psrs.vcs CRC:003f43c7fb size:2610
+shaders/vfx/csgo_static_overlay_vulkan_50_vs.vcs CRC:009893a3c6 size:134940
shaders/vfx/csgo_textile_layer.ini CRC:0000000000 size:0
-shaders/vfx/csgo_textile_layer_vulkan_50_features.vcs CRC:00e3765279 size:7250
-shaders/vfx/csgo_textile_layer_vulkan_50_ps.vcs CRC:0093df54b3 size:125181
-shaders/vfx/csgo_textile_layer_vulkan_50_psrs.vcs CRC:00ace63e8c size:1858
-shaders/vfx/csgo_textile_layer_vulkan_50_vs.vcs CRC:007ab564b2 size:9519
+shaders/vfx/csgo_textile_layer_vulkan_50_features.vcs CRC:00755aa189 size:7250
+shaders/vfx/csgo_textile_layer_vulkan_50_ps.vcs CRC:00b3a793c0 size:125192
+shaders/vfx/csgo_textile_layer_vulkan_50_psrs.vcs CRC:00ff9799e7 size:1858
+shaders/vfx/csgo_textile_layer_vulkan_50_vs.vcs CRC:00804173a2 size:9519
shaders/vfx/csgo_tools_shading_complexity.ini CRC:0000000000 size:0
shaders/vfx/csgo_tools_shading_complexity_vulkan_50_features.vcs CRC:000efc205f size:2178
shaders/vfx/csgo_tools_shading_complexity_vulkan_50_ps.vcs CRC:00f71e4a5f size:2958
@@ -252,44 +252,44 @@ shaders/vfx/csgo_ui_texture_attribute_vulkan_50_features.vcs CRC:003dc34fc4 size
shaders/vfx/csgo_ui_texture_attribute_vulkan_50_ps.vcs CRC:00763abeb6 size:1951
shaders/vfx/csgo_ui_texture_attribute_vulkan_50_vs.vcs CRC:00895145c7 size:1913
shaders/vfx/csgo_unlitgeneric.ini CRC:0000000000 size:0
-shaders/vfx/csgo_unlitgeneric_vulkan_50_features.vcs CRC:00b6a22217 size:4834
-shaders/vfx/csgo_unlitgeneric_vulkan_50_ps.vcs CRC:00195aa765 size:165657
-shaders/vfx/csgo_unlitgeneric_vulkan_50_psrs.vcs CRC:0073277f05 size:3314
-shaders/vfx/csgo_unlitgeneric_vulkan_50_vs.vcs CRC:008ffd87ab size:82692
+shaders/vfx/csgo_unlitgeneric_vulkan_50_features.vcs CRC:009e0021fb size:4834
+shaders/vfx/csgo_unlitgeneric_vulkan_50_ps.vcs CRC:0001fb23f8 size:165660
+shaders/vfx/csgo_unlitgeneric_vulkan_50_psrs.vcs CRC:00b75836fd size:3314
+shaders/vfx/csgo_unlitgeneric_vulkan_50_vs.vcs CRC:007e8fb39b size:82692
shaders/vfx/csgo_vertexlitgeneric.ini CRC:0000000000 size:0
-shaders/vfx/csgo_vertexlitgeneric_vulkan_50_features.vcs CRC:001f291976 size:6450
-shaders/vfx/csgo_vertexlitgeneric_vulkan_50_ps.vcs CRC:00f6dd496e size:17416926
+shaders/vfx/csgo_vertexlitgeneric_vulkan_50_features.vcs CRC:004d5c9722 size:6466
+shaders/vfx/csgo_vertexlitgeneric_vulkan_50_ps.vcs CRC:007280ca98 size:17528271
shaders/vfx/csgo_vertexlitgeneric_vulkan_50_psrs.vcs CRC:00fd658c92 size:3170
-shaders/vfx/csgo_vertexlitgeneric_vulkan_50_vs.vcs CRC:0055600e60 size:111435
-shaders/vfx/csgo_vertexlitgeneric_vulkan_60_features.vcs CRC:005df5ce66 size:6562
-shaders/vfx/csgo_vertexlitgeneric_vulkan_60_ps.vcs CRC:00f6dd496e size:17416926
+shaders/vfx/csgo_vertexlitgeneric_vulkan_50_vs.vcs CRC:00b54e216a size:111447
+shaders/vfx/csgo_vertexlitgeneric_vulkan_60_features.vcs CRC:008793b1be size:6578
+shaders/vfx/csgo_vertexlitgeneric_vulkan_60_ps.vcs CRC:007280ca98 size:17528271
shaders/vfx/csgo_vertexlitgeneric_vulkan_60_psrs.vcs CRC:00fd658c92 size:3170
-shaders/vfx/csgo_vertexlitgeneric_vulkan_60_rtx.vcs CRC:00b4fbabc0 size:1640900
-shaders/vfx/csgo_vertexlitgeneric_vulkan_60_vs.vcs CRC:0055600e60 size:111435
+shaders/vfx/csgo_vertexlitgeneric_vulkan_60_rtx.vcs CRC:00afa4f05b size:1640912
+shaders/vfx/csgo_vertexlitgeneric_vulkan_60_vs.vcs CRC:00b54e216a size:111447
shaders/vfx/csgo_volume_viewer.ini CRC:0000000000 size:0
shaders/vfx/csgo_volume_viewer_vulkan_50_features.vcs CRC:00bdb2e588 size:1794
shaders/vfx/csgo_volume_viewer_vulkan_50_ps.vcs CRC:004f16297b size:2623
shaders/vfx/csgo_volume_viewer_vulkan_50_vs.vcs CRC:003ad5dbf7 size:2212
shaders/vfx/csgo_water.ini CRC:0000000000 size:0
shaders/vfx/csgo_water_fancy.ini CRC:0000000000 size:0
-shaders/vfx/csgo_water_fancy_vulkan_50_features.vcs CRC:00648c3eb7 size:6322
-shaders/vfx/csgo_water_fancy_vulkan_50_ps.vcs CRC:005390fc96 size:4973780
-shaders/vfx/csgo_water_fancy_vulkan_50_psrs.vcs CRC:00e4b067b7 size:2018
-shaders/vfx/csgo_water_fancy_vulkan_50_vs.vcs CRC:009a0b3788 size:16890
-shaders/vfx/csgo_water_vulkan_50_features.vcs CRC:0026f8c27f size:5234
-shaders/vfx/csgo_water_vulkan_50_ps.vcs CRC:00dc7d753b size:3613802
-shaders/vfx/csgo_water_vulkan_50_psrs.vcs CRC:0087a55d56 size:1954
-shaders/vfx/csgo_water_vulkan_50_vs.vcs CRC:009b3981a9 size:18177
+shaders/vfx/csgo_water_fancy_vulkan_50_features.vcs CRC:00817ab090 size:6322
+shaders/vfx/csgo_water_fancy_vulkan_50_ps.vcs CRC:00bdaab92d size:5071389
+shaders/vfx/csgo_water_fancy_vulkan_50_psrs.vcs CRC:0004f79ddd size:2034
+shaders/vfx/csgo_water_fancy_vulkan_50_vs.vcs CRC:00526dcdb7 size:16890
+shaders/vfx/csgo_water_vulkan_50_features.vcs CRC:0055be0083 size:5234
+shaders/vfx/csgo_water_vulkan_50_ps.vcs CRC:00dca082c4 size:3626960
+shaders/vfx/csgo_water_vulkan_50_psrs.vcs CRC:00c6817183 size:1954
+shaders/vfx/csgo_water_vulkan_50_vs.vcs CRC:009a223088 size:18177
shaders/vfx/csgo_weapon.ini CRC:0000000000 size:0
shaders/vfx/csgo_weapon_sticker.ini CRC:0000000000 size:0
-shaders/vfx/csgo_weapon_sticker_vulkan_50_features.vcs CRC:0013c0cbd5 size:4978
-shaders/vfx/csgo_weapon_sticker_vulkan_50_ps.vcs CRC:00397cdafc size:112221
-shaders/vfx/csgo_weapon_sticker_vulkan_50_psrs.vcs CRC:00080c9adc size:1586
-shaders/vfx/csgo_weapon_sticker_vulkan_50_vs.vcs CRC:00d62fc43b size:11231
-shaders/vfx/csgo_weapon_vulkan_50_features.vcs CRC:00b2403e78 size:10370
-shaders/vfx/csgo_weapon_vulkan_50_ps.vcs CRC:00d6d02736 size:26972306
-shaders/vfx/csgo_weapon_vulkan_50_psrs.vcs CRC:0013979893 size:2402
-shaders/vfx/csgo_weapon_vulkan_50_vs.vcs CRC:00278060e0 size:40405
+shaders/vfx/csgo_weapon_sticker_vulkan_50_features.vcs CRC:00cd71f0e6 size:4978
+shaders/vfx/csgo_weapon_sticker_vulkan_50_ps.vcs CRC:003586b006 size:112369
+shaders/vfx/csgo_weapon_sticker_vulkan_50_psrs.vcs CRC:00a6a7b43d size:1586
+shaders/vfx/csgo_weapon_sticker_vulkan_50_vs.vcs CRC:0092514444 size:11231
+shaders/vfx/csgo_weapon_vulkan_50_features.vcs CRC:0002d95f9c size:10418
+shaders/vfx/csgo_weapon_vulkan_50_ps.vcs CRC:00d907281e size:28726062
+shaders/vfx/csgo_weapon_vulkan_50_psrs.vcs CRC:005296c6b7 size:2402
+shaders/vfx/csgo_weapon_vulkan_50_vs.vcs CRC:00c1b53691 size:42656
shaders/vfx/deferred_particle_shadows.ini CRC:0000000000 size:0
shaders/vfx/deferred_particle_shadows_vulkan_50_features.vcs CRC:00d44879f1 size:1682
shaders/vfx/deferred_particle_shadows_vulkan_50_ps.vcs CRC:00fe14e2e6 size:4683
@@ -329,62 +329,62 @@ shaders/vfx/generate_decal_normals_vulkan_60_features.vcs CRC:008ef1de8c size:16
shaders/vfx/generate_decal_normals_vulkan_60_ps.vcs CRC:00f73eb457 size:2266
shaders/vfx/generate_decal_normals_vulkan_60_vs.vcs CRC:00cfe35899 size:1782
shaders/vfx/generic.ini CRC:0000000000 size:0
-shaders/vfx/generic_vulkan_50_features.vcs CRC:00af504ec0 size:5074
-shaders/vfx/generic_vulkan_50_ps.vcs CRC:00382b4727 size:1942579
-shaders/vfx/generic_vulkan_50_psrs.vcs CRC:005f693504 size:3442
-shaders/vfx/generic_vulkan_50_vs.vcs CRC:006b80d3bb size:25929
+shaders/vfx/generic_vulkan_50_features.vcs CRC:00011ca969 size:5074
+shaders/vfx/generic_vulkan_50_ps.vcs CRC:000fd1f725 size:1958547
+shaders/vfx/generic_vulkan_50_psrs.vcs CRC:00896ac5fa size:3442
+shaders/vfx/generic_vulkan_50_vs.vcs CRC:00ac19044a size:25929
shaders/vfx/grasstile.ini CRC:0000000000 size:0
shaders/vfx/grasstile_preview.ini CRC:0000000000 size:0
shaders/vfx/grasstile_preview_vulkan_50_features.vcs CRC:00f9a2db40 size:2162
shaders/vfx/grasstile_preview_vulkan_50_ps.vcs CRC:004836e56f size:3129
shaders/vfx/grasstile_preview_vulkan_50_vs.vcs CRC:0032b6d08f size:3078
-shaders/vfx/grasstile_vulkan_50_features.vcs CRC:00d221cc8a size:3570
-shaders/vfx/grasstile_vulkan_50_ps.vcs CRC:00e40995d0 size:75770
-shaders/vfx/grasstile_vulkan_50_psrs.vcs CRC:00f2d803fd size:2002
-shaders/vfx/grasstile_vulkan_50_vs.vcs CRC:00d924400b size:5973
+shaders/vfx/grasstile_vulkan_50_features.vcs CRC:0000d5f45d size:3570
+shaders/vfx/grasstile_vulkan_50_ps.vcs CRC:00f16bf391 size:75914
+shaders/vfx/grasstile_vulkan_50_psrs.vcs CRC:0076620160 size:2002
+shaders/vfx/grasstile_vulkan_50_vs.vcs CRC:00ae681e47 size:5973
shaders/vfx/healthboost.ini CRC:0000000000 size:0
shaders/vfx/healthboost_vulkan_50_features.vcs CRC:00f1c7615b size:1794
shaders/vfx/healthboost_vulkan_50_ps.vcs CRC:005e08f5b6 size:2714
shaders/vfx/healthboost_vulkan_50_vs.vcs CRC:00c1fbcedf size:1361
shaders/vfx/histogram_cs.ini CRC:0000000000 size:0
-shaders/vfx/histogram_cs_vulkan_50_cs.vcs CRC:002e1a9d88 size:8124
-shaders/vfx/histogram_cs_vulkan_50_features.vcs CRC:004748ea81 size:1730
+shaders/vfx/histogram_cs_vulkan_50_cs.vcs CRC:00207b81ce size:8121
+shaders/vfx/histogram_cs_vulkan_50_features.vcs CRC:0054363111 size:1730
shaders/vfx/inferno.ini CRC:0000000000 size:0
-shaders/vfx/inferno_vulkan_50_features.vcs CRC:009b120da5 size:1906
-shaders/vfx/inferno_vulkan_50_ps.vcs CRC:00966f858f size:3842
-shaders/vfx/inferno_vulkan_50_vs.vcs CRC:00db5abfc4 size:2052
+shaders/vfx/inferno_vulkan_50_features.vcs CRC:0001da3dbd size:1906
+shaders/vfx/inferno_vulkan_50_ps.vcs CRC:00f4959e41 size:3843
+shaders/vfx/inferno_vulkan_50_vs.vcs CRC:00bf809968 size:2052
shaders/vfx/legacy_sniper_scope.ini CRC:0000000000 size:0
shaders/vfx/legacy_sniper_scope_vulkan_50_features.vcs CRC:000ec34ac7 size:1714
shaders/vfx/legacy_sniper_scope_vulkan_50_ps.vcs CRC:00876bcd38 size:3614
shaders/vfx/legacy_sniper_scope_vulkan_50_vs.vcs CRC:00c1fbcedf size:1361
shaders/vfx/lpv_debug_grid.ini CRC:0000000000 size:0
-shaders/vfx/lpv_debug_grid_vulkan_50_features.vcs CRC:00c23c50ad size:2866
-shaders/vfx/lpv_debug_grid_vulkan_50_gs.vcs CRC:00fec36cb7 size:5120
-shaders/vfx/lpv_debug_grid_vulkan_50_ps.vcs CRC:0088b58588 size:56580
-shaders/vfx/lpv_debug_grid_vulkan_50_vs.vcs CRC:004fae1338 size:2420
+shaders/vfx/lpv_debug_grid_vulkan_50_features.vcs CRC:006c35ddc0 size:2866
+shaders/vfx/lpv_debug_grid_vulkan_50_gs.vcs CRC:0084578ad4 size:5120
+shaders/vfx/lpv_debug_grid_vulkan_50_ps.vcs CRC:00dd31bc74 size:56834
+shaders/vfx/lpv_debug_grid_vulkan_50_vs.vcs CRC:00996c1a1f size:2436
shaders/vfx/luminaire.ini CRC:0000000000 size:0
-shaders/vfx/luminaire_vulkan_50_features.vcs CRC:0095d621bc size:2418
-shaders/vfx/luminaire_vulkan_50_ps.vcs CRC:00a62b4315 size:10950
-shaders/vfx/luminaire_vulkan_50_psrs.vcs CRC:00c073b324 size:2018
-shaders/vfx/luminaire_vulkan_50_vs.vcs CRC:00f73b149c size:4236
+shaders/vfx/luminaire_vulkan_50_features.vcs CRC:00cced6d93 size:2418
+shaders/vfx/luminaire_vulkan_50_ps.vcs CRC:006b637d50 size:10948
+shaders/vfx/luminaire_vulkan_50_psrs.vcs CRC:00200a1e43 size:2018
+shaders/vfx/luminaire_vulkan_50_vs.vcs CRC:009a68c550 size:4236
shaders/vfx/mboit_mixed_combine.ini CRC:0000000000 size:0
-shaders/vfx/mboit_mixed_combine_vulkan_50_features.vcs CRC:00687315fc size:1954
-shaders/vfx/mboit_mixed_combine_vulkan_50_ps.vcs CRC:0089c389e4 size:6981
+shaders/vfx/mboit_mixed_combine_vulkan_50_features.vcs CRC:006e6a68e8 size:1954
+shaders/vfx/mboit_mixed_combine_vulkan_50_ps.vcs CRC:00121c3fe9 size:6983
shaders/vfx/mboit_mixed_combine_vulkan_50_vs.vcs CRC:000e7b0f60 size:2155
shaders/vfx/mboit_mixed_upsample.ini CRC:0000000000 size:0
-shaders/vfx/mboit_mixed_upsample_vulkan_50_cs.vcs CRC:000a1844df size:9755
-shaders/vfx/mboit_mixed_upsample_vulkan_50_features.vcs CRC:00d01e8f59 size:2018
+shaders/vfx/mboit_mixed_upsample_vulkan_50_cs.vcs CRC:00ecfe3acd size:9757
+shaders/vfx/mboit_mixed_upsample_vulkan_50_features.vcs CRC:00cd5dd0e3 size:2018
shaders/vfx/mboitfinal.ini CRC:0000000000 size:0
-shaders/vfx/mboitfinal_vulkan_50_features.vcs CRC:003b53f60e size:1954
-shaders/vfx/mboitfinal_vulkan_50_ps.vcs CRC:00017d32e3 size:9368
+shaders/vfx/mboitfinal_vulkan_50_features.vcs CRC:00f06fac64 size:1970
+shaders/vfx/mboitfinal_vulkan_50_ps.vcs CRC:00065dd963 size:9392
shaders/vfx/mboitfinal_vulkan_50_vs.vcs CRC:00a4e324be size:2418
shaders/vfx/outlines.ini CRC:0000000000 size:0
shaders/vfx/outlines_vulkan_50_features.vcs CRC:00e6864a88 size:1778
shaders/vfx/outlines_vulkan_50_ps.vcs CRC:00ed69fa1e size:3151
shaders/vfx/outlines_vulkan_50_vs.vcs CRC:0070b74c32 size:1363
shaders/vfx/overlay_smoke.ini CRC:0000000000 size:0
-shaders/vfx/overlay_smoke_vulkan_50_features.vcs CRC:00e84b3e90 size:1746
-shaders/vfx/overlay_smoke_vulkan_50_ps.vcs CRC:00448b7c4b size:3367
+shaders/vfx/overlay_smoke_vulkan_50_features.vcs CRC:00c8282e48 size:1762
+shaders/vfx/overlay_smoke_vulkan_50_ps.vcs CRC:001cd1c1a6 size:3383
shaders/vfx/overlay_smoke_vulkan_50_vs.vcs CRC:0086da6292 size:1487
shaders/vfx/panorama_alpha.ini CRC:0000000000 size:0
shaders/vfx/panorama_alpha_vulkan_50_features.vcs CRC:00900fc740 size:1682
@@ -403,69 +403,69 @@ shaders/vfx/player_visibility_vulkan_50_features.vcs CRC:00abc5486a size:1666
shaders/vfx/player_visibility_vulkan_50_ps.vcs CRC:001e023bb5 size:4336
shaders/vfx/player_visibility_vulkan_50_vs.vcs CRC:00c1fbcedf size:1361
shaders/vfx/post_process.ini CRC:0000000000 size:0
-shaders/vfx/post_process_vulkan_50_features.vcs CRC:009d0e5047 size:2626
-shaders/vfx/post_process_vulkan_50_ps.vcs CRC:00421ab223 size:83220
-shaders/vfx/post_process_vulkan_50_vs.vcs CRC:009e956b0b size:1782
+shaders/vfx/post_process_vulkan_50_features.vcs CRC:0021bc2813 size:2626
+shaders/vfx/post_process_vulkan_50_ps.vcs CRC:0098f6e429 size:83313
+shaders/vfx/post_process_vulkan_50_vs.vcs CRC:007737dc89 size:1782
shaders/vfx/reconstruct_normals.ini CRC:0000000000 size:0
shaders/vfx/reconstruct_normals_vulkan_50_features.vcs CRC:000efbe6a8 size:1570
shaders/vfx/reconstruct_normals_vulkan_50_ps.vcs CRC:00c2808e1e size:4012
shaders/vfx/reconstruct_normals_vulkan_50_vs.vcs CRC:001992f1a7 size:1786
shaders/vfx/screenparticlescombine.ini CRC:0000000000 size:0
-shaders/vfx/screenparticlescombine_vulkan_50_features.vcs CRC:002c516485 size:1666
-shaders/vfx/screenparticlescombine_vulkan_50_ps.vcs CRC:001daac2a0 size:2012
+shaders/vfx/screenparticlescombine_vulkan_50_features.vcs CRC:009adb1abc size:1666
+shaders/vfx/screenparticlescombine_vulkan_50_ps.vcs CRC:00b8080669 size:2029
shaders/vfx/screenparticlescombine_vulkan_50_vs.vcs CRC:0074449250 size:1458
shaders/vfx/simple.ini CRC:0000000000 size:0
-shaders/vfx/simple_vulkan_50_features.vcs CRC:00ac84f53e size:4578
-shaders/vfx/simple_vulkan_50_ps.vcs CRC:009e05dde6 size:63444
-shaders/vfx/simple_vulkan_50_psrs.vcs CRC:0002da3ae8 size:1794
-shaders/vfx/simple_vulkan_50_vs.vcs CRC:00a27efe8f size:13504
+shaders/vfx/simple_vulkan_50_features.vcs CRC:00fa6e0c09 size:4594
+shaders/vfx/simple_vulkan_50_ps.vcs CRC:00bbfc3df4 size:63730
+shaders/vfx/simple_vulkan_50_psrs.vcs CRC:00f71bc38a size:1794
+shaders/vfx/simple_vulkan_50_vs.vcs CRC:0094cd530d size:13504
shaders/vfx/sky.ini CRC:0000000000 size:0
shaders/vfx/sky_occluder.ini CRC:0000000000 size:0
shaders/vfx/sky_occluder_vulkan_50_features.vcs CRC:00b9463b7b size:1906
shaders/vfx/sky_occluder_vulkan_50_ps.vcs CRC:003d8eaf4b size:2472
shaders/vfx/sky_occluder_vulkan_50_vs.vcs CRC:00d7967a62 size:2477
-shaders/vfx/sky_vulkan_50_features.vcs CRC:002ad8e7b9 size:2546
-shaders/vfx/sky_vulkan_50_ps.vcs CRC:008d4f3ff1 size:8518
-shaders/vfx/sky_vulkan_50_vs.vcs CRC:00f5d3112e size:2582
+shaders/vfx/sky_vulkan_50_features.vcs CRC:00f19f1684 size:2546
+shaders/vfx/sky_vulkan_50_ps.vcs CRC:00a1b3b08e size:8523
+shaders/vfx/sky_vulkan_50_vs.vcs CRC:0071f346e6 size:2582
shaders/vfx/skybox_blur.ini CRC:0000000000 size:0
shaders/vfx/skybox_blur_vulkan_50_features.vcs CRC:00f4ea76f3 size:1682
shaders/vfx/skybox_blur_vulkan_50_ps.vcs CRC:0021222f9a size:3035
shaders/vfx/skybox_blur_vulkan_50_vs.vcs CRC:006ba482df size:1714
shaders/vfx/smoke_volume.ini CRC:0000000000 size:0
shaders/vfx/smoke_volume_cs.ini CRC:0000000000 size:0
-shaders/vfx/smoke_volume_cs_vulkan_50_cs.vcs CRC:006d2b124c size:83641
-shaders/vfx/smoke_volume_cs_vulkan_50_features.vcs CRC:001879429c size:2818
+shaders/vfx/smoke_volume_cs_vulkan_50_cs.vcs CRC:001bfdf0dd size:83652
+shaders/vfx/smoke_volume_cs_vulkan_50_features.vcs CRC:008956127a size:2818
shaders/vfx/smoke_volume_depth.ini CRC:0000000000 size:0
-shaders/vfx/smoke_volume_depth_vulkan_50_features.vcs CRC:001a185323 size:1986
-shaders/vfx/smoke_volume_depth_vulkan_50_ps.vcs CRC:00a3a2405a size:8935
-shaders/vfx/smoke_volume_depth_vulkan_50_vs.vcs CRC:0094621042 size:1847
+shaders/vfx/smoke_volume_depth_vulkan_50_features.vcs CRC:001973bbb7 size:1986
+shaders/vfx/smoke_volume_depth_vulkan_50_ps.vcs CRC:009809773b size:8935
+shaders/vfx/smoke_volume_depth_vulkan_50_vs.vcs CRC:00c1856984 size:1847
shaders/vfx/smoke_volume_lpv.ini CRC:0000000000 size:0
-shaders/vfx/smoke_volume_lpv_vulkan_50_cs.vcs CRC:008545a720 size:6928
-shaders/vfx/smoke_volume_lpv_vulkan_50_features.vcs CRC:0013496ad0 size:1874
+shaders/vfx/smoke_volume_lpv_vulkan_50_cs.vcs CRC:0080cf3ac5 size:6915
+shaders/vfx/smoke_volume_lpv_vulkan_50_features.vcs CRC:0008726eae size:1874
shaders/vfx/smoke_volume_mask.ini CRC:0000000000 size:0
-shaders/vfx/smoke_volume_mask_vulkan_50_features.vcs CRC:007988eb16 size:1938
-shaders/vfx/smoke_volume_mask_vulkan_50_ps.vcs CRC:008c10c0ec size:14823
+shaders/vfx/smoke_volume_mask_vulkan_50_features.vcs CRC:0061e23565 size:1938
+shaders/vfx/smoke_volume_mask_vulkan_50_ps.vcs CRC:008102629a size:14823
shaders/vfx/smoke_volume_mask_vulkan_50_vs.vcs CRC:002c907541 size:2513
-shaders/vfx/smoke_volume_vulkan_50_features.vcs CRC:0008faf5a6 size:2834
-shaders/vfx/smoke_volume_vulkan_50_ps.vcs CRC:0052768f85 size:108497
-shaders/vfx/smoke_volume_vulkan_50_vs.vcs CRC:0020d3f43d size:1996
+shaders/vfx/smoke_volume_vulkan_50_features.vcs CRC:00ec76af46 size:2834
+shaders/vfx/smoke_volume_vulkan_50_ps.vcs CRC:00c9593361 size:108493
+shaders/vfx/smoke_volume_vulkan_50_vs.vcs CRC:00db7af8e5 size:1996
shaders/vfx/solidcolor.ini CRC:0000000000 size:0
shaders/vfx/solidcolor_vulkan_50_features.vcs CRC:000d8add19 size:2354
shaders/vfx/solidcolor_vulkan_50_ps.vcs CRC:005897b7c9 size:3678
shaders/vfx/solidcolor_vulkan_50_vs.vcs CRC:00bdeb7d83 size:6716
shaders/vfx/spritecard.ini CRC:0000000000 size:0
-shaders/vfx/spritecard_vulkan_50_features.vcs CRC:00204379dd size:3506
-shaders/vfx/spritecard_vulkan_50_ps.vcs CRC:0057bdbe59 size:5797501
-shaders/vfx/spritecard_vulkan_50_vs.vcs CRC:00201c5139 size:2676898
+shaders/vfx/spritecard_vulkan_50_features.vcs CRC:0077f06edf size:3506
+shaders/vfx/spritecard_vulkan_50_ps.vcs CRC:0098c5fa31 size:5794368
+shaders/vfx/spritecard_vulkan_50_vs.vcs CRC:0038f47bcf size:2675839
shaders/vfx/tools_solid.ini CRC:0000000000 size:0
-shaders/vfx/tools_solid_vulkan_50_features.vcs CRC:00fd9702fa size:1874
-shaders/vfx/tools_solid_vulkan_50_ps.vcs CRC:0009d8c9b6 size:3843
-shaders/vfx/tools_solid_vulkan_50_vs.vcs CRC:0057e9726b size:3736
+shaders/vfx/tools_solid_vulkan_50_features.vcs CRC:00aa1bc0ce size:1874
+shaders/vfx/tools_solid_vulkan_50_ps.vcs CRC:008c90504f size:3843
+shaders/vfx/tools_solid_vulkan_50_vs.vcs CRC:00c5b7b866 size:3736
shaders/vfx/tools_wireframe.ini CRC:0000000000 size:0
-shaders/vfx/tools_wireframe_vulkan_50_features.vcs CRC:00d0ea8792 size:2258
-shaders/vfx/tools_wireframe_vulkan_50_gs.vcs CRC:00677475ee size:4552
-shaders/vfx/tools_wireframe_vulkan_50_ps.vcs CRC:00849a87b2 size:6008
-shaders/vfx/tools_wireframe_vulkan_50_vs.vcs CRC:00db7e33ec size:13428
+shaders/vfx/tools_wireframe_vulkan_50_features.vcs CRC:004a52f9ab size:2258
+shaders/vfx/tools_wireframe_vulkan_50_gs.vcs CRC:008797a26d size:4552
+shaders/vfx/tools_wireframe_vulkan_50_ps.vcs CRC:00c955fdcd size:6008
+shaders/vfx/tools_wireframe_vulkan_50_vs.vcs CRC:003a8733a8 size:13428
shaders/vfx/upsample.ini CRC:0000000000 size:0
shaders/vfx/upsample_vulkan_50_features.vcs CRC:007910fb4a size:1554
shaders/vfx/upsample_vulkan_50_ps.vcs CRC:0010a0e68d size:1887
game/csgo/shaders_vulkan_dir/shaders/vfx/bilateral_upsample.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -143,7 +143,7 @@ PS
float PerViewConstantBuffer_t_1_m1 : packoffset(c23.y);
};
- SamplerState g_sPointClamp : register(s18, space1);
+ SamplerState g_sPointClamp : register(s19, space1);
Texture2D<float4> g_tInputDepthHiRes : register(t32, space1);
Texture2D<float4> g_tInputTexture : register(t30, space1);
game/csgo/shaders_vulkan_dir/shaders/vfx/bloom_cs.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -89,7 +89,7 @@ CS
layout(set = 0) uniform _1146 _Globals_;
layout(set = 0, binding = 30) uniform texture2D g_tInputDownSample;
- layout(set = 0, binding = 15) uniform sampler g_sBilinearClamp;
+ layout(set = 0, binding = 16) uniform sampler g_sBilinearClamp;
layout(set = 0, binding = 158) uniform writeonly image2D g_tOutput;
void main()
game/csgo/shaders_vulkan_dir/shaders/vfx/cables.slang
modified • +162 / -151 • changes: 313
Show patch
@@ -453,7 +453,7 @@ PS
Texture2D g_tShadowDepthBufferDepth < Attribute("ShadowDepthBuffer"); SrgbRead(false); >;
Texture2D g_tSsao < Attribute("SSAOOcclusionFactor"); SrgbRead(false); >;
Texture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float3 g_vSelfIllumTintScaled < UiType(VectorText); Expression(pow(2,g_flSelfIllumBrightness).x*g_flSelfIllumScale.x*SrgbGammaToLinear(g_vSelfIllumTint.xyz)); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
float4 g_vShadingComplexity < Source(ShadingComplexity); UiType(VectorText); >;
@@ -530,12 +530,12 @@ PS
#endif
#extension GL_KHR_shader_subgroup_arithmetic : require
- struct _1948
+ struct _2200
{
vec4 _m0[3];
};
- struct _2158
+ struct _2410
{
vec4 _m0[4];
};
@@ -551,12 +551,12 @@ PS
vec4 _m6;
};
- struct _2685
+ struct _587
{
_1677 _m0[128];
};
- struct _1058
+ struct _2174
{
mat4 _m0[4];
};
@@ -623,15 +623,15 @@ PS
layout(set = 1) uniform _2806 PerViewConstantBufferCsgo_t;
- struct _1398
+ struct _678
{
vec4 _m0;
vec4 _m1;
vec4 _m2;
vec4 _m3;
vec4 _m4;
- _1948 _m5;
- _2158 _m6;
+ _2200 _m5;
+ _2410 _m6;
vec4 _m7;
vec4 _m8;
vec4 _m9;
@@ -640,7 +640,7 @@ PS
uvec4 _m12;
vec4 _m13;
vec4 _m14;
- _2685 _m15;
+ _587 _m15;
vec4 _m16;
vec4 _m17;
int _m18;
@@ -650,11 +650,11 @@ PS
float _m22;
float _m23;
float _m24;
- _1058 _m25;
- _2158 _m26;
+ _2174 _m25;
+ _2410 _m26;
};
- layout(set = 3) uniform _1398 PerViewLightingConstantBufferGpu_t;
+ layout(set = 3) uniform _678 PerViewLightingConstantBufferGpu_t;
struct _1194
{
@@ -677,23 +677,23 @@ PS
} g_BarnLights_1;
layout(set = 1, binding = 43) uniform texture2D g_tColor;
- layout(set = 1, binding = 20) uniform sampler g_sUserConfigAllowGlobalMipBias;
+ layout(set = 1, binding = 21) uniform sampler g_sUserConfigAllowGlobalMipBias;
layout(set = 1, binding = 54) uniform texture2D g_tAmbientOcclusion;
- layout(set = 1, binding = 19) uniform sampler g_sUserConfig;
+ layout(set = 1, binding = 20) uniform sampler g_sUserConfig;
layout(set = 1, binding = 52) uniform texture2D g_tNormal;
layout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;
- layout(set = 1, binding = 22) uniform sampler g_sCookieSampler;
+ layout(set = 1, binding = 23) uniform sampler g_sCookieSampler;
layout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;
- layout(set = 1, binding = 18) uniform sampler g_sPointClamp;
+ layout(set = 1, binding = 19) uniform sampler g_sPointClamp;
layout(set = 1, binding = 39) uniform texture2D g_tSsao;
- layout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
+ layout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
layout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;
layout(set = 1, binding = 50) uniform texture2D g_tParticleShadowBuffer;
- layout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;
- layout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;
+ layout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;
+ layout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;
layout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;
layout(set = 1, binding = 40) uniform textureCubeArray g_tEnvironmentMap;
- layout(set = 1, binding = 15) uniform sampler g_sBilinearClamp;
+ layout(set = 1, binding = 16) uniform sampler g_sBilinearClamp;
layout(set = 1, binding = 35) uniform texture2DArray g_tBRDFLookup;
layout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;
@@ -804,162 +804,173 @@ PS
{
_21711 = _21710;
}
- float _21712;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735);
+ float _12320;
SPIRV_CROSS_BRANCH
- if (PerViewLightingConstantBufferGpu_t._m18 != 0)
+ if (_8634 > 0.0)
{
- int _23989;
- int _10191;
- float _13136;
- vec3 _14975;
- int _13039 = 0;
- for (;;)
- {
- if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))
- {
- _13136 = 1.0;
- _14975 = vec3(0.0);
- _10191 = -1;
- break;
- }
- vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])
- {
- vec3 _19470 = vec3(_12779, _18322.yz);
- vec2 _24804 = _19470.xy;
- vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));
- vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;
- vec3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13136 = saturate(_22193.x * _22193.y);
- _14975 = _20488;
- _10191 = _13039;
- break;
- }
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
+ float _12504;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m18 != 0)
{
- vec2 _7045;
- vec2 _7046;
- vec2 _7735;
- float _8969;
- float _8970;
- float _15996;
- float _17299;
- vec2 _18870;
- vec4 _20581;
- vec4 _22023;
- float _23727;
- do
+ int _23989;
+ int _10191;
+ float _13136;
+ vec3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);
- _20581 = PerViewLightingConstantBufferGpu_t._m0;
- _22023 = PerViewLightingConstantBufferGpu_t._m1;
- _17299 = PerViewLightingConstantBufferGpu_t._m2.z;
- _15996 = PerViewLightingConstantBufferGpu_t._m3.z;
- _18870 = vec2(_17299, _15996);
- _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
- _7045 = vec2(_8969, _15996);
- _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
- _7046 = vec2(_17299, _8970);
- _7735 = vec2(_8969, _8970);
- float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));
- bool _12885;
- if (_15310 == 0.0)
- {
- _12885 = true;
- }
- else
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))
{
- _12885 = _15310 == 1.0;
+ _13136 = 1.0;
+ _14975 = vec3(0.0);
+ _10191 = -1;
+ break;
}
- if (_12885)
+ vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])
{
- _23727 = _15310;
+ vec3 _19470 = vec3(_12779, _18322.yz);
+ vec2 _24804 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));
+ vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;
+ vec3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13136 = saturate(_22193.x * _22193.y);
+ _14975 = _20488;
+ _10191 = _13039;
break;
}
- _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22023.y);
- break;
- } while(false);
- float _12502;
- SPIRV_CROSS_BRANCH
- if (_13136 < 1.0)
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
+ }
+ float _19363;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))
+ vec2 _7045;
+ vec2 _7046;
+ vec2 _7735;
+ float _8969;
+ float _8970;
+ float _15996;
+ float _17299;
+ vec2 _18870;
+ vec4 _20581;
+ vec4 _22023;
+ float _23727;
+ do
{
- int _15335 = _10191 + 1;
- vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];
- vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;
- vec3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- float _12501;
- do
+ float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);
+ _20581 = PerViewLightingConstantBufferGpu_t._m0;
+ _22023 = PerViewLightingConstantBufferGpu_t._m1;
+ _17299 = PerViewLightingConstantBufferGpu_t._m2.z;
+ _15996 = PerViewLightingConstantBufferGpu_t._m3.z;
+ _18870 = vec2(_17299, _15996);
+ _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
+ _7045 = vec2(_8969, _15996);
+ _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
+ _7046 = vec2(_17299, _8970);
+ _7735 = vec2(_8969, _8970);
+ float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));
+ bool _12885;
+ if (_15310 == 0.0)
{
- float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);
- float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));
- bool _12886;
- if (_15311 == 0.0)
- {
- _12886 = true;
- }
- else
- {
- _12886 = _15311 == 1.0;
- }
- if (_12886)
+ _12885 = true;
+ }
+ else
+ {
+ _12885 = _15310 == 1.0;
+ }
+ if (_12885)
+ {
+ _23727 = _15310;
+ break;
+ }
+ _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22023.y);
+ break;
+ } while(false);
+ float _12502;
+ SPIRV_CROSS_BRANCH
+ if (_13136 < 1.0)
+ {
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];
+ vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;
+ vec3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ float _12501;
+ do
{
- _12501 = _15311;
+ float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);
+ float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));
+ bool _12886;
+ if (_15311 == 0.0)
+ {
+ _12886 = true;
+ }
+ else
+ {
+ _12886 = _15311 == 1.0;
+ }
+ if (_12886)
+ {
+ _12501 = _15311;
+ break;
+ }
+ _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22023.y);
break;
- }
- _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22023.y);
- break;
- } while(false);
- _7934 = _12501;
+ } while(false);
+ _7934 = _12501;
+ }
+ else
+ {
+ _7934 = 1.0;
+ }
+ _12502 = mix(_7934, _23727, _13136);
}
else
{
- _7934 = 1.0;
+ _12502 = _23727;
}
- _12502 = mix(_7934, _23727, _13136);
+ _19363 = _12502;
}
else
{
- _12502 = _23727;
+ _19363 = 1.0;
}
- _19363 = _12502;
- }
- else
- {
- _19363 = 1.0;
- }
- float _13279 = mix(_19363, 1.0, saturate((distance(_7639.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));
- float _12503;
- if (_24465.y)
- {
- _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ float _13279 = mix(_19363, 1.0, saturate((distance(_7639.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));
+ float _12503;
+ if (_24465.y)
+ {
+ _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12503 = _13279;
+ }
+ _12504 = _12503;
}
else
{
- _12503 = _13279;
+ _12504 = 1.0;
}
- _21712 = _12503;
+ _12320 = _12504;
}
else
{
- _21712 = 1.0;
+ _12320 = 1.0;
}
vec3 _9716;
vec3 _24878;
SPIRV_CROSS_BRANCH
- if ((dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735) * _21712) > 0.0)
+ if ((_8634 * _12320) > 0.0)
{
float _11797 = max(0.0, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));
vec2 _9840 = max(_11004, vec2(PerViewLightingConstantBufferGpu_t._m16.w));
@@ -974,7 +985,7 @@ PS
float _16150 = _9850 + 1.0;
float _6835 = (_16150 * _16150) * 0.125;
float _19569 = 1.0 - _6835;
- vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _21712).xyz;
+ vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _12320).xyz;
_9716 = PerViewLightingConstantBufferGpu_t._m9.xyz + (vec3(_11797).xyz * _16808);
_24878 = (((_22995 + ((vec3(1.0) - _22995) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * ((_24198 * _24198) / ((4.0 * ((_11797 * _19569) + _6835)) * ((max(0.0, dot(_19012, _21889)) * _19569) + _6835)))).xyz * _11797).xyz * _16808;
}
@@ -1175,7 +1186,7 @@ PS
}
else
{
- vec3 _12504;
+ vec3 _12505;
if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)
{
vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);
@@ -1191,7 +1202,7 @@ PS
vec3 _20491 = _14081;
_20491.x = _20564.x;
_20491.y = _20564.y;
- _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;
+ _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;
}
else
{
@@ -1200,9 +1211,9 @@ PS
vec3 _20490 = _13791;
_20490.x = _20563.x;
_20490.y = _20563.y;
- _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;
+ _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;
}
- _21548 = _12504;
+ _21548 = _12505;
}
if (all(equal(_21548.xyz, vec3(0.0))))
{
@@ -1230,8 +1241,8 @@ PS
do
{
float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);
- vec2 _14615 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;
- float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));
+ vec2 _14616 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;
+ float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));
bool _12888;
if (_15312 == 0.0)
{
@@ -1246,7 +1257,7 @@ PS
_24972 = _15312;
break;
}
- _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14615, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
+ _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14616, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
break;
} while(false);
vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12608]._m12);
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_beachfoam.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -229,7 +229,7 @@ PS
};
Texture2D<float4> g_tColor : register(t51, space1);
- SamplerState g_sUserConfigAllowGlobalMipBias : register(s20, space1);
+ SamplerState g_sUserConfigAllowGlobalMipBias : register(s21, space1);
static float4 input_2;
static float4 output_0;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_black_unlit.slang
modified • +2 / -2 • changes: 4
Show patch
@@ -228,7 +228,7 @@ PS
[[layer_constant]] ExternalDescriptorSet g_lightBinnerGpuSet < Source(ExternalDescSet); Attribute("g_lightBinnerGpuSet"); >;
int g_nToolsVisMode < Attribute("g_nToolsVisMode"); UiType(Slider); >;
TextureCube g_tFogCubeTexture < Attribute("CubemapFogTexture"); SrgbRead(true); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
// Fog
@@ -262,7 +262,7 @@ PS
};
TextureCube<float4> g_tFogCubeTexture : register(t42, space1);
- SamplerState g_sTrilinearClamp : register(s17, space1);
+ SamplerState g_sTrilinearClamp : register(s18, space1);
static float3 input_0;
static float4 output_0;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_character.slang
modified • +652 / -458 • changes: 1110
No patch available (GitHub often omits patches for large/binary diffs).
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_complex.slang
modified • +110 / -99 • changes: 209
Show patch
@@ -426,7 +426,7 @@ PS
Texture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;
Texture2D g_tTransmissiveColor < Channel(RGB, Box(TextureTransmissiveColor), Srgb); OutputFormat(BC7); SrgbRead(true); >;
float4 g_vDetailNormalStrengthOffsetScale < UiType(VectorText); Expression(float4(0,0,1-g_flDetailNormalStrength,g_flDetailNormalStrength)); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float3 g_vSelfIllumTintScaled < UiType(VectorText); Expression(pow(2,g_flSelfIllumBrightness).x*g_flSelfIllumScale.x*SrgbGammaToLinear(g_vSelfIllumTint.xyz)); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
@@ -513,17 +513,17 @@ PS
// Source 2 Viewer - https://valveresourceformat.github.io
// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup
- struct _2872
+ struct _113
{
float4 _m0[3];
};
- struct _71
+ struct _323
{
float4 _m0[4];
};
- struct _2139
+ struct _244
{
column_major float4x4 _m0[4];
};
@@ -562,20 +562,20 @@ PS
cbuffer _Globals_ : register(b0, space1)
{
uint _Globals_1_g_tColor : packoffset(c0);
- uint _Globals_1_g_sTrilinearWrap : packoffset(c3.w);
- uint _Globals_1_g_sTrilinearClamp : packoffset(c4);
- uint _Globals_1_g_sPointClamp : packoffset(c4.y);
- uint _Globals_1_g_sUserConfig : packoffset(c5);
- uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c5.y);
- uint _Globals_1_g_sCookieSampler : packoffset(c5.w);
- uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c6);
- int _Globals_1_g_bFogEnabled : packoffset(c6.z);
- int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c6.w);
- int _Globals_1_g_bRenderBackfaceNormals : packoffset(c7);
- float _Globals_1_g_flReflectance : packoffset(c7.y);
- uint _Globals_1_g_tNormal : packoffset(c11);
- uint _Globals_1_g_tAmbientOcclusion : packoffset(c11.w);
- float _Globals_1_g_flMetalness : packoffset(c12);
+ uint _Globals_1_g_sTrilinearWrap : packoffset(c4);
+ uint _Globals_1_g_sTrilinearClamp : packoffset(c4.y);
+ uint _Globals_1_g_sPointClamp : packoffset(c4.z);
+ uint _Globals_1_g_sUserConfig : packoffset(c5.y);
+ uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c5.z);
+ uint _Globals_1_g_sCookieSampler : packoffset(c6);
+ uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c6.y);
+ int _Globals_1_g_bFogEnabled : packoffset(c6.w);
+ int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c7);
+ int _Globals_1_g_bRenderBackfaceNormals : packoffset(c7.y);
+ float _Globals_1_g_flReflectance : packoffset(c7.z);
+ uint _Globals_1_g_tNormal : packoffset(c11.y);
+ uint _Globals_1_g_tAmbientOcclusion : packoffset(c12);
+ float _Globals_1_g_flMetalness : packoffset(c12.y);
};
cbuffer PerViewConstantBufferCsgo_t : register(b3, space1)
@@ -605,8 +605,8 @@ PS
cbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)
{
- _2872 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);
- _71 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);
+ _113 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);
+ _323 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);
float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c16);
float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c17);
float4 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c18);
@@ -623,8 +623,8 @@ PS
float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.y);
float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.z);
float PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1955.w);
- _2139 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);
- _71 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);
+ _244 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);
+ _323 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);
uint PerViewLightingConstantBufferGpu_t_1_m20 : packoffset(c1996);
uint PerViewLightingConstantBufferGpu_t_1_m21 : packoffset(c1996.y);
};
@@ -810,99 +810,110 @@ PS
{
_21710 = 1.0f;
}
- float _21711;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735);
+ float _12320;
[branch]
- if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)
+ if (_8634 > 0.0f)
{
- int _23989;
- int _10191;
- float _13136;
- float3 _14975;
- int _13039 = 0;
- for (;;)
+ float _12503;
+ [branch]
+ if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)
{
- if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))
- {
- _13136 = 1.0f;
- _14975 = 0.0f.xxx;
- _10191 = -1;
- break;
- }
- float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_0.xyz, 1.0f));
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])
+ int _23989;
+ int _10191;
+ float _13136;
+ float3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- float3 _19470 = float3(_12779, _18322.yz);
- float2 _24804 = _19470.xy;
- float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);
- float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;
- float3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13136 = saturate(_22193.x * _22193.y);
- _14975 = _20488;
- _10191 = _13039;
- break;
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))
+ {
+ _13136 = 1.0f;
+ _14975 = 0.0f.xxx;
+ _10191 = -1;
+ break;
+ }
+ float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_0.xyz, 1.0f));
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])
+ {
+ float3 _19470 = float3(_12779, _18322.yz);
+ float2 _24804 = _19470.xy;
+ float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);
+ float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;
+ float3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13136 = saturate(_22193.x * _22193.y);
+ _14975 = _20488;
+ _10191 = _13039;
+ break;
+ }
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
}
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
- {
- float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12));
- float _12501;
- [branch]
- if (_13136 < 1.0f)
+ float _19363;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))
+ float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12));
+ float _12501;
+ [branch]
+ if (_13136 < 1.0f)
{
- int _15335 = _10191 + 1;
- float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_0.xyz, 1.0f));
- float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;
- float3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12));
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))
+ {
+ int _15335 = _10191 + 1;
+ float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_0.xyz, 1.0f));
+ float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;
+ float3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12));
+ }
+ else
+ {
+ _7934 = 1.0f;
+ }
+ _12501 = lerp(_7934, _18270, _13136);
}
else
{
- _7934 = 1.0f;
+ _12501 = _18270;
}
- _12501 = lerp(_7934, _18270, _13136);
+ _19363 = _12501;
}
else
{
- _12501 = _18270;
+ _19363 = 1.0f;
}
- _19363 = _12501;
- }
- else
- {
- _19363 = 1.0f;
- }
- float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));
- float _12502;
- if (_24465.y)
- {
- _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);
+ float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));
+ float _12502;
+ if (_24465.y)
+ {
+ _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);
+ }
+ else
+ {
+ _12502 = _13279;
+ }
+ _12503 = _12502;
}
else
{
- _12502 = _13279;
+ _12503 = 1.0f;
}
- _21711 = _12502;
+ _12320 = _12503;
}
else
{
- _21711 = 1.0f;
+ _12320 = 1.0f;
}
float3 _9716;
float3 _24878;
[branch]
- if ((dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735) * _21711) > 0.0f)
+ if ((_8634 * _12320) > 0.0f)
{
bool3 _19899 = all(bool3(_17892.x == 1.0f.xxx.x, _17892.y == 1.0f.xxx.y, _17892.z == 1.0f.xxx.z)).xxx;
float _11797 = max(0.0f, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t_1_m9.xyz));
@@ -914,7 +925,7 @@ PS
float _25211 = _9850 * _9850;
float _19095 = _25211 * _25211;
float _15346 = ((_12386 * _12386) * (_19095 - 1.0f)) + 1.0f;
- float3 _16808 = (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _21711).xyz;
+ float3 _16808 = (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _12320).xyz;
_9716 = ((_12351.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0f) + 2.0f)))).xyz * _11797).xyz * _16808;
_24878 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (_11797.xxx.xyz * _16808);
}
@@ -1117,7 +1128,7 @@ PS
}
else
{
- float3 _12503;
+ float3 _12504;
if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)
{
float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);
@@ -1133,7 +1144,7 @@ PS
float3 _20492 = _14081;
_20492.x = _20564.x;
_20492.y = _20564.y;
- _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20492.xyz, 0.0f).xyz;
+ _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20492.xyz, 0.0f).xyz;
}
else
{
@@ -1142,9 +1153,9 @@ PS
float3 _20491 = _13791;
_20491.x = _20563.x;
_20491.y = _20563.y;
- _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20491.xyz, 0.0f).xyz;
+ _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20491.xyz, 0.0f).xyz;
}
- _21548 = _12503;
+ _21548 = _12504;
}
if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))
{
@@ -1190,9 +1201,9 @@ PS
float _19211 = max(0.0f, dot(_11179.xyz, _12282));
float _9851 = _9841.x;
float _25212 = _9851 * _9851;
- float _19097 = _25212 * _25212;
- float _15348 = ((_12387 * _12387) * (_19097 - 1.0f)) + 1.0f;
- _13212 = _13138.xyz + (((_12351.xyz * (_19097 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0f) + 2.0f)))).xyz * _11798).xyz * _22671.xyz);
+ float _19096 = _25212 * _25212;
+ float _15348 = ((_12387 * _12387) * (_19096 - 1.0f)) + 1.0f;
+ _13212 = _13138.xyz + (((_12351.xyz * (_19096 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0f) + 2.0f)))).xyz * _11798).xyz * _22671.xyz);
_15670 = _16325.xyz + (_11798.xxx.xyz * _22671.xyz);
break;
} while(false);
@@ -1827,8 +1838,8 @@ RTX
void main()
{
uint _452 = g_instanceBuffer._member0[uint(gl_InstanceID)].nMaterialData;
- uint _497 = g_MaterialData_1._member0[(_452 + 28u) / 4u];
- uint _496 = g_MaterialData_1._member0[(_452 + 32u) / 4u];
+ uint _497 = g_MaterialData_1._member0[(_452 + 32u) / 4u];
+ uint _496 = g_MaterialData_1._member0[(_452 + 36u) / 4u];
vec4 _495 = vec4(g_MaterialData_3._member0[(_452 + 144u) / 4u], g_MaterialData_3._member0[(_452 + 148u) / 4u], g_MaterialData_3._member0[(_452 + 152u) / 4u], g_MaterialData_3._member0[(_452 + 156u) / 4u]);
vec4 _494 = vec4(g_MaterialData_3._member0[(_452 + 160u) / 4u], g_MaterialData_3._member0[(_452 + 164u) / 4u], g_MaterialData_3._member0[(_452 + 168u) / 4u], g_MaterialData_3._member0[(_452 + 172u) / 4u]);
vec2 _493 = vec2(g_MaterialData_3._member0[(_452 + 176u) / 4u], g_MaterialData_3._member0[(_452 + 180u) / 4u]);
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_customglove.slang
modified • +25 / -25 • changes: 50
Show patch
@@ -349,7 +349,7 @@ PS
CreateInputTexture2D(TextureGrime1, Srgb, 8, "", "_color", "Material1/Grime,6/1", Default4(0.5, 0.5, 0.5, 0));
CreateInputTexture2D(TextureSubstrateAlbedo1, Srgb, 8, "", "_color", "Material1/Substrate Layer,2/1", Default4(1, 1, 1, 0));
CreateInputTexture2D(TextureSurfaceAlbedo1, Srgb, 8, "", "_color", "Material1/Surface Layer,1/1", Default4(1, 1, 1, 0));
- float2 g_vDamageLevels1 < Default(0); UiType(VectorText); UiGroup("Material1,1/Detail Damage/1"); >;
+ float2 g_vDamageLevels1 < Default2(0, 1); UiType(VectorText); UiGroup("Material1,1/Detail Damage/1"); >;
CreateInputTexture2D(TextureSubstrateTintMask1, Linear, 8, "", "_tintmask", "Material1/Substrate Layer/2", Default4(1, 1, 1, 0));
CreateInputTexture2D(TextureSurfaceTintMask1, Linear, 8, "", "_tintmask", "Material1/Surface Layer/2", Default4(1, 1, 1, 0));
float g_fCurvaturePower1 < Default(1); Range(0.5, 6); UiType(Slider); UiGroup("Material1/Detail Damage/2"); >;
@@ -373,16 +373,16 @@ PS
CreateInputTexture2D(TextureDetailNormal1, Linear, 8, "", "_detailnormal", "Material1/Normal/10", Default4(0.5, 0.5, 0.5, 0.5));
CreateInputTexture2D(TextureGrunge1, Linear, 8, "", "_grunge", "Material1/Grunge/10", Default4(0.5, 0.5, 0.5, 0.5));
float g_fDamageMetalness1 < UiType(Slider); UiGroup("Material1/Detail Damage/10"); >;
- float2 g_vSurfaceGrimeMinMax1 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material1/Grime/10"); >;
+ float2 g_vSurfaceGrimeMinMax1 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material1/Grime/10"); >;
CreateInputTexture2D(TextureDamageNormal1, Linear, 8, "", "_damagenormal", "Material1/Normal/11", Default4(0.5, 0.5, 0.5, 0.5));
float g_fDamageCloth1 < UiType(Slider); UiGroup("Material1/Detail Damage/11"); UiVisibility(F_CLOTH_SHADING); >;
float g_fDamageHeightBlendSoftness1 < Default(0.01); UiType(Slider); UiGroup("Material1/Damage Height/11"); Expression(max(this,.001)); >;
float g_fDetailGrunge1 < Range(0, 2); UiType(Slider); UiGroup("Material1/Grunge/11"); >;
float g_fDetailScale1 < Default(4); Range(-10, 10); UiType(Slider); UiGroup("Material1/Detail/11"); >;
- float2 g_vSubstrateGrimeMinMax1 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material1/Grime/11"); >;
+ float2 g_vSubstrateGrimeMinMax1 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material1/Grime/11"); >;
float g_fDetailNormalContrast1 < Default(1); Range(0, 8); UiType(Slider); UiGroup("Material1/Normal/12"); >;
float g_fDetailRoughnessContrast1 < Range(-1, 1); UiType(Slider); UiGroup("Material1/Detail/12"); >;
- float2 g_vDamageMinMax1 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material1/Damage Height/12"); >;
+ float2 g_vDamageMinMax1 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material1/Damage Height/12"); >;
float g_fDetailRoughnessBrightness1 < Default(1); Range(0, 10); UiType(Slider); UiGroup("Material1/Detail/13"); >;
float g_fWearBleaching1 < Default(0.25); Range(0, 3); UiType(Slider); UiGroup("Material1/Wear Edge/13"); >;
float g_fDetailAnisotropyScalar1 < Range(-1, 1); UiType(Slider); UiGroup("Material1/Detail/14"); >;
@@ -429,12 +429,12 @@ PS
CreateInputTexture2D(TextureSubstrateMetalness1, Srgb, 8, "", "_metal", "Material1/Substrate Layer/40", Default4(0, 0, 0, 0));
CreateInputTexture2D(TextureSurfaceMetalness1, Linear, 8, "", "_metal", "Material1/Surface Layer/40", Default4(0, 0, 0, 0));
float g_fDamageBevelRoughnessBrightness1 < Default(1); Range(0, 2); UiType(Slider); UiGroup("Material1/Damage Bevel/40"); >;
- float2 g_vSurfaceBurnishingMinMax1 < Default(0); UiType(VectorText); UiGroup("Material1/Burnishing/40"); >;
+ float2 g_vSurfaceBurnishingMinMax1 < Default2(0, 1); UiType(VectorText); UiGroup("Material1/Burnishing/40"); >;
CreateInputTexture2D(TextureSubstrateClothMask1, Srgb, 8, "", "_mask", "Material1/Substrate Layer/41", "materials/default/default_black_mask.tga");
CreateInputTexture2D(TextureSurfaceClothMask1, Linear, 8, "", "_mask", "Material1/Surface Layer/41", "materials/default/default_black_mask.tga");
float g_fDamageBevelAnisotropy1 < UiType(Slider); UiGroup("Material1/Damage Bevel/41"); >;
float g_fDamageNormalEdgeWidth1 < Default(1); Range(0, 8); UiType(Slider); UiGroup("Material1,1/Wear Edge/41"); >;
- float2 g_vSubstrateBurnishingMinMax1 < Default(0); UiType(VectorText); UiGroup("Material1/Burnishing/41"); >;
+ float2 g_vSubstrateBurnishingMinMax1 < Default2(0, 1); UiType(VectorText); UiGroup("Material1/Burnishing/41"); >;
float g_fDamageEdgeRoughness1 < Default(0.8); UiType(Slider); UiGroup("Material1/Wear Edge/42"); >;
float g_fDamageEdgeMetalness1 < UiType(Slider); UiGroup("Material1/Wear Edge/43"); >;
float g_fDamageBevelMetalness1 < UiType(Slider); UiGroup("Material1/Damage Bevel/50"); >;
@@ -447,7 +447,7 @@ PS
CreateInputTexture2D(TextureGrime2, Srgb, 8, "", "_color", "Material2/Grime,6/1", Default4(0.5, 0.5, 0.5, 0));
CreateInputTexture2D(TextureSubstrateAlbedo2, Srgb, 8, "", "_color", "Material2/Substrate Layer,2/1", Default4(1, 1, 1, 0));
CreateInputTexture2D(TextureSurfaceAlbedo2, Srgb, 8, "", "_color", "Material2/Surface Layer,1/1", Default4(1, 1, 1, 0));
- float2 g_vDamageLevels2 < Default(0); UiType(VectorText); UiGroup("Material2/Detail Damage/1"); >;
+ float2 g_vDamageLevels2 < Default2(0, 1); UiType(VectorText); UiGroup("Material2/Detail Damage/1"); >;
CreateInputTexture2D(TextureSubstrateTintMask2, Linear, 8, "", "_tintmask", "Material2/Substrate Layer/2", Default4(1, 1, 1, 0));
CreateInputTexture2D(TextureSurfaceTintMask2, Linear, 8, "", "_tintmask", "Material2/Surface Layer/2", Default4(1, 1, 1, 0));
float g_fCurvaturePower2 < Default(1); Range(0.5, 6); UiType(Slider); UiGroup("Material2/Detail Damage/2"); >;
@@ -471,16 +471,16 @@ PS
CreateInputTexture2D(TextureDetailNormal2, Linear, 8, "", "_detailnormal", "Material2/Normal/10", Default4(0.5, 0.5, 0.5, 0.5));
CreateInputTexture2D(TextureGrunge2, Linear, 8, "", "_grunge", "Material2/Grunge/10", Default4(0.5, 0.5, 0.5, 0.5));
float g_fDamageMetalness2 < UiType(Slider); UiGroup("Material2/Detail Damage/10"); >;
- float2 g_vSurfaceGrimeMinMax2 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material2/Grime/10"); >;
+ float2 g_vSurfaceGrimeMinMax2 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material2/Grime/10"); >;
CreateInputTexture2D(TextureDamageNormal2, Linear, 8, "", "_damagenormal", "Material2/Normal/11", Default4(0.5, 0.5, 0.5, 0.5));
float g_fDamageCloth2 < UiType(Slider); UiGroup("Material2/Detail Damage/11"); UiVisibility(F_CLOTH_SHADING); >;
float g_fDamageHeightBlendSoftness2 < Default(0.01); UiType(Slider); UiGroup("Material2/Damage Height/11"); Expression(max(this,.001)); >;
float g_fDetailGrunge2 < Range(0, 2); UiType(Slider); UiGroup("Material2/Grunge/11"); >;
float g_fDetailScale2 < Default(4); Range(-10, 10); UiType(Slider); UiGroup("Material2/Detail/11"); >;
- float2 g_vSubstrateGrimeMinMax2 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material2/Grime/11"); >;
+ float2 g_vSubstrateGrimeMinMax2 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material2/Grime/11"); >;
float g_fDetailNormalContrast2 < Default(1); Range(0, 8); UiType(Slider); UiGroup("Material2/Normal/12"); >;
float g_fDetailRoughnessContrast2 < Range(-1, 1); UiType(Slider); UiGroup("Material2/Detail/12"); >;
- float2 g_vDamageMinMax2 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material2/Damage Height/12"); >;
+ float2 g_vDamageMinMax2 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material2/Damage Height/12"); >;
float g_fDetailRoughnessBrightness2 < Default(1); Range(0, 10); UiType(Slider); UiGroup("Material2/Detail/13"); >;
float g_fWearBleaching2 < Default(0.25); Range(0, 3); UiType(Slider); UiGroup("Material2/Grunge/13"); >;
float g_fDetailAnisotropyScalar2 < Range(-1, 1); UiType(Slider); UiGroup("Material2/Detail/14"); >;
@@ -521,11 +521,11 @@ PS
CreateInputTexture2D(TextureSubstrateMetalness2, Srgb, 8, "", "_metal", "Material2/Substrate Layer/40", Default4(0, 0, 0, 0));
CreateInputTexture2D(TextureSurfaceMetalness2, Linear, 8, "", "_metal", "Material2/Surface Layer/40", Default4(0, 0, 0, 0));
float g_fDamageBevelRoughnessBrightness2 < Default(1); Range(0, 2); UiType(Slider); UiGroup("Material2/Damage Bevel/40"); >;
- float2 g_vSurfaceBurnishingMinMax2 < Default(0); UiType(VectorText); UiGroup("Material2/Burnishing/40"); >;
+ float2 g_vSurfaceBurnishingMinMax2 < Default2(0, 1); UiType(VectorText); UiGroup("Material2/Burnishing/40"); >;
CreateInputTexture2D(TextureSubstrateClothMask2, Srgb, 8, "", "_mask", "Material2/Substrate Layer/41", "materials/default/default_black_mask.tga");
CreateInputTexture2D(TextureSurfaceClothMask2, Linear, 8, "", "_mask", "Material2/Surface Layer/41", "materials/default/default_black_mask.tga");
float g_fDamageBevelAnisotropy2 < UiType(Slider); UiGroup("Material2/Damage Bevel/41"); >;
- float2 g_vSubstrateBurnishingMinMax2 < Default(0); UiType(VectorText); UiGroup("Material2/Burnishing/41"); >;
+ float2 g_vSubstrateBurnishingMinMax2 < Default2(0, 1); UiType(VectorText); UiGroup("Material2/Burnishing/41"); >;
float g_fDamageBevelMetalness2 < UiType(Slider); UiGroup("Material2/Damage Bevel/50"); >;
float g_fDamageBevelCloth2 < UiType(Slider); UiGroup("Material2/Damage Bevel/60"); >;
bool g_bDamageBevelBlendToSubstrate2 < UiType(CheckBox); UiGroup("Material2/Damage Bevel/80"); >;
@@ -536,7 +536,7 @@ PS
CreateInputTexture2D(TextureGrime3, Srgb, 8, "", "_color", "Material3/Grime,6/1", Default4(0.5, 0.5, 0.5, 0));
CreateInputTexture2D(TextureSubstrateAlbedo3, Srgb, 8, "", "_color", "Material3/Substrate Layer,2/1", Default4(1, 1, 1, 0));
CreateInputTexture2D(TextureSurfaceAlbedo3, Srgb, 8, "", "_color", "Material3/Surface Layer,1/1", Default4(1, 1, 1, 0));
- float2 g_vDamageLevels3 < Default(0); UiType(VectorText); UiGroup("Material3/Detail Damage/1"); >;
+ float2 g_vDamageLevels3 < Default2(0, 1); UiType(VectorText); UiGroup("Material3/Detail Damage/1"); >;
CreateInputTexture2D(TextureSubstrateTintMask3, Linear, 8, "", "_tintmask", "Material3/Substrate Layer/2", Default4(1, 1, 1, 0));
CreateInputTexture2D(TextureSurfaceTintMask3, Linear, 8, "", "_tintmask", "Material3/Surface Layer/2", Default4(1, 1, 1, 0));
float g_fCurvaturePower3 < Default(1); Range(0.5, 6); UiType(Slider); UiGroup("Material3/Detail Damage/2"); >;
@@ -560,16 +560,16 @@ PS
CreateInputTexture2D(TextureDetailNormal3, Linear, 8, "", "_detailnormal", "Material3/Normal/10", Default4(0.5, 0.5, 0.5, 0.5));
CreateInputTexture2D(TextureGrunge3, Linear, 8, "", "_grunge", "Material3/Grunge/10", Default4(0.5, 0.5, 0.5, 0.5));
float g_fDamageMetalness3 < UiType(Slider); UiGroup("Material3/Detail Damage/10"); >;
- float2 g_vSurfaceGrimeMinMax3 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material3/Grime/10"); >;
+ float2 g_vSurfaceGrimeMinMax3 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material3/Grime/10"); >;
CreateInputTexture2D(TextureDamageNormal3, Linear, 8, "", "_damagenormal", "Material3/Normal/11", Default4(0.5, 0.5, 0.5, 0.5));
float g_fDamageCloth3 < UiType(Slider); UiGroup("Material3/Detail Damage/11"); UiVisibility(F_CLOTH_SHADING); >;
float g_fDamageHeightBlendSoftness3 < Default(0.01); UiType(Slider); UiGroup("Material3/Damage Height/11"); Expression(max(this,.001)); >;
float g_fDetailGrunge3 < Range(0, 2); UiType(Slider); UiGroup("Material3/Grunge/11"); >;
float g_fDetailScale3 < Default(4); Range(-10, 10); UiType(Slider); UiGroup("Material3/Detail/11"); >;
- float2 g_vSubstrateGrimeMinMax3 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material3/Grime/11"); >;
+ float2 g_vSubstrateGrimeMinMax3 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material3/Grime/11"); >;
float g_fDetailNormalContrast3 < Default(1); Range(0, 8); UiType(Slider); UiGroup("Material3/Normal/12"); >;
float g_fDetailRoughnessContrast3 < Range(-1, 1); UiType(Slider); UiGroup("Material3/Detail/12"); >;
- float2 g_vDamageMinMax3 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material3/Damage Height/12"); >;
+ float2 g_vDamageMinMax3 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material3/Damage Height/12"); >;
float g_fDetailRoughnessBrightness3 < Default(1); Range(0, 10); UiType(Slider); UiGroup("Material3/Detail/13"); >;
float g_fWearBleaching3 < Default(0.25); Range(0, 3); UiType(Slider); UiGroup("Material3/Wear Edge/13"); >;
float g_fDetailAnisotropyScalar3 < Range(-1, 1); UiType(Slider); UiGroup("Material3/Detail/14"); >;
@@ -611,11 +611,11 @@ PS
CreateInputTexture2D(TextureSubstrateMetalness3, Srgb, 8, "", "_metal", "Material3/Substrate Layer/40", Default4(0, 0, 0, 0));
CreateInputTexture2D(TextureSurfaceMetalness3, Linear, 8, "", "_metal", "Material3/Surface Layer/40", Default4(0, 0, 0, 0));
float g_fDamageBevelRoughnessBrightness3 < Default(1); Range(0, 2); UiType(Slider); UiGroup("Material3/Damage Bevel/40"); >;
- float2 g_vSurfaceBurnishingMinMax3 < Default(0); UiType(VectorText); UiGroup("Material3/Burnishing/40"); >;
+ float2 g_vSurfaceBurnishingMinMax3 < Default2(0, 1); UiType(VectorText); UiGroup("Material3/Burnishing/40"); >;
CreateInputTexture2D(TextureSubstrateClothMask3, Srgb, 8, "", "_mask", "Material3/Substrate Layer/41", "materials/default/default_black_mask.tga");
CreateInputTexture2D(TextureSurfaceClothMask3, Linear, 8, "", "_mask", "Material3/Surface Layer/41", "materials/default/default_black_mask.tga");
float g_fDamageBevelAnisotropy3 < UiType(Slider); UiGroup("Material3/Damage Bevel/41"); >;
- float2 g_vSubstrateBurnishingMinMax3 < Default(0); UiType(VectorText); UiGroup("Material3/Burnishing/41"); >;
+ float2 g_vSubstrateBurnishingMinMax3 < Default2(0, 1); UiType(VectorText); UiGroup("Material3/Burnishing/41"); >;
float g_fDamageBevelMetalness3 < UiType(Slider); UiGroup("Material3/Damage Bevel/50"); >;
float g_fDamageBevelCloth3 < UiType(Slider); UiGroup("Material3/Damage Bevel/60"); >;
bool g_bDamageBevelBlendToSubstrate3 < UiType(CheckBox); UiGroup("Material3/Damage Bevel/80"); >;
@@ -626,7 +626,7 @@ PS
CreateInputTexture2D(TextureGrime4, Srgb, 8, "", "_color", "Material4/Grime,6/1", Default4(0.5, 0.5, 0.5, 0));
CreateInputTexture2D(TextureSubstrateAlbedo4, Srgb, 8, "", "_color", "Material4/Substrate Layer,2/1", Default4(1, 1, 1, 0));
CreateInputTexture2D(TextureSurfaceAlbedo4, Srgb, 8, "", "_color", "Material4/Surface Layer/1", Default4(1, 1, 1, 0));
- float2 g_vDamageLevels4 < Default(0); UiType(VectorText); UiGroup("Material4/Detail Damage/1"); >;
+ float2 g_vDamageLevels4 < Default2(0, 1); UiType(VectorText); UiGroup("Material4/Detail Damage/1"); >;
CreateInputTexture2D(TextureSubstrateTintMask4, Linear, 8, "", "_tintmask", "Material4/Substrate Layer/2", Default4(1, 1, 1, 0));
CreateInputTexture2D(TextureSurfaceTintMask4, Linear, 8, "", "_tintmask", "Material4/Surface Layer/2", Default4(1, 1, 1, 0));
float g_fCurvaturePower4 < Default(1); Range(0.5, 6); UiType(Slider); UiGroup("Material4/Detail Damage/2"); >;
@@ -650,16 +650,16 @@ PS
CreateInputTexture2D(TextureDetailNormal4, Linear, 8, "", "_detailnormal", "Material4/Normal/10", Default4(0.5, 0.5, 0.5, 0.5));
CreateInputTexture2D(TextureGrunge4, Linear, 8, "", "_grunge", "Material4/Grunge/10", Default4(0.5, 0.5, 0.5, 0.5));
float g_fDamageMetalness4 < UiType(Slider); UiGroup("Material4/Detail Damage/10"); >;
- float2 g_vSurfaceGrimeMinMax4 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material4/Grime/10"); >;
+ float2 g_vSurfaceGrimeMinMax4 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material4/Grime/10"); >;
CreateInputTexture2D(TextureDamageNormal4, Linear, 8, "", "_damagenormal", "Material4/Normal/11", Default4(0.5, 0.5, 0.5, 0.5));
float g_fDamageCloth4 < UiType(Slider); UiGroup("Material4/Detail Damage/11"); UiVisibility(F_CLOTH_SHADING); >;
float g_fDamageHeightBlendSoftness4 < Default(0.01); UiType(Slider); UiGroup("Material4/Damage Height/11"); Expression(max(this,.001)); >;
float g_fDetailGrunge4 < Range(0, 2); UiType(Slider); UiGroup("Material4/Grunge/11"); >;
float g_fDetailScale4 < Default(4); Range(-10, 10); UiType(Slider); UiGroup("Material4/Detail/11"); >;
- float2 g_vSubstrateGrimeMinMax4 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material4/Grime/11"); >;
+ float2 g_vSubstrateGrimeMinMax4 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material4/Grime/11"); >;
float g_fDetailNormalContrast4 < Default(1); Range(0, 8); UiType(Slider); UiGroup("Material4/Normal/12"); >;
float g_fDetailRoughnessContrast4 < Range(-1, 1); UiType(Slider); UiGroup("Material4/Detail/12"); >;
- float2 g_vDamageMinMax4 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material4/Damage Height/12"); >;
+ float2 g_vDamageMinMax4 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material4/Damage Height/12"); >;
float g_fDetailRoughnessBrightness4 < Default(1); Range(0, 10); UiType(Slider); UiGroup("Material4/Detail/13"); >;
float g_fWearBleaching4 < Default(0.25); Range(0, 3); UiType(Slider); UiGroup("Material4/Wear Edge/13"); >;
float g_fDetailAnisotropyScalar4 < Range(-1, 1); UiType(Slider); UiGroup("Material4/Detail/14"); >;
@@ -702,11 +702,11 @@ PS
CreateInputTexture2D(TextureSubstrateMetalness4, Srgb, 8, "", "_metal", "Material4/Substrate Layer/40", Default4(0, 0, 0, 0));
CreateInputTexture2D(TextureSurfaceMetalness4, Linear, 8, "", "_metal", "Material4/Surface Layer/40", Default4(0, 0, 0, 0));
float g_fDamageBevelRoughnessBrightness4 < Default(1); Range(0, 2); UiType(Slider); UiGroup("Material4/Damage Bevel/40"); >;
- float2 g_vSurfaceBurnishingMinMax4 < Default(0); UiType(VectorText); UiGroup("Material4/Burnishing/40"); >;
+ float2 g_vSurfaceBurnishingMinMax4 < Default2(0, 1); UiType(VectorText); UiGroup("Material4/Burnishing/40"); >;
CreateInputTexture2D(TextureSubstrateClothMask4, Srgb, 8, "", "_mask", "Material4/Substrate Layer/41", "materials/default/default_black_mask.tga");
CreateInputTexture2D(TextureSurfaceClothMask4, Linear, 8, "", "_mask", "Material4/Surface Layer/41", "materials/default/default_black_mask.tga");
float g_fDamageBevelAnisotropy4 < UiType(Slider); UiGroup("Material4/Damage Bevel/41"); >;
- float2 g_vSubstrateBurnishingMinMax4 < Default(0); UiType(VectorText); UiGroup("Material4/Burnishing/41"); >;
+ float2 g_vSubstrateBurnishingMinMax4 < Default2(0, 1); UiType(VectorText); UiGroup("Material4/Burnishing/41"); >;
float g_fDamageBevelMetalness4 < UiType(Slider); UiGroup("Material4/Damage Bevel/50"); >;
float g_fDamageBevelCloth4 < UiType(Slider); UiGroup("Material4/Damage Bevel/60"); >;
bool g_bDamageBevelBlendToSubstrate4 < UiType(CheckBox); UiGroup("Material4/Damage Bevel/80"); >;
@@ -969,7 +969,7 @@ PS
layout(set = 1) uniform _2422 _Globals_;
layout(set = 1, binding = 37) uniform texture2D g_tLayerMask;
- layout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;
+ layout(set = 1, binding = 18) uniform sampler g_sTrilinearWrap;
layout(set = 1, binding = 30) uniform texture2D g_tSurface;
layout(set = 1, binding = 33) uniform texture2D g_tDetail1;
layout(set = 1, binding = 39) uniform texture2D g_tDetail2;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_customglove_preview.slang
modified • +191 / -180 • changes: 371
Show patch
@@ -417,7 +417,7 @@ PS
Texture2D g_tSurfaceProperties3 < Channel(R, Box3(TextureSurfaceAmbientOcclusion3), Linear); Channel(G, Box(TextureSurfaceMetalness3), Linear); Channel(B, Box(TextureSurfaceClothMask3), Linear); Channel(A, Box(TextureSurfaceHeight3), Linear); OutputFormat(BC7); SrgbRead(false); >;
Texture2D g_tSurfaceProperties4 < Channel(R, Box3(TextureSurfaceAmbientOcclusion4), Linear); Channel(G, Box(TextureSurfaceMetalness4), Linear); Channel(B, Box(TextureSurfaceClothMask4), Linear); Channel(A, Box(TextureSurfaceHeight4), Linear); OutputFormat(BC7); SrgbRead(false); >;
Texture2D g_tTintId < Channel(RGB, None(TextureObjectTintId), Linear); OutputFormat(R8_UNORM); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
// Material1
@@ -439,10 +439,10 @@ PS
float g_fSurfaceColorSaturation1 < Default(1); Range(0, 4); UiType(Slider); UiGroup("Material1/Surface Layer/7"); >;
float g_fSubstrateColorBrightness1 < Default(1); Range(-8, 8); UiType(Slider); UiGroup("Material1/Substrate Layer/8"); >;
float g_fSurfaceColorBrightness1 < Default(1); Range(-8, 8); UiType(Slider); UiGroup("Material1/Surface Layer/8"); >;
- float2 g_vSurfaceGrimeMinMax1 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material1/Grime/10"); >;
+ float2 g_vSurfaceGrimeMinMax1 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material1/Grime/10"); >;
float g_fDamageHeightBlendSoftness1 < Default(0.01); UiType(Slider); UiGroup("Material1/Damage Height/11"); Expression(max(this,.001)); >;
- float2 g_vSubstrateGrimeMinMax1 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material1/Grime/11"); >;
- float2 g_vDamageMinMax1 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material1/Damage Height/12"); >;
+ float2 g_vSubstrateGrimeMinMax1 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material1/Grime/11"); >;
+ float2 g_vDamageMinMax1 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material1/Damage Height/12"); >;
float g_fBurnishingGrime1 < Default(0.5); UiType(Slider); UiGroup("Material1/Grime/20"); >;
float3 g_vBurnishingColorTint1 < Default3(1, 1, 1); UiType(Color); UiGroup("Material1/Burnishing,5/20"); >;
float3 g_vDamageBevelColorTint1 < Default3(1, 1, 1); UiType(Color); UiGroup("Material1/Damage Bevel,4/20"); >;
@@ -478,11 +478,11 @@ PS
CreateInputTexture2D(TextureSubstrateMetalness1, Srgb, 8, "", "_metal", "Material1/Substrate Layer/40", Default4(0, 0, 0, 0));
CreateInputTexture2D(TextureSurfaceMetalness1, Linear, 8, "", "_metal", "Material1/Surface Layer/40", Default4(0, 0, 0, 0));
float g_fDamageBevelRoughnessBrightness1 < Default(1); Range(0, 2); UiType(Slider); UiGroup("Material1/Damage Bevel/40"); >;
- float2 g_vSurfaceBurnishingMinMax1 < Default(0); UiType(VectorText); UiGroup("Material1/Burnishing/40"); >;
+ float2 g_vSurfaceBurnishingMinMax1 < Default2(0, 1); UiType(VectorText); UiGroup("Material1/Burnishing/40"); >;
CreateInputTexture2D(TextureSubstrateClothMask1, Srgb, 8, "", "_mask", "Material1/Substrate Layer/41", "materials/default/default_black_mask.tga");
CreateInputTexture2D(TextureSurfaceClothMask1, Linear, 8, "", "_mask", "Material1/Surface Layer/41", "materials/default/default_black_mask.tga");
float g_fDamageBevelAnisotropy1 < UiType(Slider); UiGroup("Material1/Damage Bevel/41"); >;
- float2 g_vSubstrateBurnishingMinMax1 < Default(0); UiType(VectorText); UiGroup("Material1/Burnishing/41"); >;
+ float2 g_vSubstrateBurnishingMinMax1 < Default2(0, 1); UiType(VectorText); UiGroup("Material1/Burnishing/41"); >;
float g_fDamageBevelMetalness1 < UiType(Slider); UiGroup("Material1/Damage Bevel/50"); >;
float g_fDamageBevelCloth1 < UiType(Slider); UiGroup("Material1/Damage Bevel/60"); >;
bool g_bDamageBevelBlendToSubstrate1 < UiType(CheckBox); UiGroup("Material1/Damage Bevel/80"); >;
@@ -506,10 +506,10 @@ PS
float g_fSurfaceColorSaturation2 < Default(1); Range(0, 4); UiType(Slider); UiGroup("Material2/Surface Layer/7"); >;
float g_fSubstrateColorBrightness2 < Default(1); Range(-8, 8); UiType(Slider); UiGroup("Material2/Substrate Layer/8"); >;
float g_fSurfaceColorBrightness2 < Default(1); Range(-8, 8); UiType(Slider); UiGroup("Material2/Surface Layer/8"); >;
- float2 g_vSurfaceGrimeMinMax2 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material2/Grime/10"); >;
+ float2 g_vSurfaceGrimeMinMax2 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material2/Grime/10"); >;
float g_fDamageHeightBlendSoftness2 < Default(0.01); UiType(Slider); UiGroup("Material2/Damage Height/11"); Expression(max(this,.001)); >;
- float2 g_vSubstrateGrimeMinMax2 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material2/Grime/11"); >;
- float2 g_vDamageMinMax2 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material2/Damage Height/12"); >;
+ float2 g_vSubstrateGrimeMinMax2 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material2/Grime/11"); >;
+ float2 g_vDamageMinMax2 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material2/Damage Height/12"); >;
float g_fBurnishingGrime2 < Default(0.5); UiType(Slider); UiGroup("Material2/Grime/20"); >;
float3 g_vBurnishingColorTint2 < Default3(1, 1, 1); UiType(Color); UiGroup("Material2/Burnishing,5/20"); >;
float3 g_vDamageBevelColorTint2 < Default3(1, 1, 1); UiType(Color); UiGroup("Material2/Damage Bevel,4/20"); >;
@@ -537,11 +537,11 @@ PS
CreateInputTexture2D(TextureSubstrateMetalness2, Srgb, 8, "", "_metal", "Material2/Substrate Layer/40", Default4(0, 0, 0, 0));
CreateInputTexture2D(TextureSurfaceMetalness2, Linear, 8, "", "_metal", "Material2/Surface Layer/40", Default4(0, 0, 0, 0));
float g_fDamageBevelRoughnessBrightness2 < Default(1); Range(0, 2); UiType(Slider); UiGroup("Material2/Damage Bevel/40"); >;
- float2 g_vSurfaceBurnishingMinMax2 < Default(0); UiType(VectorText); UiGroup("Material2/Burnishing/40"); >;
+ float2 g_vSurfaceBurnishingMinMax2 < Default2(0, 1); UiType(VectorText); UiGroup("Material2/Burnishing/40"); >;
CreateInputTexture2D(TextureSubstrateClothMask2, Srgb, 8, "", "_mask", "Material2/Substrate Layer/41", "materials/default/default_black_mask.tga");
CreateInputTexture2D(TextureSurfaceClothMask2, Linear, 8, "", "_mask", "Material2/Surface Layer/41", "materials/default/default_black_mask.tga");
float g_fDamageBevelAnisotropy2 < UiType(Slider); UiGroup("Material2/Damage Bevel/41"); >;
- float2 g_vSubstrateBurnishingMinMax2 < Default(0); UiType(VectorText); UiGroup("Material2/Burnishing/41"); >;
+ float2 g_vSubstrateBurnishingMinMax2 < Default2(0, 1); UiType(VectorText); UiGroup("Material2/Burnishing/41"); >;
float g_fDamageBevelMetalness2 < UiType(Slider); UiGroup("Material2/Damage Bevel/50"); >;
float g_fDamageBevelCloth2 < UiType(Slider); UiGroup("Material2/Damage Bevel/60"); >;
bool g_bDamageBevelBlendToSubstrate2 < UiType(CheckBox); UiGroup("Material2/Damage Bevel/80"); >;
@@ -565,10 +565,10 @@ PS
float g_fSurfaceColorSaturation3 < Default(1); Range(0, 4); UiType(Slider); UiGroup("Material3/Surface Layer/7"); >;
float g_fSubstrateColorBrightness3 < Default(1); Range(-8, 8); UiType(Slider); UiGroup("Material3/Substrate Layer/8"); >;
float g_fSurfaceColorBrightness3 < Default(1); Range(-8, 8); UiType(Slider); UiGroup("Material3/Surface Layer/8"); >;
- float2 g_vSurfaceGrimeMinMax3 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material3/Grime/10"); >;
+ float2 g_vSurfaceGrimeMinMax3 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material3/Grime/10"); >;
float g_fDamageHeightBlendSoftness3 < Default(0.01); UiType(Slider); UiGroup("Material3/Damage Height/11"); Expression(max(this,.001)); >;
- float2 g_vSubstrateGrimeMinMax3 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material3/Grime/11"); >;
- float2 g_vDamageMinMax3 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material3/Damage Height/12"); >;
+ float2 g_vSubstrateGrimeMinMax3 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material3/Grime/11"); >;
+ float2 g_vDamageMinMax3 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material3/Damage Height/12"); >;
float g_fBurnishingGrime3 < Default(0.5); UiType(Slider); UiGroup("Material3/Grime/20"); >;
float3 g_vBurnishingColorTint3 < Default3(1, 1, 1); UiType(Color); UiGroup("Material3/Burnishing,5/20"); >;
float3 g_vDamageBevelColorTint3 < Default3(1, 1, 1); UiType(Color); UiGroup("Material3/Damage Bevel,4/20"); >;
@@ -596,11 +596,11 @@ PS
CreateInputTexture2D(TextureSubstrateMetalness3, Srgb, 8, "", "_metal", "Material3/Substrate Layer/40", Default4(0, 0, 0, 0));
CreateInputTexture2D(TextureSurfaceMetalness3, Linear, 8, "", "_metal", "Material3/Surface Layer/40", Default4(0, 0, 0, 0));
float g_fDamageBevelRoughnessBrightness3 < Default(1); Range(0, 2); UiType(Slider); UiGroup("Material3/Damage Bevel/40"); >;
- float2 g_vSurfaceBurnishingMinMax3 < Default(0); UiType(VectorText); UiGroup("Material3/Burnishing/40"); >;
+ float2 g_vSurfaceBurnishingMinMax3 < Default2(0, 1); UiType(VectorText); UiGroup("Material3/Burnishing/40"); >;
CreateInputTexture2D(TextureSubstrateClothMask3, Srgb, 8, "", "_mask", "Material3/Substrate Layer/41", "materials/default/default_black_mask.tga");
CreateInputTexture2D(TextureSurfaceClothMask3, Linear, 8, "", "_mask", "Material3/Surface Layer/41", "materials/default/default_black_mask.tga");
float g_fDamageBevelAnisotropy3 < UiType(Slider); UiGroup("Material3/Damage Bevel/41"); >;
- float2 g_vSubstrateBurnishingMinMax3 < Default(0); UiType(VectorText); UiGroup("Material3/Burnishing/41"); >;
+ float2 g_vSubstrateBurnishingMinMax3 < Default2(0, 1); UiType(VectorText); UiGroup("Material3/Burnishing/41"); >;
float g_fDamageBevelMetalness3 < UiType(Slider); UiGroup("Material3/Damage Bevel/50"); >;
float g_fDamageBevelCloth3 < UiType(Slider); UiGroup("Material3/Damage Bevel/60"); >;
bool g_bDamageBevelBlendToSubstrate3 < UiType(CheckBox); UiGroup("Material3/Damage Bevel/80"); >;
@@ -624,10 +624,10 @@ PS
float g_fSurfaceColorSaturation4 < Default(1); Range(0, 4); UiType(Slider); UiGroup("Material4/Surface Layer/7"); >;
float g_fSubstrateColorBrightness4 < Default(1); Range(-8, 8); UiType(Slider); UiGroup("Material4/Substrate Layer/8"); >;
float g_fSurfaceColorBrightness4 < Default(1); Range(-8, 8); UiType(Slider); UiGroup("Material4/Surface Layer/8"); >;
- float2 g_vSurfaceGrimeMinMax4 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material4/Grime/10"); >;
+ float2 g_vSurfaceGrimeMinMax4 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material4/Grime/10"); >;
float g_fDamageHeightBlendSoftness4 < Default(0.01); UiType(Slider); UiGroup("Material4/Damage Height/11"); Expression(max(this,.001)); >;
- float2 g_vSubstrateGrimeMinMax4 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material4/Grime/11"); >;
- float2 g_vDamageMinMax4 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material4/Damage Height/12"); >;
+ float2 g_vSubstrateGrimeMinMax4 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material4/Grime/11"); >;
+ float2 g_vDamageMinMax4 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material4/Damage Height/12"); >;
float g_fBurnishingGrime4 < Default(0.5); UiType(Slider); UiGroup("Material4/Grime/20"); >;
float3 g_vBurnishingColorTint4 < Default3(1, 1, 1); UiType(Color); UiGroup("Material4/Burnishing,5/20"); >;
float3 g_vDamageBevelColorTint4 < Default3(1, 1, 1); UiType(Color); UiGroup("Material4/Damage Bevel,4/20"); >;
@@ -655,11 +655,11 @@ PS
CreateInputTexture2D(TextureSubstrateMetalness4, Srgb, 8, "", "_metal", "Material4/Substrate Layer/40", Default4(0, 0, 0, 0));
CreateInputTexture2D(TextureSurfaceMetalness4, Linear, 8, "", "_metal", "Material4/Surface Layer/40", Default4(0, 0, 0, 0));
float g_fDamageBevelRoughnessBrightness4 < Default(1); Range(0, 2); UiType(Slider); UiGroup("Material4/Damage Bevel/40"); >;
- float2 g_vSurfaceBurnishingMinMax4 < Default(0); UiType(VectorText); UiGroup("Material4/Burnishing/40"); >;
+ float2 g_vSurfaceBurnishingMinMax4 < Default2(0, 1); UiType(VectorText); UiGroup("Material4/Burnishing/40"); >;
CreateInputTexture2D(TextureSubstrateClothMask4, Srgb, 8, "", "_mask", "Material4/Substrate Layer/41", "materials/default/default_black_mask.tga");
CreateInputTexture2D(TextureSurfaceClothMask4, Linear, 8, "", "_mask", "Material4/Surface Layer/41", "materials/default/default_black_mask.tga");
float g_fDamageBevelAnisotropy4 < UiType(Slider); UiGroup("Material4/Damage Bevel/41"); >;
- float2 g_vSubstrateBurnishingMinMax4 < Default(0); UiType(VectorText); UiGroup("Material4/Burnishing/41"); >;
+ float2 g_vSubstrateBurnishingMinMax4 < Default2(0, 1); UiType(VectorText); UiGroup("Material4/Burnishing/41"); >;
float g_fDamageBevelMetalness4 < UiType(Slider); UiGroup("Material4/Damage Bevel/50"); >;
float g_fDamageBevelCloth4 < UiType(Slider); UiGroup("Material4/Damage Bevel/60"); >;
bool g_bDamageBevelBlendToSubstrate4 < UiType(CheckBox); UiGroup("Material4/Damage Bevel/80"); >;
@@ -734,12 +734,12 @@ PS
#endif
#extension GL_KHR_shader_subgroup_arithmetic : require
- struct _2872
+ struct _113
{
vec4 _m0[3];
};
- struct _71
+ struct _323
{
vec4 _m0[4];
};
@@ -755,12 +755,12 @@ PS
vec4 _m6;
};
- struct _193
+ struct _1106
{
_1677 _m0[128];
};
- struct _2139
+ struct _244
{
mat4 _m0[4];
};
@@ -962,15 +962,15 @@ PS
layout(set = 1) uniform _2806 PerViewConstantBufferCsgo_t;
- struct _854
+ struct _134
{
vec4 _m0;
vec4 _m1;
vec4 _m2;
vec4 _m3;
vec4 _m4;
- _2872 _m5;
- _71 _m6;
+ _113 _m5;
+ _323 _m6;
vec4 _m7;
vec4 _m8;
vec4 _m9;
@@ -979,7 +979,7 @@ PS
uvec4 _m12;
vec4 _m13;
vec4 _m14;
- _193 _m15;
+ _1106 _m15;
vec4 _m16;
vec4 _m17;
int _m18;
@@ -989,11 +989,11 @@ PS
float _m22;
float _m23;
float _m24;
- _2139 _m25;
- _71 _m26;
+ _244 _m25;
+ _323 _m26;
};
- layout(set = 3) uniform _854 PerViewLightingConstantBufferGpu_t;
+ layout(set = 3) uniform _134 PerViewLightingConstantBufferGpu_t;
struct _1194
{
@@ -1016,7 +1016,7 @@ PS
} g_BarnLights_1;
layout(set = 1, binding = 85) uniform texture2D g_tLayerId;
- layout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;
+ layout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;
layout(set = 1, binding = 52) uniform texture2D g_tSurfaceNormal1;
layout(set = 1, binding = 55) uniform texture2D g_tSubstrateNormal1;
layout(set = 1, binding = 60) uniform texture2D g_tSurfaceNormal2;
@@ -1055,18 +1055,18 @@ PS
layout(set = 1, binding = 14) uniform sampler g_sAniso;
layout(set = 1, binding = 83) uniform texture2D g_tNormal;
layout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;
- layout(set = 1, binding = 22) uniform sampler g_sCookieSampler;
+ layout(set = 1, binding = 23) uniform sampler g_sCookieSampler;
layout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;
- layout(set = 1, binding = 18) uniform sampler g_sPointClamp;
+ layout(set = 1, binding = 19) uniform sampler g_sPointClamp;
layout(set = 1, binding = 39) uniform texture2D g_tSsao;
- layout(set = 1, binding = 19) uniform sampler g_sUserConfig;
- layout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
+ layout(set = 1, binding = 20) uniform sampler g_sUserConfig;
+ layout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
layout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;
layout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;
- layout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;
+ layout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;
layout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;
layout(set = 1, binding = 40) uniform textureCubeArray g_tEnvironmentMap;
- layout(set = 1, binding = 15) uniform sampler g_sBilinearClamp;
+ layout(set = 1, binding = 16) uniform sampler g_sBilinearClamp;
layout(set = 1, binding = 35) uniform texture2DArray g_tBRDFLookup;
layout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;
@@ -2668,162 +2668,173 @@ PS
{
_21721 = _21720;
}
- float _21722;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735);
+ float _12320;
SPIRV_CROSS_BRANCH
- if (PerViewLightingConstantBufferGpu_t._m18 != 0)
+ if (_8634 > 0.0)
{
- int _23989;
- int _10191;
- float _13151;
- vec3 _14975;
- int _13039 = 0;
- for (;;)
- {
- if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))
- {
- _13151 = 1.0;
- _14975 = vec3(0.0);
- _10191 = -1;
- break;
- }
- vec4 _18348 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];
- float _12779 = _18348.x;
- if (max(abs(_12779), abs(_18348.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])
- {
- vec3 _19470 = vec3(_12779, _18348.yz);
- vec2 _24804 = _19470.xy;
- vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));
- vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;
- vec3 _20489 = _19470;
- _20489.x = _20561.x;
- _20489.y = _20561.y;
- _13151 = saturate(_22193.x * _22193.y);
- _14975 = _20489;
- _10191 = _13039;
- break;
- }
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
+ float _12505;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m18 != 0)
{
- vec2 _7045;
- vec2 _7046;
- vec2 _7735;
- float _8969;
- float _8970;
- float _15997;
- float _17375;
- vec2 _18870;
- vec4 _20581;
- vec4 _22023;
- float _23727;
- do
+ int _23989;
+ int _10191;
+ float _13151;
+ vec3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- float _21472 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);
- _20581 = PerViewLightingConstantBufferGpu_t._m0;
- _22023 = PerViewLightingConstantBufferGpu_t._m1;
- _17375 = PerViewLightingConstantBufferGpu_t._m2.z;
- _15997 = PerViewLightingConstantBufferGpu_t._m3.z;
- _18870 = vec2(_17375, _15997);
- _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
- _7045 = vec2(_8969, _15997);
- _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
- _7046 = vec2(_17375, _8970);
- _7735 = vec2(_8969, _8970);
- float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21472), 0.0)).xyzw, vec4(0.25));
- bool _12915;
- if (_15310 == 0.0)
- {
- _12915 = true;
- }
- else
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))
{
- _12915 = _15310 == 1.0;
+ _13151 = 1.0;
+ _14975 = vec3(0.0);
+ _10191 = -1;
+ break;
}
- if (_12915)
+ vec4 _18348 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];
+ float _12779 = _18348.x;
+ if (max(abs(_12779), abs(_18348.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])
{
- _23727 = _15310;
+ vec3 _19470 = vec3(_12779, _18348.yz);
+ vec2 _24804 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));
+ vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;
+ vec3 _20489 = _19470;
+ _20489.x = _20561.x;
+ _20489.y = _20561.y;
+ _13151 = saturate(_22193.x * _22193.y);
+ _14975 = _20489;
+ _10191 = _13039;
break;
}
- _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17375, 0.0)).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15997)).xy, _21472), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21472), 0.0) * _22023.y);
- break;
- } while(false);
- float _12502;
- SPIRV_CROSS_BRANCH
- if (_13151 < 1.0)
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
+ }
+ float _19363;
+ if (_10191 >= 0)
{
- float _7990;
- if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))
+ vec2 _7045;
+ vec2 _7046;
+ vec2 _7735;
+ float _8969;
+ float _8970;
+ float _15997;
+ float _17375;
+ vec2 _18870;
+ vec4 _20581;
+ vec4 _22023;
+ float _23727;
+ do
{
- int _15335 = _10191 + 1;
- vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];
- vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;
- vec3 _20490;
- _20490.x = _20562.x;
- _20490.y = _20562.y;
- float _12501;
- do
+ float _21472 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);
+ _20581 = PerViewLightingConstantBufferGpu_t._m0;
+ _22023 = PerViewLightingConstantBufferGpu_t._m1;
+ _17375 = PerViewLightingConstantBufferGpu_t._m2.z;
+ _15997 = PerViewLightingConstantBufferGpu_t._m3.z;
+ _18870 = vec2(_17375, _15997);
+ _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
+ _7045 = vec2(_8969, _15997);
+ _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
+ _7046 = vec2(_17375, _8970);
+ _7735 = vec2(_8969, _8970);
+ float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21472), 0.0)).xyzw, vec4(0.25));
+ bool _12915;
+ if (_15310 == 0.0)
{
- float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);
- float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));
- bool _12916;
- if (_15311 == 0.0)
- {
- _12916 = true;
- }
- else
- {
- _12916 = _15311 == 1.0;
- }
- if (_12916)
+ _12915 = true;
+ }
+ else
+ {
+ _12915 = _15310 == 1.0;
+ }
+ if (_12915)
+ {
+ _23727 = _15310;
+ break;
+ }
+ _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17375, 0.0)).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21472), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15997)).xy, _21472), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21472), 0.0) * _22023.y);
+ break;
+ } while(false);
+ float _12502;
+ SPIRV_CROSS_BRANCH
+ if (_13151 < 1.0)
+ {
+ float _7991;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];
+ vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;
+ vec3 _20490;
+ _20490.x = _20562.x;
+ _20490.y = _20562.y;
+ float _12501;
+ do
{
- _12501 = _15311;
+ float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);
+ float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));
+ bool _12916;
+ if (_15311 == 0.0)
+ {
+ _12916 = true;
+ }
+ else
+ {
+ _12916 = _15311 == 1.0;
+ }
+ if (_12916)
+ {
+ _12501 = _15311;
+ break;
+ }
+ _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(_17375, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(0.0, _15997)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20490.xy, _20322), 0.0) * _22023.y);
break;
- }
- _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(_17375, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20490.xy + vec2(0.0, _15997)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20490.xy, _20322), 0.0) * _22023.y);
- break;
- } while(false);
- _7990 = _12501;
+ } while(false);
+ _7991 = _12501;
+ }
+ else
+ {
+ _7991 = 1.0;
+ }
+ _12502 = mix(_7991, _23727, _13151);
}
else
{
- _7990 = 1.0;
+ _12502 = _23727;
}
- _12502 = mix(_7990, _23727, _13151);
+ _19363 = _12502;
}
else
{
- _12502 = _23727;
+ _19363 = 1.0;
}
- _19363 = _12502;
- }
- else
- {
- _19363 = 1.0;
- }
- float _13279 = mix(_19363, 1.0, saturate((distance(_12292.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));
- float _12503;
- if (_24465.y)
- {
- _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ float _13279 = mix(_19363, 1.0, saturate((distance(_12292.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));
+ float _12503;
+ if (_24465.y)
+ {
+ _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12503 = _13279;
+ }
+ _12505 = _12503;
}
else
{
- _12503 = _13279;
+ _12505 = 1.0;
}
- _21722 = _12503;
+ _12320 = _12505;
}
else
{
- _21722 = 1.0;
+ _12320 = 1.0;
}
vec3 _9717;
vec3 _24892;
SPIRV_CROSS_BRANCH
- if ((dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735) * _21722) > 0.0)
+ if ((_8634 * _12320) > 0.0)
{
float _11797 = max(0.0, dot(_24283.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));
vec2 _9842 = max(_11004, vec2(PerViewLightingConstantBufferGpu_t._m16.w));
@@ -2854,7 +2865,7 @@ PS
{
_11621 = _18393;
}
- vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _21722).xyz;
+ vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _12320).xyz;
_9717 = PerViewLightingConstantBufferGpu_t._m9.xyz + (vec3(_11797).xyz * _16808);
_24892 = (((_22315 + ((vec3(1.0) - _22315) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * _11621).xyz * _11797).xyz * _16808;
}
@@ -3055,7 +3066,7 @@ PS
}
else
{
- vec3 _12505;
+ vec3 _12506;
if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)
{
vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);
@@ -3066,12 +3077,12 @@ PS
vec3 _20479 = vec4((_23629 * _19008.w) + cross(_23629, _24989), _15156).xyz;
vec3 _23614 = _17795.xyz;
vec3 _12176 = ((_20479 * g_BarnLights_1._m0[_12608]._m5.w) + (_23614 * _15156)) + cross(_23614, _20479);
- vec3 _14156 = vec3(vec2(atan(_12176.y, -_12176.x) * 0.15915493667125701904296875, acos(_12176.z) * 0.3183098733425140380859375), -g_BarnLights_1._m0[_12608]._m4.w);
- vec2 _20564 = (_14156.xy * g_BarnLights_1._m0[_12608]._m9.zw) + g_BarnLights_1._m0[_12608]._m9.xy;
- vec3 _20492 = _14156;
+ vec3 _14157 = vec3(vec2(atan(_12176.y, -_12176.x) * 0.15915493667125701904296875, acos(_12176.z) * 0.3183098733425140380859375), -g_BarnLights_1._m0[_12608]._m4.w);
+ vec2 _20564 = (_14157.xy * g_BarnLights_1._m0[_12608]._m9.zw) + g_BarnLights_1._m0[_12608]._m9.xy;
+ vec3 _20492 = _14157;
_20492.x = _20564.x;
_20492.y = _20564.y;
- _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;
+ _12506 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;
}
else
{
@@ -3080,9 +3091,9 @@ PS
vec3 _20491 = _13791;
_20491.x = _20563.x;
_20491.y = _20563.y;
- _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;
+ _12506 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;
}
- _21548 = _12505;
+ _21548 = _12506;
}
if (all(equal(_21548.xyz, vec3(0.0))))
{
@@ -3110,8 +3121,8 @@ PS
do
{
float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);
- vec2 _14616 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;
- float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));
+ vec2 _14617 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;
+ float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));
bool _12918;
if (_15312 == 0.0)
{
@@ -3126,7 +3137,7 @@ PS
_24972 = _15312;
break;
}
- _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14616, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
+ _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14617, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
break;
} while(false);
vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12608]._m12);
@@ -3162,8 +3173,8 @@ PS
SPIRV_CROSS_BRANCH
if (_14878)
{
- float _9254 = dot(_9843.xy, vec2(0.5));
- float _20830 = max(_9254 * _9254, 9.9999997473787516355514526367188e-06);
+ float _9253 = dot(_9843.xy, vec2(0.5));
+ float _20830 = max(_9253 * _9253, 9.9999997473787516355514526367188e-06);
float _21402 = saturate(_25074 + 0.001000000047497451305389404296875);
_11622 = mix(_18395, ((((2.0 + (1.0 / _20830)) * pow(1.0 - (_7801 * _7801), 0.5 / _20830)) / ((_11798 + _21402) - (_11798 * _21402))) * 0.124999918043613433837890625) * _11798, _7397);
}
@@ -3218,8 +3229,8 @@ PS
}
float _23616 = PerViewLightingConstantBufferGpu_t._m14.y * sqrt(_17751);
float _17389 = _17751 * _17751;
- float _20712 = saturate(1.0 - _17389);
- vec3 _25271 = normalize(mix(_19630, reflect(_10145.xyz, _19630.xyz).xyz, vec3(_20712 * (sqrt(_20712) + _17389))));
+ float _20711 = saturate(1.0 - _17389);
+ vec3 _25271 = normalize(mix(_19630, reflect(_10145.xyz, _19630.xyz).xyz, vec3(_20711 * (sqrt(_20711) + _17389))));
uvec2 _6814 = uvec2(_18180.xy - PerViewConstantBuffer_t._m0.xy) >> _7709;
uint _19949 = PerViewLightingConstantBufferGpu_t._m11.y + (((_6814.y * PerViewLightingConstantBufferGpu_t._m12.y) + _6814.x) * PerViewLightingConstantBufferGpu_t._m11.z);
uint _23394 = PerViewLightingConstantBufferGpu_t._m11.x + (uint(clamp(_6864 * PerViewLightingConstantBufferGpu_t._m13.x, 0.0, PerViewLightingConstantBufferGpu_t._m13.y)) * PerViewLightingConstantBufferGpu_t._m11.z);
@@ -3325,7 +3336,7 @@ PS
}
float _20784 = max(0.0, dot(_16992, _13505));
vec4 _11487 = textureLod(sampler2DArray(g_tBRDFLookup, g_sBilinearClamp), vec3((vec2(_17751, sqrt(1.0 - _20784)) * 0.984375) + vec2(0.0078125), 1.0).xyz, 0.0);
- vec3 _19001 = mix(_11487.xxx, _11487.yyy, _12351);
+ vec3 _19002 = mix(_11487.xxx, _11487.yyy, _12351);
float _10020;
vec3 _23472;
SPIRV_CROSS_BRANCH
@@ -3335,12 +3346,12 @@ PS
float _22187 = max(_17389, 9.9999997473787516355514526367188e-06);
float _21363 = saturate(_20784 + 0.001000000047497451305389404296875);
_10020 = 1.0 - _7397;
- _23472 = mix(_19001, _12351 * ((((2.0 + (1.0 / _22187)) * pow(1.0 - (_7173 * _7173), 0.5 / _22187)) / ((1.0 + _21363) - _21363)) * 0.124999918043613433837890625), vec3(_7397));
+ _23472 = mix(_19002, _12351 * ((((2.0 + (1.0 / _22187)) * pow(1.0 - (_7173 * _7173), 0.5 / _22187)) / ((1.0 + _21363) - _21363)) * 0.124999918043613433837890625), vec3(_7397));
}
else
{
_10020 = 1.0;
- _23472 = _19001;
+ _23472 = _19002;
}
float _8850 = 1.0 - _11487.y;
vec3 _15517 = _12351 + ((vec3(1.0) - _12351) * vec3(0.0476190485060214996337890625));
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_customweapon.slang
modified • +5 / -5 • changes: 10
Show patch
@@ -891,10 +891,10 @@ PS
float g_fOverlayMetalness < UiType(Slider); UiGroup("Paint Inputs/Lighting/22"); >;
float g_fOverlayStrength < Default(1); UiType(Slider); UiGroup("Paint Inputs/Overlay/22"); >;
float g_flCaseHardeningRampOffset < UiType(Slider); UiGroup("Paint Inputs/Pattern/22"); >;
- float3 g_vHalftonePatternLevels < Default2(0, 0.5); Range2(-10, 0, 10, 1); UiType(VectorText); UiGroup("Paint Inputs/Pattern/22"); Expression(float3(-this.x,-1.4427*log(max(.0001,1-this.y)),2-this.z)); >;
+ float3 g_vHalftonePatternLevels < Default3(0, 0.5, 1); Range2(-10, 0, 10, 1); UiType(VectorText); UiGroup("Paint Inputs/Pattern/22"); Expression(float3(-this.x,-1.4427*log(max(.0001,1-this.y)),2-this.z)); >;
float g_fOverlayMaterialStrength < Default(1); UiType(Slider); UiGroup("Paint Inputs/Overlay/23"); >;
- float4 g_vCaseHardening < Default(0); UiType(VectorText); UiGroup("Paint Inputs/Pattern/23"); >;
- float2 g_vHalftoneThresholds < Default(0); UiType(VectorText); UiGroup("Paint Inputs/Pattern/23"); >;
+ float4 g_vCaseHardening < Default2(0, 1); UiType(VectorText); UiGroup("Paint Inputs/Pattern/23"); >;
+ float2 g_vHalftoneThresholds < Default2(0, 1); UiType(VectorText); UiGroup("Paint Inputs/Pattern/23"); >;
float g_fOverlayBrightness < Default(1); Range(0, 2); UiType(Slider); UiGroup("Paint Inputs/Overlay/24"); >;
float g_flHalftoneRotationOffsetA < Range(-360, 360); UiType(Slider); UiGroup("Paint Inputs/Pattern/24"); >;
float g_fOverlayDurability < UiType(Slider); UiGroup("Paint Inputs/Overlay/25"); Expression(1-this); >;
@@ -1377,10 +1377,10 @@ PS
layout(set = 1) uniform _2733 _Globals_;
layout(set = 1, binding = 30) uniform texture2D g_tAmbientOcclusion;
- layout(set = 1, binding = 23) uniform sampler g_sTrilinearClamp;
+ layout(set = 1, binding = 24) uniform sampler g_sTrilinearClamp;
layout(set = 1, binding = 31) uniform texture2D g_tMasks;
layout(set = 1, binding = 38) uniform texture2D g_tWear;
- layout(set = 1, binding = 22) uniform sampler g_sTrilinearWrap;
+ layout(set = 1, binding = 23) uniform sampler g_sTrilinearWrap;
layout(set = 1, binding = 39) uniform texture2D g_tGrunge;
layout(set = 1, binding = 35) uniform texture2D g_tMetalness;
layout(set = 1, binding = 34) uniform texture2D g_tColor;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_decal_renderer.slang
modified • +2 / -2 • changes: 4
Show patch
@@ -186,9 +186,9 @@ PS
// Static combos: S_SUPPORTS_DECALS
Texture2D<float4> g_tPreviousRT : register(t30, space1);
- SamplerState AddressU_Clamp_AddressV_Clamp : register(s21, space1);
+ SamplerState AddressU_Clamp_AddressV_Clamp : register(s22, space1);
Texture2D<float4> g_tDecals : register(t31, space1);
- SamplerState g_sTrilinearClamp : register(s17, space1);
+ SamplerState g_sTrilinearClamp : register(s18, space1);
static float4 input_1;
static float3 input_2;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_decalmodulate.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -259,7 +259,7 @@ PS
};
Texture2D<float4> g_tColor : register(t43, space1);
- SamplerState g_sUserConfigAllowGlobalMipBias : register(s20, space1);
+ SamplerState g_sUserConfigAllowGlobalMipBias : register(s21, space1);
static float4 input_2;
static float4 input_3;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_effects.slang
modified • +4 / -4 • changes: 8
Show patch
@@ -327,7 +327,7 @@ PS
Texture2D g_tSceneDepth < Attribute("SceneDepth"); SrgbRead(false); >;
Texture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;
Texture2D g_tZeroth_Moment < Attribute("zeroth_moment"); SrgbRead(true); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
// Color
@@ -427,13 +427,13 @@ PS
};
Texture2D<float4> g_tColor : register(t51, space1);
- SamplerState g_sUserConfigAllowGlobalMipBias : register(s20, space1);
+ SamplerState g_sUserConfigAllowGlobalMipBias : register(s21, space1);
Texture2D<float4> g_tMask1 : register(t52, space1);
- SamplerState g_sUserConfig : register(s19, space1);
+ SamplerState g_sUserConfig : register(s20, space1);
Texture2D<float4> g_tMask2 : register(t53, space1);
Texture2D<float4> g_tMask3 : register(t54, space1);
TextureCube<float4> g_tFogCubeTexture : register(t42, space1);
- SamplerState g_sTrilinearClamp : register(s17, space1);
+ SamplerState g_sTrilinearClamp : register(s18, space1);
static bool gl_FrontFacing;
static float3 input_0;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_environment.slang
modified • +1688 / -1492 • changes: 3180
No patch available (GitHub often omits patches for large/binary diffs).
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_environment_blend.slang
modified • +2073 / -1854 • changes: 3927
No patch available (GitHub often omits patches for large/binary diffs).
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_eyeball.slang
modified • +163 / -152 • changes: 315
Show patch
@@ -432,7 +432,7 @@ PS
Texture2D g_tParticleShadowBuffer < Attribute("ParticleShadowBuffer"); SrgbRead(false); >;
Texture2D g_tShadowDepthBufferDepth < Attribute("ShadowDepthBuffer"); SrgbRead(false); >;
Texture2D g_tSsao < Attribute("SSAOOcclusionFactor"); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
// Color
@@ -484,12 +484,12 @@ PS
#endif
#extension GL_KHR_shader_subgroup_arithmetic : require
- struct _2914
+ struct _155
{
vec4 _m0[3];
};
- struct _113
+ struct _365
{
vec4 _m0[4];
};
@@ -505,12 +505,12 @@ PS
vec4 _m6;
};
- struct _2264
+ struct _166
{
_1677 _m0[128];
};
- struct _2326
+ struct _430
{
mat4 _m0[4];
};
@@ -592,15 +592,15 @@ PS
layout(set = 1) uniform _1194 PerViewConstantBuffer_t;
- struct _735
+ struct _15
{
vec4 _m0;
vec4 _m1;
vec4 _m2;
vec4 _m3;
vec4 _m4;
- _2914 _m5;
- _113 _m6;
+ _155 _m5;
+ _365 _m6;
vec4 _m7;
vec4 _m8;
vec4 _m9;
@@ -609,7 +609,7 @@ PS
uvec4 _m12;
vec4 _m13;
vec4 _m14;
- _2264 _m15;
+ _166 _m15;
vec4 _m16;
vec4 _m17;
int _m18;
@@ -619,11 +619,11 @@ PS
float _m22;
float _m23;
float _m24;
- _2326 _m25;
- _113 _m26;
+ _430 _m25;
+ _365 _m26;
};
- layout(set = 3) uniform _735 PerViewLightingConstantBufferGpu_t;
+ layout(set = 3) uniform _15 PerViewLightingConstantBufferGpu_t;
layout(set = 3, binding = 30, std430) readonly buffer g_CullBits
{
@@ -636,25 +636,25 @@ PS
} g_BarnLights_1;
layout(set = 1, binding = 51) uniform texture2D g_tColor;
- layout(set = 1, binding = 20) uniform sampler g_sUserConfigAllowGlobalMipBias;
+ layout(set = 1, binding = 21) uniform sampler g_sUserConfigAllowGlobalMipBias;
layout(set = 1, binding = 53) uniform texture2D g_tEyeMask1;
layout(set = 1, binding = 14) uniform sampler g_sAniso;
layout(set = 1, binding = 52) uniform texture2D g_tEyeAlbedo1;
- layout(set = 1, binding = 25) uniform sampler AddressU_Mirror_AddressV_Mirror_Filter_Anisotropic_MaxAniso_8;
+ layout(set = 1, binding = 26) uniform sampler AddressU_Mirror_AddressV_Mirror_Filter_Anisotropic_MaxAniso_8;
layout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;
- layout(set = 1, binding = 22) uniform sampler g_sCookieSampler;
+ layout(set = 1, binding = 23) uniform sampler g_sCookieSampler;
layout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;
- layout(set = 1, binding = 18) uniform sampler g_sPointClamp;
+ layout(set = 1, binding = 19) uniform sampler g_sPointClamp;
layout(set = 1, binding = 39) uniform texture2D g_tSsao;
- layout(set = 1, binding = 19) uniform sampler g_sUserConfig;
- layout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
+ layout(set = 1, binding = 20) uniform sampler g_sUserConfig;
+ layout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
layout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;
layout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;
- layout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;
- layout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;
+ layout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;
+ layout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;
layout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;
layout(set = 1, binding = 40) uniform textureCubeArray g_tEnvironmentMap;
- layout(set = 1, binding = 15) uniform sampler g_sBilinearClamp;
+ layout(set = 1, binding = 16) uniform sampler g_sBilinearClamp;
layout(set = 1, binding = 35) uniform texture2DArray g_tBRDFLookup;
layout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;
@@ -921,162 +921,173 @@ PS
{
_21711 = _21710;
}
- float _21712;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12885.xyz);
+ float _12320;
SPIRV_CROSS_BRANCH
- if (PerViewLightingConstantBufferGpu_t._m18 != 0)
+ if (_8634 > 0.0)
{
- int _23989;
- int _10191;
- float _13139;
- vec3 _14977;
- int _13040 = 0;
- for (;;)
- {
- if (!(_13040 < PerViewLightingConstantBufferGpu_t._m18))
- {
- _13139 = 1.0;
- _14977 = vec3(0.0);
- _10191 = -1;
- break;
- }
- vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13040];
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13040])
- {
- vec3 _19470 = vec3(_12779, _18322.yz);
- vec2 _24804 = _19470.xy;
- vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));
- vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13040].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13040].xy;
- vec3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13139 = saturate(_22193.x * _22193.y);
- _14977 = _20488;
- _10191 = _13040;
- break;
- }
- _23989 = _13040 + 1;
- _13040 = _23989;
- continue;
- }
- float _19364;
- if (_10191 >= 0)
+ float _12505;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m18 != 0)
{
- vec2 _7045;
- vec2 _7046;
- vec2 _7735;
- float _8969;
- float _8970;
- float _15996;
- float _17299;
- vec2 _18870;
- vec4 _20581;
- vec4 _22023;
- float _23727;
- do
+ int _23989;
+ int _10191;
+ float _13139;
+ vec3 _14977;
+ int _13040 = 0;
+ for (;;)
{
- float _21452 = saturate(_14977.z + PerViewLightingConstantBufferGpu_t._m19);
- _20581 = PerViewLightingConstantBufferGpu_t._m0;
- _22023 = PerViewLightingConstantBufferGpu_t._m1;
- _17299 = PerViewLightingConstantBufferGpu_t._m2.z;
- _15996 = PerViewLightingConstantBufferGpu_t._m3.z;
- _18870 = vec2(_17299, _15996);
- _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
- _7045 = vec2(_8969, _15996);
- _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
- _7046 = vec2(_17299, _8970);
- _7735 = vec2(_8969, _8970);
- float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));
- bool _12887;
- if (_15310 == 0.0)
+ if (!(_13040 < PerViewLightingConstantBufferGpu_t._m18))
{
- _12887 = true;
- }
- else
- {
- _12887 = _15310 == 1.0;
+ _13139 = 1.0;
+ _14977 = vec3(0.0);
+ _10191 = -1;
+ break;
}
- if (_12887)
+ vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13040];
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13040])
{
- _23727 = _15310;
+ vec3 _19470 = vec3(_12779, _18322.yz);
+ vec2 _24804 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));
+ vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13040].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13040].xy;
+ vec3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13139 = saturate(_22193.x * _22193.y);
+ _14977 = _20488;
+ _10191 = _13040;
break;
}
- _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14977.xy, _21452), 0.0) * _22023.y);
- break;
- } while(false);
- float _12503;
- SPIRV_CROSS_BRANCH
- if (_13139 < 1.0)
+ _23989 = _13040 + 1;
+ _13040 = _23989;
+ continue;
+ }
+ float _19364;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))
+ vec2 _7045;
+ vec2 _7046;
+ vec2 _7735;
+ float _8969;
+ float _8970;
+ float _15996;
+ float _17299;
+ vec2 _18870;
+ vec4 _20581;
+ vec4 _22023;
+ float _23727;
+ do
{
- int _15335 = _10191 + 1;
- vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];
- vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;
- vec3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- float _12502;
- do
+ float _21452 = saturate(_14977.z + PerViewLightingConstantBufferGpu_t._m19);
+ _20581 = PerViewLightingConstantBufferGpu_t._m0;
+ _22023 = PerViewLightingConstantBufferGpu_t._m1;
+ _17299 = PerViewLightingConstantBufferGpu_t._m2.z;
+ _15996 = PerViewLightingConstantBufferGpu_t._m3.z;
+ _18870 = vec2(_17299, _15996);
+ _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
+ _7045 = vec2(_8969, _15996);
+ _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
+ _7046 = vec2(_17299, _8970);
+ _7735 = vec2(_8969, _8970);
+ float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));
+ bool _12887;
+ if (_15310 == 0.0)
{
- float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);
- float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));
- bool _12888;
- if (_15311 == 0.0)
- {
- _12888 = true;
- }
- else
- {
- _12888 = _15311 == 1.0;
- }
- if (_12888)
+ _12887 = true;
+ }
+ else
+ {
+ _12887 = _15310 == 1.0;
+ }
+ if (_12887)
+ {
+ _23727 = _15310;
+ break;
+ }
+ _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14977.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14977.xy, _21452), 0.0) * _22023.y);
+ break;
+ } while(false);
+ float _12503;
+ SPIRV_CROSS_BRANCH
+ if (_13139 < 1.0)
+ {
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];
+ vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;
+ vec3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ float _12502;
+ do
{
- _12502 = _15311;
+ float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);
+ float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));
+ bool _12888;
+ if (_15311 == 0.0)
+ {
+ _12888 = true;
+ }
+ else
+ {
+ _12888 = _15311 == 1.0;
+ }
+ if (_12888)
+ {
+ _12502 = _15311;
+ break;
+ }
+ _12502 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22023.y);
break;
- }
- _12502 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22023.y);
- break;
- } while(false);
- _7934 = _12502;
+ } while(false);
+ _7934 = _12502;
+ }
+ else
+ {
+ _7934 = 1.0;
+ }
+ _12503 = mix(_7934, _23727, _13139);
}
else
{
- _7934 = 1.0;
+ _12503 = _23727;
}
- _12503 = mix(_7934, _23727, _13139);
+ _19364 = _12503;
}
else
{
- _12503 = _23727;
+ _19364 = 1.0;
}
- _19364 = _12503;
- }
- else
- {
- _19364 = 1.0;
- }
- float _13279 = mix(_19364, 1.0, saturate((distance(_7639.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));
- float _12504;
- if (_24465.y)
- {
- _12504 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ float _13279 = mix(_19364, 1.0, saturate((distance(_7639.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));
+ float _12504;
+ if (_24465.y)
+ {
+ _12504 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12504 = _13279;
+ }
+ _12505 = _12504;
}
else
{
- _12504 = _13279;
+ _12505 = 1.0;
}
- _21712 = _12504;
+ _12320 = _12505;
}
else
{
- _21712 = 1.0;
+ _12320 = 1.0;
}
vec3 _13174;
vec3 _16054;
SPIRV_CROSS_BRANCH
- if ((dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12885.xyz) * _21712) > 0.0)
+ if ((_8634 * _12320) > 0.0)
{
float _11797 = max(0.0, dot(_12885.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));
vec2 _9840 = max(_11004, vec2(PerViewLightingConstantBufferGpu_t._m16.w));
@@ -1091,7 +1102,7 @@ PS
float _16150 = _9850 + 1.0;
float _6835 = (_16150 * _16150) * 0.125;
float _19569 = 1.0 - _6835;
- vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _21712).xyz;
+ vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _12320).xyz;
_13174 = PerViewLightingConstantBufferGpu_t._m9.xyz + (vec3(_11797).xyz * _16808);
_16054 = (((_22995 + ((vec3(1.0) - _22995) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * ((_24198 * _24198) / ((4.0 * ((_11797 * _19569) + _6835)) * ((max(0.0, dot(_19012, _21889)) * _19569) + _6835)))).xyz * _11797).xyz * _16808;
}
@@ -1289,7 +1300,7 @@ PS
}
else
{
- vec3 _12505;
+ vec3 _12506;
if (g_BarnLights_1._m0[_12609]._m4.w < 0.0)
{
vec4 _17795 = vec4(-g_BarnLights_1._m0[_12609]._m5.xyz, g_BarnLights_1._m0[_12609]._m5.w);
@@ -1305,7 +1316,7 @@ PS
vec3 _20492 = _14081;
_20492.x = _20564.x;
_20492.y = _20564.y;
- _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;
+ _12506 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;
}
else
{
@@ -1314,9 +1325,9 @@ PS
vec3 _20491 = _13791;
_20491.x = _20563.x;
_20491.y = _20563.y;
- _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;
+ _12506 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;
}
- _21548 = _12505;
+ _21548 = _12506;
}
if (all(equal(_21548.xyz, vec3(0.0))))
{
@@ -1344,8 +1355,8 @@ PS
do
{
float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);
- vec2 _14615 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12609]._m8.zw, g_BarnLights_1._m0[_12609]._m8.xy), _19629.z).xy;
- float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));
+ vec2 _14616 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12609]._m8.zw, g_BarnLights_1._m0[_12609]._m8.xy), _19629.z).xy;
+ float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));
bool _12890;
if (_15312 == 0.0)
{
@@ -1360,7 +1371,7 @@ PS
_24972 = _15312;
break;
}
- _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14615, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
+ _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14616, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
break;
} while(false);
vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12609]._m12);
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_flashbang_overlay.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -277,7 +277,7 @@ PS
};
Texture2D<float4> g_tFlashbangFrame : register(t53, space1);
- SamplerState g_sPointClamp : register(s18, space1);
+ SamplerState g_sPointClamp : register(s19, space1);
static float4 gl_FragCoord;
static float4 output_0;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_foliage.slang
modified • +440 / -438 • changes: 878
Show patch
@@ -148,7 +148,7 @@ VS
float g_flSpatialIncoherence < Default(0.1); UiType(Slider); UiGroup("Foliage UV Animation"); >;
// SPIR-V reflection failed for backend HLSL:
- // cbuffer ID 5618 (name: _Globals_), member index 3 (name: g_vColorTint) cannot be expressed with either HLSL packing layout or packoffset.
+ // cbuffer ID 5618 (name: _Globals_), member index 0 (name: g_vTexCoordXform0) cannot be expressed with either HLSL packing layout or packoffset.
//
// Re-attempting reflection with the GLSL backend.
@@ -395,7 +395,7 @@ PS
Texture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;
Texture2D g_tTransmissiveColor < Channel(RGB, Box(TextureTransmissiveColor), Srgb); OutputFormat(BC7); SrgbRead(true); >;
Texture2D g_tUvMotionMask < Channel(RGBA, Box(FoliageUvAnimation), Linear); OutputFormat(BC7); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
float4 g_vShadingComplexity < Source(ShadingComplexity); UiType(VectorText); >;
@@ -474,226 +474,242 @@ PS
// Variant parameters
Texture2D g_tColor < Channel(RGB, ArtistDefined(TextureColor), Srgb); OutputFormat(DXT1); SrgbRead(true); >;
+ // SPIR-V reflection failed for backend HLSL:
+ // cbuffer ID 5618 (name: _Globals_), member index 18 (name: g_mTextureColorAdjust) cannot be expressed with either HLSL packing layout or packoffset.
+ //
+ // Re-attempting reflection with the GLSL backend.
+
// Source 2 Viewer - https://valveresourceformat.github.io
- // SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup
+ // SPIR-V source, GLSL reflection with SPIRV-Cross by KhronosGroup
+
+ #version 460
+ #if defined(GL_EXT_control_flow_attributes)
+ #extension GL_EXT_control_flow_attributes : require
+ #define SPIRV_CROSS_FLATTEN [[flatten]]
+ #define SPIRV_CROSS_BRANCH [[dont_flatten]]
+ #define SPIRV_CROSS_UNROLL [[unroll]]
+ #define SPIRV_CROSS_LOOP [[dont_unroll]]
+ #else
+ #define SPIRV_CROSS_FLATTEN
+ #define SPIRV_CROSS_BRANCH
+ #define SPIRV_CROSS_UNROLL
+ #define SPIRV_CROSS_LOOP
+ #endif
+ #extension GL_KHR_shader_subgroup_arithmetic : require
- struct _1289
+ struct _1541
{
- float4 _m0[3];
+ vec4 _m0[3];
};
- struct _1499
+ struct _1751
{
- float4 _m0[4];
+ vec4 _m0[4];
};
- struct _2441
+ struct _546
{
- column_major float4x4 _m0[4];
+ mat4 _m0[4];
};
struct _200
{
- column_major float4x4 _m0;
- column_major float4x4 _m1;
- float4 _m2;
- float4 _m3;
- float4 _m4;
- float4 _m5;
- float3 _m6;
+ mat4 _m0;
+ mat4 _m1;
+ vec4 _m2;
+ vec4 _m3;
+ vec4 _m4;
+ vec4 _m5;
+ vec3 _m6;
uint _m7;
- float4 _m8;
- float4 _m9;
- float4 _m10;
+ vec4 _m8;
+ vec4 _m9;
+ vec4 _m10;
float _m11;
float _m12;
uint _m13;
int _m14;
- column_major float4x3 _m15;
- float4 _m16;
- float4 _m17;
- float4 _m18;
- float4 _m19;
- float4 _m20;
- float3 _m21;
+ mat4x3 _m15;
+ vec4 _m16;
+ vec4 _m17;
+ vec4 _m18;
+ vec4 _m19;
+ vec4 _m20;
+ vec3 _m21;
float _m22;
- column_major float4x4 _m23;
+ mat4 _m23;
};
- static float3 _4;
- static float4 _5;
+ vec3 _4;
+ vec4 _5;
- cbuffer _Globals_ : register(b0, space1)
+ struct _920
{
- uint _Globals_1_g_tColor : packoffset(c0);
- uint _Globals_1_g_sTrilinearWrap : packoffset(c0.w);
- uint _Globals_1_g_sTrilinearClamp : packoffset(c1);
- uint _Globals_1_g_sPointClamp : packoffset(c1.y);
- uint _Globals_1_g_sUserConfig : packoffset(c2);
- uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c2.y);
- uint _Globals_1_g_sCookieSampler : packoffset(c2.w);
- uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c3);
- int _Globals_1_g_bFogEnabled : packoffset(c3.z);
- int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c3.w);
- int _Globals_1_g_bRenderBackfaceNormals : packoffset(c4);
- float _Globals_1_g_flReflectance : packoffset(c4.y);
- uint _Globals_1_g_tNormal : packoffset(c8);
- uint _Globals_1_g_tAmbientOcclusion : packoffset(c8.w);
- float _Globals_1_g_flVertexAmbientOcclusionAmount : packoffset(c11);
- float _Globals_1_g_flVertexAmbientOcclusionPower : packoffset(c11.y);
- float _Globals_1_g_flHeightGradientAmount : packoffset(c11.z);
- float _Globals_1_g_flHeightGradientPower : packoffset(c11.w);
- column_major float4x4 _Globals_1_g_mTextureColorAdjust : packoffset(c14);
- float _Globals_1_g_fTextureRoughnessContrast : packoffset(c30.y);
- float _Globals_1_g_fTextureRoughnessBrightness : packoffset(c30.z);
- float _Globals_1_g_fTextureNormalContrast : packoffset(c31);
+ uint g_tColor;
+ uint g_sTrilinearWrap;
+ uint g_sTrilinearClamp;
+ uint g_sPointClamp;
+ uint g_sUserConfig;
+ uint g_sUserConfigAllowGlobalMipBias;
+ uint g_sCookieSampler;
+ uint g_tShadowDepthBufferCmpSampler;
+ int g_bFogEnabled;
+ int g_bDontFlipBackfaceNormals;
+ int g_bRenderBackfaceNormals;
+ float g_flReflectance;
+ uint g_tNormal;
+ uint g_tAmbientOcclusion;
+ float g_flVertexAmbientOcclusionAmount;
+ float g_flVertexAmbientOcclusionPower;
+ float g_flHeightGradientAmount;
+ float g_flHeightGradientPower;
+ mat4 g_mTextureColorAdjust;
+ float g_fTextureRoughnessContrast;
+ float g_fTextureRoughnessBrightness;
+ float g_fTextureNormalContrast;
};
- cbuffer PerViewConstantBufferCsgo_t : register(b3, space1)
+ layout(set = 1) uniform _920 _Globals_;
+
+ struct _1374
{
- int4 PerViewConstantBufferCsgo_t_1_m0 : packoffset(c1);
- int4 PerViewConstantBufferCsgo_t_1_m1 : packoffset(c2);
- int4 PerViewConstantBufferCsgo_t_1_m2 : packoffset(c3);
- uint PerViewConstantBufferCsgo_t_1_m3 : packoffset(c4.z);
- uint PerViewConstantBufferCsgo_t_1_m4 : packoffset(c4.w);
- uint PerViewConstantBufferCsgo_t_1_m5 : packoffset(c5);
- uint PerViewConstantBufferCsgo_t_1_m6 : packoffset(c5.z);
- uint PerViewConstantBufferCsgo_t_1_m7 : packoffset(c6.z);
- column_major float4x4 PerViewConstantBufferCsgo_t_1_m8 : packoffset(c12);
- float2 PerViewConstantBufferCsgo_t_1_m9 : packoffset(c16);
- float PerViewConstantBufferCsgo_t_1_m10 : packoffset(c16.z);
- float4 PerViewConstantBufferCsgo_t_1_m11 : packoffset(c23);
- float4 PerViewConstantBufferCsgo_t_1_m12 : packoffset(c24);
- float4 PerViewConstantBufferCsgo_t_1_m13 : packoffset(c25);
- float4 PerViewConstantBufferCsgo_t_1_m14 : packoffset(c26);
- float4 PerViewConstantBufferCsgo_t_1_m15 : packoffset(c27);
- float4 PerViewConstantBufferCsgo_t_1_m16 : packoffset(c28);
- column_major float4x4 PerViewConstantBufferCsgo_t_1_m17 : packoffset(c29);
- float4 PerViewConstantBufferCsgo_t_1_m18 : packoffset(c33);
- float4 PerViewConstantBufferCsgo_t_1_m19 : packoffset(c34);
- float4 PerViewConstantBufferCsgo_t_1_m20 : packoffset(c35);
+ ivec4 _m0;
+ ivec4 _m1;
+ ivec4 _m2;
+ uint _m3;
+ uint _m4;
+ uint _m5;
+ uint _m6;
+ uint _m7;
+ mat4 _m8;
+ vec2 _m9;
+ float _m10;
+ vec4 _m11;
+ vec4 _m12;
+ vec4 _m13;
+ vec4 _m14;
+ vec4 _m15;
+ vec4 _m16;
+ mat4 _m17;
+ vec4 _m18;
+ vec4 _m19;
+ vec4 _m20;
};
- cbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)
+ layout(set = 1) uniform _1374 PerViewConstantBufferCsgo_t;
+
+ struct _1768
{
- _1289 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);
- _1499 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);
- float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c16);
- float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c17);
- float4 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c18);
- uint4 PerViewLightingConstantBufferGpu_t_1_m5 : packoffset(c19);
- uint4 PerViewLightingConstantBufferGpu_t_1_m6 : packoffset(c22);
- float4 PerViewLightingConstantBufferGpu_t_1_m7 : packoffset(c23);
- float4 PerViewLightingConstantBufferGpu_t_1_m8 : packoffset(c24);
- float4 PerViewLightingConstantBufferGpu_t_1_m9 : packoffset(c1945);
- float4 PerViewLightingConstantBufferGpu_t_1_m10 : packoffset(c1946);
- int PerViewLightingConstantBufferGpu_t_1_m11 : packoffset(c1953);
- float PerViewLightingConstantBufferGpu_t_1_m12 : packoffset(c1953.z);
- float4 PerViewLightingConstantBufferGpu_t_1_m13 : packoffset(c1954);
- float PerViewLightingConstantBufferGpu_t_1_m14 : packoffset(c1955);
- float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.y);
- float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.z);
- float PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1955.w);
- _2441 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);
- _1499 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);
- uint PerViewLightingConstantBufferGpu_t_1_m20 : packoffset(c1996);
- uint PerViewLightingConstantBufferGpu_t_1_m21 : packoffset(c1996.y);
+ _1541 _m0;
+ _1751 _m1;
+ vec4 _m2;
+ vec4 _m3;
+ vec4 _m4;
+ uvec4 _m5;
+ uvec4 _m6;
+ vec4 _m7;
+ vec4 _m8;
+ vec4 _m9;
+ vec4 _m10;
+ int _m11;
+ float _m12;
+ vec4 _m13;
+ float _m14;
+ float _m15;
+ float _m16;
+ float _m17;
+ _546 _m18;
+ _1751 _m19;
+ uint _m20;
+ uint _m21;
};
- cbuffer PerViewConstantBuffer_t : register(b1, space1)
+ layout(set = 3) uniform _1768 PerViewLightingConstantBufferGpu_t;
+
+ struct _1194
{
- float2 PerViewConstantBuffer_t_1_m0 : packoffset(c20);
- float2 PerViewConstantBuffer_t_1_m1 : packoffset(c20.z);
- float4 PerViewConstantBuffer_t_1_m2 : packoffset(c22);
- float3 PerViewConstantBuffer_t_1_m3 : packoffset(c26);
+ vec2 _m0;
+ vec2 _m1;
+ vec4 _m2;
+ vec3 _m3;
};
- ByteAddressBuffer g_CullBits : register(t30, space3);
- ByteAddressBuffer g_BarnLights : register(t31, space3);
- Texture2D<float4> g_bindless_Texture2D_float4[65536] : register(t46, space4);
- SamplerState g_bindless_Sampler[2048] : register(s29, space4);
- SamplerComparisonState g_bindless_Sampler_1[2048] : register(s29, space4);
- Texture3D<float4> g_bindless_Texture3D_float4[65536] : register(t46, space4);
- TextureCubeArray<float4> g_bindless_TextureCubeArray_float4[65536] : register(t46, space4);
- TextureCube<float4> g_bindless_TextureCube_float4[65536] : register(t46, space4);
-
- static float4 gl_FragCoord;
- static bool gl_FrontFacing;
- static float4 input_0;
- static float3 input_1;
- static float3 input_2;
- static float4 input_3;
- static float4 input_4;
- static float3 input_5;
- static float4 input_6;
- static float4 output_0;
-
- struct PS_INPUT
+ layout(set = 1) uniform _1194 PerViewConstantBuffer_t;
+
+ layout(set = 3, binding = 30, std430) readonly buffer g_CullBits
{
- float4 input_0 : TEXCOORD0;
- float3 input_1 : TEXCOORD1;
- float3 input_2 : TEXCOORD2;
- float4 input_3 : TEXCOORD3;
- centroid float4 input_4 : TEXCOORD4;
- centroid float3 input_5 : TEXCOORD5;
- float4 input_6 : TEXCOORD6;
- float4 gl_FragCoord : SV_Position;
- bool gl_FrontFacing : SV_IsFrontFace;
- };
+ uint _m0[];
+ } g_CullBits_1;
- struct PS_OUTPUT
+ layout(set = 3, binding = 31, std430) readonly buffer g_BarnLights
{
- float4 output_0 : SV_Target0;
- };
+ layout(row_major) _200 _m0[];
+ } g_BarnLights_1;
+
+ layout(set = 4, binding = 46) uniform texture2D g_bindless_Texture2D_float4[65536];
+ layout(set = 4, binding = 29) uniform sampler g_bindless_Sampler[2048];
+ layout(set = 4, binding = 29) uniform samplerShadow g_bindless_Sampler_1[2048];
+ layout(set = 4, binding = 46) uniform texture3D g_bindless_Texture3D_float4[65536];
+ layout(set = 4, binding = 46) uniform textureCubeArray g_bindless_TextureCubeArray_float4[65536];
+ layout(set = 4, binding = 46) uniform textureCube g_bindless_TextureCube_float4[65536];
+
+ layout(location = 0) in vec4 input_0;
+ layout(location = 1) in vec3 input_1;
+ layout(location = 2) in vec3 input_2;
+ layout(location = 3) in vec4 input_3;
+ layout(location = 4) centroid in vec4 input_4;
+ layout(location = 5) centroid in vec3 input_5;
+ layout(location = 6) in vec4 input_6;
+ layout(location = 0) out vec4 output_0;
- void MainPs_inner()
+ void main()
{
- float4 _11408 = gl_FragCoord;
- _11408.w = 1.0f / _11408.w;
- float4 _24079 = clamp(input_0, 0.001000000047497451305389404296875f.xxxx, 1.0f.xxxx);
- float3 _21709;
- if (dot(input_2.xyz, input_2.xyz) >= 1.0099999904632568359375f)
+ vec4 _11408 = gl_FragCoord;
+ _11408.w = 1.0 / _11408.w;
+ vec4 _24079 = clamp(input_0, vec4(0.001000000047497451305389404296875), vec4(1.0));
+ vec3 _21709;
+ if (dot(input_2.xyz, input_2.xyz) >= 1.0099999904632568359375)
{
_21709 = input_5.xyz;
}
else
{
_21709 = input_2.xyz;
}
- bool _14874 = _Globals_1_g_bRenderBackfaceNormals != 0;
+ bool _14874 = _Globals_.g_bRenderBackfaceNormals != 0;
bool _12885;
if (_14874)
{
- _12885 = _Globals_1_g_bDontFlipBackfaceNormals == 0;
+ _12885 = _Globals_.g_bDontFlipBackfaceNormals == 0;
}
else
{
_12885 = false;
}
- float3 _10251;
- [branch]
+ vec3 _10251;
+ SPIRV_CROSS_BRANCH
if (_12885)
{
- _10251 = _21709 * (gl_FrontFacing ? 1.0f : (-1.0f));
+ _10251 = _21709 * (gl_FrontFacing ? 1.0 : (-1.0));
}
else
{
_10251 = _21709;
}
- float3 _24347 = normalize(_10251);
- float3 _10061 = input_1 + PerViewConstantBufferCsgo_t_1_m20.xyz;
- float4 _19334 = g_bindless_Texture2D_float4[_Globals_1_g_tColor].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfigAllowGlobalMipBias], input_3.xy);
- float4 _19068 = g_bindless_Texture2D_float4[_Globals_1_g_tAmbientOcclusion].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfig], float2(input_3.xy).xy);
- float4 _19372 = g_bindless_Texture2D_float4[_Globals_1_g_tNormal].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfig], input_3.xy);
+ vec3 _24347 = normalize(_10251);
+ vec3 _10061 = input_1 + PerViewConstantBufferCsgo_t._m20.xyz;
+ vec4 _19334 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tColor], g_bindless_Sampler[_Globals_.g_sUserConfigAllowGlobalMipBias]), input_3.xy);
+ vec4 _19068 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tAmbientOcclusion], g_bindless_Sampler[_Globals_.g_sUserConfig]), vec2(input_3.xy).xy);
+ vec4 _19372 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tNormal], g_bindless_Sampler[_Globals_.g_sUserConfig]), input_3.xy);
float _16000 = _19372.x;
float _19720 = _19372.y;
- float _16783 = (_16000 + _19720) - 1.00392162799835205078125f;
+ float _16783 = (_16000 + _19720) - 1.00392162799835205078125;
float _11176 = _16000 - _19720;
- float3 _8418 = normalize(float3(float2(_16783, _11176), (1.0f - abs(_16783)) - abs(_11176)));
+ vec3 _8418 = normalize(vec3(vec2(_16783, _11176), (1.0 - abs(_16783)) - abs(_11176)));
bool _12886;
if (_14874)
{
- _12886 = _Globals_1_g_bDontFlipBackfaceNormals == 0;
+ _12886 = _Globals_.g_bDontFlipBackfaceNormals == 0;
}
else
{
@@ -708,12 +724,12 @@ PS
{
_24327 = false;
}
- float3 _12631 = input_2.xyz * (_24327 ? (-1.0f) : 1.0f);
- float _23240 = (input_6.w > 0.0f) ? 1.0f : (-1.0f);
- float3 _14435 = cross(_12631.xyz, input_6.xyz) * _23240;
- bool4 _24464 = bool4(PerViewConstantBufferCsgo_t_1_m2.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m2.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m2.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m2.w != int4(0, 0, 0, 0).w);
+ vec3 _12631 = input_2.xyz * (_24327 ? (-1.0) : 1.0);
+ float _23240 = (input_6.w > 0.0) ? 1.0 : (-1.0);
+ vec3 _14435 = cross(_12631.xyz, input_6.xyz) * _23240;
+ bvec4 _24464 = notEqual(PerViewConstantBufferCsgo_t._m2, ivec4(0));
bool _20058 = _24464.w;
- float3 _7424;
+ vec3 _7424;
if (_20058)
{
_7424 = -_14435;
@@ -722,31 +738,31 @@ PS
{
_7424 = _14435;
}
- float3 _20480;
+ vec3 _20480;
if (!_24327)
{
- float3 _7482 = _8418;
+ vec3 _7482 = _8418;
_7482.y = -_8418.y;
_20480 = _7482;
}
else
{
_20480 = _8418;
}
- float3 _8357 = _Globals_1_g_flReflectance.xxx;
- float3 _21710;
- [branch]
- if (_Globals_1_g_fTextureNormalContrast != 1.0f)
+ vec3 _8357 = vec3(_Globals_.g_flReflectance);
+ vec3 _21710;
+ SPIRV_CROSS_BRANCH
+ if (_Globals_.g_fTextureNormalContrast != 1.0)
{
- float2 _8828 = _20480.yx * _Globals_1_g_fTextureNormalContrast;
+ vec2 _8828 = _20480.yx * _Globals_.g_fTextureNormalContrast;
float _16674 = _8828.x;
- float3 _8673 = _20480;
+ vec3 _8673 = _20480;
_8673.y = _16674;
_8673.x = _8828.y;
bool _12887;
if (_14874)
{
- _12887 = _Globals_1_g_bDontFlipBackfaceNormals == 0;
+ _12887 = _Globals_.g_bDontFlipBackfaceNormals == 0;
}
else
{
@@ -761,9 +777,9 @@ PS
{
_24328 = false;
}
- float3 _9739 = input_2.xyz * (_24328 ? (-1.0f) : 1.0f);
- float3 _24682 = cross(_9739.xyz, input_6.xyz) * _23240;
- float3 _7425;
+ vec3 _9739 = input_2.xyz * (_24328 ? (-1.0) : 1.0);
+ vec3 _24682 = cross(_9739.xyz, input_6.xyz) * _23240;
+ vec3 _7425;
if (_20058)
{
_7425 = -_24682;
@@ -772,10 +788,10 @@ PS
{
_7425 = _24682;
}
- float3 _20481;
+ vec3 _20481;
if (!_24328)
{
- float3 _16556 = _8673;
+ vec3 _16556 = _8673;
_16556.y = -_16674;
_20481 = _16556;
}
@@ -789,234 +805,241 @@ PS
{
_21710 = normalize((((input_6.xyz * _20480.x).xyz + (_7424.xyz * _20480.y)).xyz + (_12631.xyz * _20480.z)).xyz);
}
- bool3 _15080 = all(bool3(true, true, true)).xxx;
- float3 _17892 = float3(_15080.x ? _21710.x : 1.0f.xxx.x, _15080.y ? _21710.y : 1.0f.xxx.y, _15080.z ? _21710.z : 1.0f.xxx.z);
- float3 _10560 = _24347.xyz;
- float3 _11099 = ddx(_10560);
- float3 _9175 = ddy(_10560);
- float3 _10347 = _11099.xyz;
- float3 _12420 = _9175.xyz;
- float2 _21813 = max(clamp((((_19372.zz - 0.5f.xx) * _Globals_1_g_fTextureRoughnessContrast) + 0.5f.xx).xy * _Globals_1_g_fTextureRoughnessBrightness, 0.0f.xx, 1.0f.xx).xy, pow(saturate(max(dot(_10347, _10347), dot(_12420, _12420))), 0.333000004291534423828125f).xx);
- float3 _15598 = -_24347;
- float4 _23875 = float4(_21710.xyz, 1.0f);
- bool4 _24465 = bool4(PerViewConstantBufferCsgo_t_1_m0.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m0.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m0.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m0.w != int4(0, 0, 0, 0).w);
+ vec3 _17892 = mix(vec3(1.0), _21710, bvec3(all(bvec3(true))));
+ vec3 _10560 = _24347.xyz;
+ vec3 _11099 = dFdx(_10560);
+ vec3 _9175 = dFdy(_10560);
+ vec3 _10347 = _11099.xyz;
+ vec3 _12420 = _9175.xyz;
+ vec2 _21813 = max(saturate((((_19372.zz - vec2(0.5)) * _Globals_.g_fTextureRoughnessContrast) + vec2(0.5)).xy * _Globals_.g_fTextureRoughnessBrightness).xy, vec2(pow(saturate(max(dot(_10347, _10347), dot(_12420, _12420))), 0.333000004291534423828125)));
+ vec3 _15598 = -_24347;
+ vec4 _23875 = vec4(_21710.xyz, 1.0);
+ bvec4 _24465 = notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0));
float _21711;
if (_24465.x)
{
- float3 _11394 = _24347.xyz;
- float2 _11086 = ((floor(_11408.xy * PerViewConstantBufferCsgo_t_1_m10) * PerViewConstantBufferCsgo_t_1_m9.xy) + (PerViewConstantBufferCsgo_t_1_m9.xy * 0.5f)).xy;
- float4 _18418 = g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m5].GatherRed(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _11086).xyzw - _11408.zzzz;
+ vec3 _11394 = _24347.xyz;
+ vec2 _11086 = ((floor(_11408.xy * PerViewConstantBufferCsgo_t._m10) * PerViewConstantBufferCsgo_t._m9.xy) + (PerViewConstantBufferCsgo_t._m9.xy * 0.5)).xy;
+ vec4 _18418 = textureGather(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m5], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _11086).xyzw - _11408.zzzz;
float _18579 = _18418.w;
float _12013 = _18418.z;
bool _12285 = abs(_12013) < _18579;
- float2 _23168;
+ vec2 _23168;
if (_12285)
{
- _23168 = float2(PerViewConstantBufferCsgo_t_1_m9.x, 0.0f);
+ _23168 = vec2(PerViewConstantBufferCsgo_t._m9.x, 0.0);
}
else
{
- _23168 = 0.0f.xx;
+ _23168 = vec2(0.0);
}
float _20965 = _12285 ? _12013 : _18579;
float _15372 = _18418.x;
bool _12286 = abs(_15372) < _20965;
- float2 _23169;
+ vec2 _23169;
if (_12286)
{
- _23169 = float2(0.0f, PerViewConstantBufferCsgo_t_1_m9.y);
+ _23169 = vec2(0.0, PerViewConstantBufferCsgo_t._m9.y);
}
else
{
_23169 = _23168;
}
- bool2 _13083 = (abs(_18418.y) < (_12286 ? _15372 : _20965)).xx;
- float4 _10010 = normalize(float4(PerViewLightingConstantBufferGpu_t_1_m2.x * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[0].xy, 0.25f))), 0.5f, 0.5f), PerViewLightingConstantBufferGpu_t_1_m2.y * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[1].xy, 0.25f))), 0.5f, 0.5f), PerViewLightingConstantBufferGpu_t_1_m2.z * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[2].xy, 0.25f))), 0.5f, 0.5f), PerViewLightingConstantBufferGpu_t_1_m2.w * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[3].xy, 0.25f))), 0.5f, 0.5f)));
- float4 _13232 = max(float4(dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[0].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[1].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[2].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[3].xyz, _11394)).xyzw, 0.0f.xxxx) * normalize(clamp(((_10010 - max(max(_10010.x, _10010.y), max(_10010.z, _10010.w)).xxxx) + 0.20000000298023223876953125f.xxxx) * 5.0f.xxxx, 0.0f.xxxx, 1.0f.xxxx));
- _21711 = (1.0f / (dot(_13232, 1.0f.xxxx) + PerViewLightingConstantBufferGpu_t_1_m3.x)) * (PerViewLightingConstantBufferGpu_t_1_m3.x + dot(_13232, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m4].SampleLevel(g_bindless_Sampler[_Globals_1_g_sPointClamp], (_11086 + float2(_13083.x ? PerViewConstantBufferCsgo_t_1_m9.xy.x : _23169.x, _13083.y ? PerViewConstantBufferCsgo_t_1_m9.xy.y : _23169.y).xy).xy, 0.0f)));
+ vec4 _10010 = normalize(vec4(PerViewLightingConstantBufferGpu_t._m2.x * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[0].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m2.y * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[1].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m2.z * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[2].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m2.w * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[3].xy, 0.25))), 0.5, 0.5)));
+ vec4 _13232 = max(vec4(dot(PerViewLightingConstantBufferGpu_t._m1._m0[0].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m1._m0[1].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m1._m0[2].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m1._m0[3].xyz, _11394)).xyzw, vec4(0.0)) * normalize(saturate(((_10010 - vec4(max(max(_10010.x, _10010.y), max(_10010.z, _10010.w)))) + vec4(0.20000000298023223876953125)) * vec4(5.0)));
+ _21711 = (1.0 / (dot(_13232, vec4(1.0)) + PerViewLightingConstantBufferGpu_t._m3.x)) * (PerViewLightingConstantBufferGpu_t._m3.x + dot(_13232, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], g_bindless_Sampler[_Globals_.g_sPointClamp]), (_11086 + mix(_23169, PerViewConstantBufferCsgo_t._m9.xy, bvec2(abs(_18418.y) < (_12286 ? _15372 : _20965))).xy).xy, 0.0)));
}
else
{
- _21711 = 1.0f;
+ _21711 = 1.0;
}
- float _21712;
- [branch]
- if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _21710.xyz);
+ float _12320;
+ SPIRV_CROSS_BRANCH
+ if (_8634 > 0.0)
{
- int _23989;
- int _10191;
- float _13136;
- float3 _14975;
- int _13039 = 0;
- for (;;)
+ float _12503;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m11 != 0)
{
- if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))
+ int _23989;
+ int _10191;
+ float _13136;
+ vec3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- _13136 = 1.0f;
- _14975 = 0.0f.xxx;
- _10191 = -1;
- break;
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t._m11))
+ {
+ _13136 = 1.0;
+ _14975 = vec3(0.0);
+ _10191 = -1;
+ break;
+ }
+ vec4 _18322 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_13039];
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m13[_13039])
+ {
+ vec3 _19470 = vec3(_12779, _18322.yz);
+ vec2 _24804 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m15)) + vec2(PerViewLightingConstantBufferGpu_t._m14));
+ vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_13039].xy;
+ vec3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13136 = saturate(_22193.x * _22193.y);
+ _14975 = _20488;
+ _10191 = _13039;
+ break;
+ }
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
}
- float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_1.xyz, 1.0f));
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])
+ float _19363;
+ if (_10191 >= 0)
{
- float3 _19470 = float3(_12779, _18322.yz);
- float2 _24804 = _19470.xy;
- float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);
- float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;
- float3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13136 = saturate(_22193.x * _22193.y);
- _14975 = _20488;
- _10191 = _13039;
- break;
- }
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
- {
- float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12));
- float _12501;
- [branch]
- if (_13136 < 1.0f)
- {
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))
+ float _18270 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);
+ float _12501;
+ SPIRV_CROSS_BRANCH
+ if (_13136 < 1.0)
{
- int _15335 = _10191 + 1;
- float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_1.xyz, 1.0f));
- float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;
- float3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12));
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m11 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19671 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_15335];
+ vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_15335].xy;
+ vec3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ _7934 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);
+ }
+ else
+ {
+ _7934 = 1.0;
+ }
+ _12501 = mix(_7934, _18270, _13136);
}
else
{
- _7934 = 1.0f;
+ _12501 = _18270;
}
- _12501 = lerp(_7934, _18270, _13136);
+ _19363 = _12501;
}
else
{
- _12501 = _18270;
+ _19363 = 1.0;
}
- _19363 = _12501;
- }
- else
- {
- _19363 = 1.0f;
- }
- float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));
- float _12502;
- if (_24465.y)
- {
- _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);
+ float _13279 = mix(_19363, 1.0, saturate((distance(_10061.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m17) + PerViewLightingConstantBufferGpu_t._m16));
+ float _12502;
+ if (_24465.y)
+ {
+ _12502 = min(_13279, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m6], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12502 = _13279;
+ }
+ _12503 = _12502;
}
else
{
- _12502 = _13279;
+ _12503 = 1.0;
}
- _21712 = _12502;
+ _12320 = _12503;
}
else
{
- _21712 = 1.0f;
+ _12320 = 1.0;
}
- float3 _9716;
- float3 _24878;
- [branch]
- if ((dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _21710.xyz) * _21712) > 0.0f)
+ vec3 _9716;
+ vec3 _24878;
+ SPIRV_CROSS_BRANCH
+ if ((_8634 * _12320) > 0.0)
{
- bool3 _19899 = all(bool3(_17892.x == 1.0f.xxx.x, _17892.y == 1.0f.xxx.y, _17892.z == 1.0f.xxx.z)).xxx;
- float _11797 = max(0.0f, dot(_21710.xyz, PerViewLightingConstantBufferGpu_t_1_m9.xyz));
- float2 _9840 = max(_21813, PerViewLightingConstantBufferGpu_t_1_m9.w.xx);
- float3 _12281 = normalize(PerViewLightingConstantBufferGpu_t_1_m9.xyz + (-normalize(_10061.xyz - PerViewConstantBuffer_t_1_m3.xyz)).xyz).xyz;
- float _12386 = dot(_12281, float3(_19899.x ? _21710.xyz.x : _17892.x, _19899.y ? _21710.xyz.y : _17892.y, _19899.z ? _21710.xyz.z : _17892.z).xyz);
- float _19210 = max(0.0f, dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _12281));
+ float _11797 = max(0.0, dot(_21710.xyz, PerViewLightingConstantBufferGpu_t._m9.xyz));
+ vec2 _9840 = max(_21813, vec2(PerViewLightingConstantBufferGpu_t._m9.w));
+ vec3 _12281 = normalize(PerViewLightingConstantBufferGpu_t._m9.xyz + (-normalize(_10061.xyz - PerViewConstantBuffer_t._m3.xyz)).xyz).xyz;
+ float _12386 = dot(_12281, mix(_17892, _21710.xyz, bvec3(all(equal(_17892, vec3(1.0))))).xyz);
+ float _19210 = max(0.0, dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _12281));
float _9850 = _9840.x;
float _25211 = _9850 * _9850;
float _19095 = _25211 * _25211;
- float _15346 = ((_12386 * _12386) * (_19095 - 1.0f)) + 1.0f;
- float3 _16808 = (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _21712).xyz;
- _9716 = ((_8357.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0f) + 2.0f)))).xyz * _11797).xyz * _16808;
- _24878 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (_11797.xxx.xyz * _16808);
+ float _15346 = ((_12386 * _12386) * (_19095 - 1.0)) + 1.0;
+ vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m10.xyz * _12320).xyz;
+ _9716 = ((_8357.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0) + 2.0)))).xyz * _11797).xyz * _16808;
+ _24878 = PerViewLightingConstantBufferGpu_t._m4.xyz + (vec3(_11797).xyz * _16808);
}
else
{
- _9716 = 0.0f.xxx;
- _24878 = PerViewLightingConstantBufferGpu_t_1_m4.xyz;
+ _9716 = vec3(0.0);
+ _24878 = PerViewLightingConstantBufferGpu_t._m4.xyz;
}
- bool4 _24466 = bool4(PerViewConstantBufferCsgo_t_1_m1.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m1.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m1.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m1.w != int4(0, 0, 0, 0).w);
+ bvec4 _24466 = notEqual(PerViewConstantBufferCsgo_t._m1, ivec4(0));
bool _20060 = _24466.x;
- float4 _19364;
+ vec4 _19364;
if (_20060)
{
- float4 _18621 = mul(PerViewConstantBufferCsgo_t_1_m8, float4(_10061.xyz, 1.0f).xyzw);
+ vec4 _18621 = vec4(_10061.xyz, 1.0).xyzw * PerViewConstantBufferCsgo_t._m8;
float _20176 = _18621.w;
- float2 _11414 = _18621.xy / _20176.xx;
- float4 _6651;
- _6651.x = clamp(((_11414.x + 1.0f) * PerViewConstantBuffer_t_1_m1.x) * 0.5f, 0.0f, PerViewConstantBuffer_t_1_m1.x - 1.0f);
- _6651.y = clamp(((1.0f - _11414.y) * PerViewConstantBuffer_t_1_m1.y) * 0.5f, 0.0f, PerViewConstantBuffer_t_1_m1.y - 1.0f);
+ vec2 _11414 = _18621.xy / vec2(_20176);
+ vec4 _6651;
+ _6651.x = clamp(((_11414.x + 1.0) * PerViewConstantBuffer_t._m1.x) * 0.5, 0.0, PerViewConstantBuffer_t._m1.x - 1.0);
+ _6651.y = clamp(((1.0 - _11414.y) * PerViewConstantBuffer_t._m1.y) * 0.5, 0.0, PerViewConstantBuffer_t._m1.y - 1.0);
_6651.w = _20176;
_19364 = _6651;
}
else
{
_19364 = _11408;
}
- uint2 _12083 = uint2(_19364.xy - PerViewConstantBuffer_t_1_m0.xy) >> PerViewLightingConstantBufferGpu_t_1_m6.x.xx;
- uint _10838 = PerViewLightingConstantBufferGpu_t_1_m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t_1_m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t_1_m5.z);
- uint _23393 = PerViewLightingConstantBufferGpu_t_1_m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t_1_m7.x, 0.0f, PerViewLightingConstantBufferGpu_t_1_m7.y)) * PerViewLightingConstantBufferGpu_t_1_m5.z);
- float3 _13137;
- float3 _16324;
+ uvec2 _12083 = uvec2(_19364.xy - PerViewConstantBuffer_t._m0.xy) >> uvec2(PerViewLightingConstantBufferGpu_t._m6.x);
+ uint _10838 = PerViewLightingConstantBufferGpu_t._m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t._m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t._m5.z);
+ uint _23393 = PerViewLightingConstantBufferGpu_t._m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t._m7.x, 0.0, PerViewLightingConstantBufferGpu_t._m7.y)) * PerViewLightingConstantBufferGpu_t._m5.z);
+ vec3 _13137;
+ vec3 _16324;
_13137 = _9716;
_16324 = _24878;
uint _21567;
- float3 _13138;
- float3 _16325;
+ vec3 _13138;
+ vec3 _16325;
uint _17017 = 0u;
for (;;)
{
- if (!(_17017 < PerViewLightingConstantBufferGpu_t_1_m5.z))
+ if (!(_17017 < PerViewLightingConstantBufferGpu_t._m5.z))
{
break;
}
- uint _14475 = WaveActiveBitOr(g_CullBits.Load<uint>((_10838 + _17017) * 4 + 0) & g_CullBits.Load<uint>((_23393 + _17017) * 4 + 0));
+ uint _14475 = subgroupOr(g_CullBits_1._m0[_10838 + _17017] & g_CullBits_1._m0[_23393 + _17017]);
_13138 = _13137;
_16325 = _16324;
uint _20344;
- float3 _13212;
- float3 _15670;
+ vec3 _13212;
+ vec3 _15670;
uint _17018 = _14475;
for (;;)
{
if (!(_17018 != 0u))
{
break;
}
- int _12608 = int(firstbitlow(_17018) + (_17017 * 32u));
+ int _12608 = int(uint(findLSB(_17018)) + (_17017 * 32u));
_20344 = _17018 & (_17018 - 1u);
do
{
- float4x4 _14097 = float4x4(g_BarnLights.Load<float>(_12608 * 480 + 0), g_BarnLights.Load<float>(_12608 * 480 + 16), g_BarnLights.Load<float>(_12608 * 480 + 32), g_BarnLights.Load<float>(_12608 * 480 + 48), g_BarnLights.Load<float>(_12608 * 480 + 4), g_BarnLights.Load<float>(_12608 * 480 + 20), g_BarnLights.Load<float>(_12608 * 480 + 36), g_BarnLights.Load<float>(_12608 * 480 + 52), g_BarnLights.Load<float>(_12608 * 480 + 8), g_BarnLights.Load<float>(_12608 * 480 + 24), g_BarnLights.Load<float>(_12608 * 480 + 40), g_BarnLights.Load<float>(_12608 * 480 + 56), g_BarnLights.Load<float>(_12608 * 480 + 12), g_BarnLights.Load<float>(_12608 * 480 + 28), g_BarnLights.Load<float>(_12608 * 480 + 44), g_BarnLights.Load<float>(_12608 * 480 + 60));
- float4 _24893 = mul(float4(input_1.xyz, 1.0f), _14097);
- float3 _10521 = _24893.xyz / _24893.w.xxx;
- float4 _22905;
+ vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(input_1.xyz, 1.0);
+ vec3 _10521 = _24893.xyz / vec3(_24893.w);
+ vec4 _22905;
_22905.x = _10521.x;
_22905.y = _10521.y;
float _21776 = _10521.z;
_22905.z = _21776;
- float3 _21642 = _22905.xyz;
+ vec3 _21642 = _22905.xyz;
bool _7426;
- if (all(bool3(_22905.xyz.x > float3(-1.0f, -1.0f, 0.0f).x, _22905.xyz.y > float3(-1.0f, -1.0f, 0.0f).y, _22905.xyz.z > float3(-1.0f, -1.0f, 0.0f).z)))
+ if (all(greaterThan(_22905.xyz, vec3(-1.0, -1.0, 0.0))))
{
- _7426 = all(bool3(_22905.xyz.x < 1.0f.xxx.x, _22905.xyz.y < 1.0f.xxx.y, _22905.xyz.z < 1.0f.xxx.z));
+ _7426 = all(lessThan(_22905.xyz, vec3(1.0)));
}
else
{
@@ -1029,113 +1052,111 @@ PS
}
else
{
- float4x3 _16509 = float4x3(g_BarnLights.Load<float>(_12608 * 480 + 272), g_BarnLights.Load<float>(_12608 * 480 + 288), g_BarnLights.Load<float>(_12608 * 480 + 304), g_BarnLights.Load<float>(_12608 * 480 + 276), g_BarnLights.Load<float>(_12608 * 480 + 292), g_BarnLights.Load<float>(_12608 * 480 + 308), g_BarnLights.Load<float>(_12608 * 480 + 280), g_BarnLights.Load<float>(_12608 * 480 + 296), g_BarnLights.Load<float>(_12608 * 480 + 312), g_BarnLights.Load<float>(_12608 * 480 + 284), g_BarnLights.Load<float>(_12608 * 480 + 300), g_BarnLights.Load<float>(_12608 * 480 + 316));
- float3 _6368 = abs(mul(float4(input_1.xyz, 1.0f), _16509).xyz);
- _12888 = !all(bool3(_6368.x <= 1.0f.xxx.x, _6368.y <= 1.0f.xxx.y, _6368.z <= 1.0f.xxx.z));
+ _12888 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(input_1.xyz, 1.0)).xyz), vec3(1.0)));
}
if (_12888)
{
_13212 = _13138;
_15670 = _16325;
break;
}
- float _23572 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;
- float _18492 = (2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).z) * g_BarnLights.Load<float4>(_12608 * 480 + 176).z;
- float _14805 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).x;
- float _9058 = _14805 * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;
- float _17330 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).w;
- float _19825 = _17330 * g_BarnLights.Load<float4>(_12608 * 480 + 176).z;
- float3 _16268 = float3(_9058 - _19825, (1.0f - (_14805 * g_BarnLights.Load<float4>(_12608 * 480 + 176).x)) - _18492, (_23572 * g_BarnLights.Load<float4>(_12608 * 480 + 176).z) + (_17330 * g_BarnLights.Load<float4>(_12608 * 480 + 176).x)) * g_BarnLights.Load<float3>(_12608 * 480 + 192).z;
+ float _23572 = 2.0 * g_BarnLights_1._m0[_12608]._m5.y;
+ float _18492 = (2.0 * g_BarnLights_1._m0[_12608]._m5.z) * g_BarnLights_1._m0[_12608]._m5.z;
+ float _14805 = 2.0 * g_BarnLights_1._m0[_12608]._m5.x;
+ float _9058 = _14805 * g_BarnLights_1._m0[_12608]._m5.y;
+ float _17330 = 2.0 * g_BarnLights_1._m0[_12608]._m5.w;
+ float _19825 = _17330 * g_BarnLights_1._m0[_12608]._m5.z;
+ vec3 _16268 = vec3(_9058 - _19825, (1.0 - (_14805 * g_BarnLights_1._m0[_12608]._m5.x)) - _18492, (_23572 * g_BarnLights_1._m0[_12608]._m5.z) + (_17330 * g_BarnLights_1._m0[_12608]._m5.x)) * g_BarnLights_1._m0[_12608]._m6.z;
float _21316;
- if (g_BarnLights.Load<float4>(_12608 * 480 + 144).z > 0.0f)
+ if (g_BarnLights_1._m0[_12608]._m3.z > 0.0)
{
- _21316 = min(1.0f, _21776 * g_BarnLights.Load<float4>(_12608 * 480 + 144).z);
+ _21316 = min(1.0, _21776 * g_BarnLights_1._m0[_12608]._m3.z);
}
else
{
- _21316 = 1.0f;
+ _21316 = 1.0;
}
float _19667;
- if (g_BarnLights.Load<float4>(_12608 * 480 + 144).w > 0.0f)
+ if (g_BarnLights_1._m0[_12608]._m3.w > 0.0)
{
- _19667 = _21316 * min(1.0f, (1.0f - _21776) * g_BarnLights.Load<float4>(_12608 * 480 + 144).w);
+ _19667 = _21316 * min(1.0, (1.0 - _21776) * g_BarnLights_1._m0[_12608]._m3.w);
}
else
{
_19667 = _21316;
}
- float3 _11179;
+ vec3 _11179;
float _11633;
- if (g_BarnLights.Load<float4>(_12608 * 480 + 128).w != 0.0f)
+ if (g_BarnLights_1._m0[_12608]._m2.w != 0.0)
{
- float3 _10017 = g_BarnLights.Load<float4>(_12608 * 480 + 128).xyz - input_1.xyz;
+ vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - input_1.xyz;
float _18345 = dot(_10017, _10017);
float _17647 = sqrt(_18345);
- float3 _12302 = _10017 - _16268;
- float3 _10210;
+ vec3 _12302 = _10017 - _16268;
+ vec3 _10210;
do
{
- float3 _20229 = (_10017 + _16268) - _12302;
+ vec3 _20229 = (_10017 + _16268) - _12302;
float _25105 = dot(-_12302, _20229);
- if (_25105 <= 0.0f)
+ if (_25105 <= 0.0)
{
_10210 = _12302;
break;
}
else
{
- _10210 = _12302 + (_20229 * min(1.0f, _25105 / dot(_20229, _20229)));
+ _10210 = _12302 + (_20229 * min(1.0, _25105 / dot(_20229, _20229)));
break;
}
break; // unreachable workaround
} while(false);
- _11179 = _10017 / _17647.xxx;
- _11633 = ((_19667 * (g_BarnLights.Load<float4>(_12608 * 480 + 128).w / max(_18345, g_BarnLights.Load<float4>(_12608 * 480 + 128).w))) * saturate(g_BarnLights.Load<float4>(_12608 * 480 + 144).x + (g_BarnLights.Load<float4>(_12608 * 480 + 144).y * _17647))) * saturate(g_BarnLights.Load<float3>(_12608 * 480 + 192).x + (g_BarnLights.Load<float3>(_12608 * 480 + 192).y * dot(float3((1.0f - (_23572 * g_BarnLights.Load<float4>(_12608 * 480 + 176).y)) - _18492, _9058 + _19825, (_14805 * g_BarnLights.Load<float4>(_12608 * 480 + 176).z) - (_17330 * g_BarnLights.Load<float4>(_12608 * 480 + 176).y)), normalize(_10210))));
+ _11179 = _10017 / vec3(_17647);
+ _11633 = ((_19667 * (g_BarnLights_1._m0[_12608]._m2.w / max(_18345, g_BarnLights_1._m0[_12608]._m2.w))) * saturate(g_BarnLights_1._m0[_12608]._m3.x + (g_BarnLights_1._m0[_12608]._m3.y * _17647))) * saturate(g_BarnLights_1._m0[_12608]._m6.x + (g_BarnLights_1._m0[_12608]._m6.y * dot(vec3((1.0 - (_23572 * g_BarnLights_1._m0[_12608]._m5.y)) - _18492, _9058 + _19825, (_14805 * g_BarnLights_1._m0[_12608]._m5.z) - (_17330 * g_BarnLights_1._m0[_12608]._m5.y)), normalize(_10210))));
}
else
{
- _11179 = g_BarnLights.Load<float4>(_12608 * 480 + 128).xyz;
+ _11179 = g_BarnLights_1._m0[_12608]._m2.xyz;
_11633 = _19667;
}
- float3 _17828 = (g_BarnLights.Load<float4>(_12608 * 480 + 160).xyz * 1.0f).xyz * _11633;
+ vec3 _17828 = (g_BarnLights_1._m0[_12608]._m4.xyz * 1.0).xyz * _11633;
bool _24419;
- if (g_BarnLights.Load<float4>(_12608 * 480 + 208).z > 0.0f)
+ if (g_BarnLights_1._m0[_12608]._m8.z > 0.0)
{
_24419 = !_20060;
}
else
{
_24419 = false;
}
- float3 _21548;
- [branch]
- if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w == 0.0f)
+ vec3 _21548;
+ SPIRV_CROSS_BRANCH
+ if (g_BarnLights_1._m0[_12608]._m4.w == 0.0)
{
float _10342;
do
{
- float2 _22154 = abs(_22905.xy);
- if (g_BarnLights.Load<float4>(_12608 * 480 + 224).z == 0.0f)
+ vec2 _22154 = abs(_22905.xy);
+ if (g_BarnLights_1._m0[_12608]._m9.z == 0.0)
{
- _10342 = smoothstep(1.0f, g_BarnLights.Load<float4>(_12608 * 480 + 224).x, _22154.x) * smoothstep(1.0f, g_BarnLights.Load<float4>(_12608 * 480 + 224).y, _22154.y);
+ _10342 = smoothstep(1.0, g_BarnLights_1._m0[_12608]._m9.x, _22154.x) * smoothstep(1.0, g_BarnLights_1._m0[_12608]._m9.y, _22154.y);
break;
}
else
{
float _11473 = _22154.x;
- float _15266 = 2.0f / g_BarnLights.Load<float4>(_12608 * 480 + 224).z;
+ float _15266 = 2.0 / g_BarnLights_1._m0[_12608]._m9.z;
float _15019 = _22154.y;
- float _23041 = (-0.5f) * g_BarnLights.Load<float4>(_12608 * 480 + 224).z;
- float _11981 = (g_BarnLights.Load<float4>(_12608 * 480 + 224).x * g_BarnLights.Load<float4>(_12608 * 480 + 224).y) * pow(max(pow(g_BarnLights.Load<float4>(_12608 * 480 + 224).y * _11473, _15266) + pow(g_BarnLights.Load<float4>(_12608 * 480 + 224).x * _15019, _15266), 1.1754943508222875079687365372222e-38f), _23041);
- float _16524 = pow(max(pow(_11473, _15266) + pow(_15019, _15266), 1.1754943508222875079687365372222e-38f), _23041);
+ float _23041 = (-0.5) * g_BarnLights_1._m0[_12608]._m9.z;
+ float _11981 = (g_BarnLights_1._m0[_12608]._m9.x * g_BarnLights_1._m0[_12608]._m9.y) * pow(max(pow(g_BarnLights_1._m0[_12608]._m9.y * _11473, _15266) + pow(g_BarnLights_1._m0[_12608]._m9.x * _15019, _15266), 1.1754943508222875079687365372222e-38), _23041);
+ float _16524 = pow(max(pow(_11473, _15266) + pow(_15019, _15266), 1.1754943508222875079687365372222e-38), _23041);
if (_11981 < _16524)
{
- _10342 = smoothstep(_16524, _11981, 1.0f);
+ _10342 = smoothstep(_16524, _11981, 1.0);
break;
}
else
{
- _10342 = float(_16524 > 1.0f);
+ _10342 = float(_16524 > 1.0);
break;
}
break; // unreachable workaround
@@ -1146,49 +1167,49 @@ PS
}
else
{
- float3 _12503;
- if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)
+ vec3 _12504;
+ if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)
{
- float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);
- float4 _19008 = _17795.xyzw * float4(-1.0f, -1.0f, -1.0f, 1.0f);
- float3 _24989 = _19008.xyz;
- float3 _23629 = float4((-_11179).xyz, 0.0f).xyz;
+ vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);
+ vec4 _19008 = _17795.xyzw * vec4(-1.0, -1.0, -1.0, 1.0);
+ vec3 _24989 = _19008.xyz;
+ vec3 _23629 = vec4((-_11179).xyz, 0.0).xyz;
float _15156 = -dot(_23629, _24989);
- float3 _20479 = float4((_23629 * _19008.w) + cross(_23629, _24989), _15156).xyz;
- float3 _23592 = _17795.xyz;
- float3 _12170 = ((_20479 * g_BarnLights.Load<float4>(_12608 * 480 + 176).w) + (_23592 * _15156)) + cross(_23592, _20479);
- float3 _14081 = float3(float2(atan2(_12170.y, -_12170.x) * 0.15915493667125701904296875f, acos(_12170.z) * 0.3183098733425140380859375f), -g_BarnLights.Load<float4>(_12608 * 480 + 160).w);
- float2 _20564 = (_14081.xy * g_BarnLights.Load<float4>(_12608 * 480 + 224).zw) + g_BarnLights.Load<float4>(_12608 * 480 + 224).xy;
- float3 _20492 = _14081;
+ vec3 _20479 = vec4((_23629 * _19008.w) + cross(_23629, _24989), _15156).xyz;
+ vec3 _23592 = _17795.xyz;
+ vec3 _12170 = ((_20479 * g_BarnLights_1._m0[_12608]._m5.w) + (_23592 * _15156)) + cross(_23592, _20479);
+ vec3 _14081 = vec3(vec2(atan(_12170.y, -_12170.x) * 0.15915493667125701904296875, acos(_12170.z) * 0.3183098733425140380859375), -g_BarnLights_1._m0[_12608]._m4.w);
+ vec2 _20564 = (_14081.xy * g_BarnLights_1._m0[_12608]._m9.zw) + g_BarnLights_1._m0[_12608]._m9.xy;
+ vec3 _20492 = _14081;
_20492.x = _20564.x;
_20492.y = _20564.y;
- _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20492.xyz, 0.0f).xyz;
+ _12504 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _20492.xyz, 0.0).xyz;
}
else
{
- float3 _13791 = float3(mad(_22905.xy, float2(0.5f, -0.5f), 0.5f.xx), g_BarnLights.Load<float4>(_12608 * 480 + 160).w);
- float2 _20563 = (_13791.xy * g_BarnLights.Load<float4>(_12608 * 480 + 224).zw) + g_BarnLights.Load<float4>(_12608 * 480 + 224).xy;
- float3 _20491 = _13791;
+ vec3 _13791 = vec3(fma(_22905.xy, vec2(0.5, -0.5), vec2(0.5)), g_BarnLights_1._m0[_12608]._m4.w);
+ vec2 _20563 = (_13791.xy * g_BarnLights_1._m0[_12608]._m9.zw) + g_BarnLights_1._m0[_12608]._m9.xy;
+ vec3 _20491 = _13791;
_20491.x = _20563.x;
_20491.y = _20563.y;
- _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20491.xyz, 0.0f).xyz;
+ _12504 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _20491.xyz, 0.0).xyz;
}
- _21548 = _12503;
+ _21548 = _12504;
}
- if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))
+ if (all(equal(_21548.xyz, vec3(0.0))))
{
_13212 = _13138;
_15670 = _16325;
break;
}
- float3 _22671;
+ vec3 _22671;
if (_24419)
{
- float3 _19629;
- if ((g_BarnLights.Load<uint>(_12608 * 480 + 264) & 4u) != 0u)
+ vec3 _19629;
+ if ((g_BarnLights_1._m0[_12608]._m13 & 4u) != 0u)
{
- float2 _6281 = _22905.yx * float2(1.0f, -1.0f);
- float3 _23714 = _21642;
+ vec2 _6281 = _22905.yx * vec2(1.0, -1.0);
+ vec3 _23714 = _21642;
_23714.x = _6281.x;
_23714.y = _6281.y;
_19629 = _23714;
@@ -1197,9 +1218,8 @@ PS
{
_19629 = _21642;
}
- float3 _20482 = _21548.xyz * lerp(1.0f, g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], float3(mad(_19629.xy, g_BarnLights.Load<float4>(_12608 * 480 + 208).zw, g_BarnLights.Load<float4>(_12608 * 480 + 208).xy), _19629.z).xy, saturate(_19629.z + PerViewLightingConstantBufferGpu_t_1_m12)), g_BarnLights.Load<float>(_12608 * 480 + 260));
- float3 _16449 = _20482.xyz;
- if (all(bool3(_16449.x == 0.0f.xxx.x, _16449.y == 0.0f.xxx.y, _16449.z == 0.0f.xxx.z)))
+ vec3 _20482 = _21548.xyz * mix(1.0, textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy, saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0), g_BarnLights_1._m0[_12608]._m12);
+ if (all(equal(_20482.xyz, vec3(0.0))))
{
_13212 = _13138;
_15670 = _16325;
@@ -1211,18 +1231,17 @@ PS
{
_22671 = _21548;
}
- bool3 _19900 = all(bool3(_17892.x == 1.0f.xxx.x, _17892.y == 1.0f.xxx.y, _17892.z == 1.0f.xxx.z)).xxx;
- float _11798 = max(0.0f, dot(_21710.xyz, _11179.xyz));
- float2 _9841 = max(_21813, g_BarnLights.Load<float>(_12608 * 480 + 256).xx);
- float3 _12282 = normalize(_11179.xyz + (-normalize(_10061.xyz - PerViewConstantBuffer_t_1_m3.xyz)).xyz).xyz;
- float _12387 = dot(_12282, float3(_19900.x ? _21710.xyz.x : _17892.x, _19900.y ? _21710.xyz.y : _17892.y, _19900.z ? _21710.xyz.z : _17892.z).xyz);
- float _19211 = max(0.0f, dot(_11179.xyz, _12282));
+ float _11798 = max(0.0, dot(_21710.xyz, _11179.xyz));
+ vec2 _9841 = max(_21813, vec2(g_BarnLights_1._m0[_12608]._m11));
+ vec3 _12282 = normalize(_11179.xyz + (-normalize(_10061.xyz - PerViewConstantBuffer_t._m3.xyz)).xyz).xyz;
+ float _12387 = dot(_12282, mix(_17892, _21710.xyz, bvec3(all(equal(_17892, vec3(1.0))))).xyz);
+ float _19211 = max(0.0, dot(_11179.xyz, _12282));
float _9851 = _9841.x;
float _25212 = _9851 * _9851;
- float _19097 = _25212 * _25212;
- float _15348 = ((_12387 * _12387) * (_19097 - 1.0f)) + 1.0f;
- _13212 = _13138.xyz + (((_8357.xyz * (_19097 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0f) + 2.0f)))).xyz * _11798).xyz * _22671.xyz);
- _15670 = _16325.xyz + (_11798.xxx.xyz * _22671.xyz);
+ float _19096 = _25212 * _25212;
+ float _15348 = ((_12387 * _12387) * (_19096 - 1.0)) + 1.0;
+ _13212 = _13138.xyz + (((_8357.xyz * (_19096 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0) + 2.0)))).xyz * _11798).xyz * _22671.xyz);
+ _15670 = _16325.xyz + (vec3(_11798).xyz * _22671.xyz);
break;
} while(false);
_13138 = _13212;
@@ -1236,85 +1255,85 @@ PS
_17017 = _21567;
continue;
}
- float _17172 = dot(_21813.xy, 0.5f.xx);
- float3 _6253 = _17892.xyz;
- float3 _17138 = normalize(_10061.xyz - PerViewConstantBuffer_t_1_m3.xyz);
+ float _17172 = dot(_21813.xy, vec2(0.5));
+ vec3 _6253 = _17892.xyz;
+ vec3 _17138 = normalize(_10061.xyz - PerViewConstantBuffer_t._m3.xyz);
float _17225 = _17172 * _17172;
- float _20711 = saturate(1.0f - _17225);
- float4 _15343 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * _17172) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f);
+ float _20711 = saturate(1.0 - _17225);
+ vec4 _15343 = (vec4(-1.0, -0.0274999998509883880615234375, -0.572000026702880859375, 0.02199999988079071044921875) * _17172) + vec4(1.0, 0.0425000004470348358154296875, 1.03999996185302734375, -0.039999999105930328369140625);
float _21215 = _15343.x;
- float2 _24572 = (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_21215 * _21215, exp2((-9.27999973297119140625f) * max(0.0f, dot((-_17138).xyz, _6253)))) * _21215) + _15343.y)) + _15343.zw;
+ vec2 _24572 = (vec2(-1.03999996185302734375, 1.03999996185302734375) * ((min(_21215 * _21215, exp2((-9.27999973297119140625) * max(0.0, dot((-_17138).xyz, _6253)))) * _21215) + _15343.y)) + _15343.zw;
float _20339 = _24572.y;
- float2 _11427 = float2(_20339, _24572.x + _20339);
- float3 _8745 = float3(dot(PerViewLightingConstantBufferGpu_t_1_m0._m0[0].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t_1_m0._m0[1].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t_1_m0._m0[2].xyzw, _23875)).xyz;
- float3 _16991 = _16324.xyz + _8745;
- float3 _20418 = (_21711 * (_19068.x * lerp(1.0f, pow(_24079.w, _Globals_1_g_flVertexAmbientOcclusionPower), _Globals_1_g_flVertexAmbientOcclusionAmount))).xxx.xyz;
- float3 _22686 = (_16324.xyz + (_8745 * _20418).xyz) * ((float3(max(float4(mul(_Globals_1_g_mTextureColorAdjust, float4(float4((_19334.xyz * input_4.xyz).xyz, 1.0f).xyz, 1.0f)).xyz, 1.0f), 0.0f.xxxx).xyz).xyz * 1.0f) * (lerp(0.0f, pow(_24079.x, _Globals_1_g_flHeightGradientPower), _Globals_1_g_flHeightGradientAmount) + 1.0f)).xyz;
- float4 _11205 = float4(_22686, _19334.w);
+ vec2 _11427 = vec2(_20339, _24572.x + _20339);
+ vec3 _8745 = vec3(dot(PerViewLightingConstantBufferGpu_t._m0._m0[0].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t._m0._m0[1].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t._m0._m0[2].xyzw, _23875)).xyz;
+ vec3 _16991 = _16324.xyz + _8745;
+ vec3 _20418 = vec3(_21711 * (_19068.x * mix(1.0, pow(_24079.w, _Globals_.g_flVertexAmbientOcclusionPower), _Globals_.g_flVertexAmbientOcclusionAmount))).xyz;
+ vec3 _22686 = (_16324.xyz + (_8745 * _20418).xyz) * ((vec3(max(vec4((vec4(vec4((_19334.xyz * input_4.xyz).xyz, 1.0).xyz, 1.0) * _Globals_.g_mTextureColorAdjust).xyz, 1.0), vec4(0.0)).xyz).xyz * 1.0) * (mix(0.0, pow(_24079.x, _Globals_.g_flHeightGradientPower), _Globals_.g_flHeightGradientAmount) + 1.0)).xyz;
+ vec4 _11205 = vec4(_22686, _19334.w);
_11205.x = _22686.x;
_11205.y = _22686.y;
_11205.z = _22686.z;
- float3 _15752 = _11205.xyz + (_13137.xyz * _20418).xyz;
- float4 _20490 = _11205;
+ vec3 _15752 = _11205.xyz + (_13137.xyz * _20418).xyz;
+ vec4 _20490 = _11205;
_20490.x = _15752.x;
_20490.y = _15752.y;
_20490.z = _15752.z;
- float3 _15734 = _20490.xyz + ((((lerp(_11427.xxx, _11427.yyy, _8357) * g_bindless_TextureCubeArray_float4[PerViewConstantBufferCsgo_t_1_m7].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], float4(normalize(lerp(_6253, reflect(_17138.xyz, _17892.xyz).xyz, (_20711 * (sqrt(_20711) + _17225)).xxx)), 0.0f), PerViewLightingConstantBufferGpu_t_1_m8.y * sqrt(_17172)).xyz).xyz * (normalize(_16991 + 0.001000000047497451305389404296875f.xxx) * clamp(length(_16991), 0.0f, 1.75f))).xyz * (1.0f.xxx + (normalize(_8745 + 0.001000000047497451305389404296875f.xxx) * 0.5f))).xyz * _20418).xyz;
- float4 _13888 = _20490;
+ vec3 _15734 = _20490.xyz + ((((mix(_11427.xxx, _11427.yyy, _8357) * textureLod(samplerCubeArray(g_bindless_TextureCubeArray_float4[PerViewConstantBufferCsgo_t._m7], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), vec4(normalize(mix(_6253, reflect(_17138.xyz, _17892.xyz).xyz, vec3(_20711 * (sqrt(_20711) + _17225)))), 0.0), PerViewLightingConstantBufferGpu_t._m8.y * sqrt(_17172)).xyz).xyz * (normalize(_16991 + vec3(0.001000000047497451305389404296875)) * clamp(length(_16991), 0.0, 1.75))).xyz * (vec3(1.0) + (normalize(_8745 + vec3(0.001000000047497451305389404296875)) * 0.5))).xyz * _20418).xyz;
+ vec4 _13888 = _20490;
_13888.x = _15734.x;
_13888.y = _15734.y;
_13888.z = _15734.z;
- float4 _6805;
- if (_Globals_1_g_bFogEnabled != 0)
+ vec4 _6805;
+ if (_Globals_.g_bFogEnabled != 0)
{
- float3 _21493;
- float3 _22956 = _10061.xyz - PerViewConstantBuffer_t_1_m3.xyz;
- float3 _9057 = _22956.xyz;
- float3 _19340;
+ vec3 _21493;
+ vec3 _22956 = _10061.xyz - PerViewConstantBuffer_t._m3.xyz;
+ vec3 _9057 = _22956.xyz;
+ vec3 _19340;
do
{
_21493 = _22956.xyz;
bool _12889;
- if (dot(_21493, _21493) > PerViewConstantBufferCsgo_t_1_m14.x)
+ if (dot(_21493, _21493) > PerViewConstantBufferCsgo_t._m14.x)
{
- _12889 = (_10061.z * PerViewConstantBufferCsgo_t_1_m14.z) < PerViewConstantBufferCsgo_t_1_m14.y;
+ _12889 = (_10061.z * PerViewConstantBufferCsgo_t._m14.z) < PerViewConstantBufferCsgo_t._m14.y;
}
else
{
_12889 = false;
}
- [branch]
+ SPIRV_CROSS_BRANCH
if (_12889)
{
- float2 _9342 = clamp(PerViewConstantBufferCsgo_t_1_m11.xy + (PerViewConstantBufferCsgo_t_1_m11.zw * float2(length(_21493), _10061.z)), 0.0f.xx, 1.0f.xx);
- float _12872 = (pow(_9342.x, PerViewConstantBufferCsgo_t_1_m12.x) * pow(_9342.y, PerViewConstantBufferCsgo_t_1_m12.y)) * PerViewConstantBufferCsgo_t_1_m13.w;
- _19340 = lerp(_13888.xyz, float4(PerViewConstantBufferCsgo_t_1_m13.xyz, _12872).xyz, _12872.xxx);
+ vec2 _9342 = saturate(PerViewConstantBufferCsgo_t._m11.xy + (PerViewConstantBufferCsgo_t._m11.zw * vec2(length(_21493), _10061.z)));
+ float _12872 = (pow(_9342.x, PerViewConstantBufferCsgo_t._m12.x) * pow(_9342.y, PerViewConstantBufferCsgo_t._m12.y)) * PerViewConstantBufferCsgo_t._m13.w;
+ _19340 = mix(_13888.xyz, vec4(PerViewConstantBufferCsgo_t._m13.xyz, _12872).xyz, vec3(_12872));
break;
}
_19340 = _13888.xyz;
break;
} while(false);
- float4 _23944 = _13888;
+ vec4 _23944 = _13888;
_23944.x = _19340.x;
_23944.y = _19340.y;
_23944.z = _19340.z;
- float3 _19341;
+ vec3 _19341;
do
{
bool _12890;
- if (dot(_9057, _9057) > PerViewConstantBufferCsgo_t_1_m18.x)
+ if (dot(_9057, _9057) > PerViewConstantBufferCsgo_t._m18.x)
{
- _12890 = (PerViewConstantBufferCsgo_t_1_m18.z * _10061.z) < PerViewConstantBufferCsgo_t_1_m18.y;
+ _12890 = (PerViewConstantBufferCsgo_t._m18.z * _10061.z) < PerViewConstantBufferCsgo_t._m18.y;
}
else
{
_12890 = false;
}
if (_12890)
{
- float _14602 = saturate(pow(max(0.0f, (length(_21493) * PerViewConstantBufferCsgo_t_1_m15.y) + PerViewConstantBufferCsgo_t_1_m15.x), PerViewConstantBufferCsgo_t_1_m15.w)) * saturate(pow(max(0.0f, (_10061.z * PerViewConstantBufferCsgo_t_1_m16.y) + PerViewConstantBufferCsgo_t_1_m16.x), PerViewConstantBufferCsgo_t_1_m16.z));
- float _8892 = saturate(_14602) * PerViewConstantBufferCsgo_t_1_m18.w;
- _19341 = lerp(_23944.xyz, float4((g_bindless_TextureCube_float4[PerViewConstantBufferCsgo_t_1_m3].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], normalize(mul(float4(_9057, 0.0f), PerViewConstantBufferCsgo_t_1_m17).xyz).xyz, PerViewConstantBufferCsgo_t_1_m16.w * saturate(1.0f - (_14602 * PerViewConstantBufferCsgo_t_1_m15.z))) * PerViewConstantBufferCsgo_t_1_m19.x).xyz, _8892).xyz, _8892.xxx);
+ float _14602 = saturate(pow(max(0.0, (length(_21493) * PerViewConstantBufferCsgo_t._m15.y) + PerViewConstantBufferCsgo_t._m15.x), PerViewConstantBufferCsgo_t._m15.w)) * saturate(pow(max(0.0, (_10061.z * PerViewConstantBufferCsgo_t._m16.y) + PerViewConstantBufferCsgo_t._m16.x), PerViewConstantBufferCsgo_t._m16.z));
+ float _8892 = saturate(_14602) * PerViewConstantBufferCsgo_t._m18.w;
+ _19341 = mix(_23944.xyz, vec4((textureLod(samplerCube(g_bindless_TextureCube_float4[PerViewConstantBufferCsgo_t._m3], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), normalize((PerViewConstantBufferCsgo_t._m17 * vec4(_9057, 0.0)).xyz).xyz, PerViewConstantBufferCsgo_t._m16.w * saturate(1.0 - (_14602 * PerViewConstantBufferCsgo_t._m15.z))) * PerViewConstantBufferCsgo_t._m19.x).xyz, _8892).xyz, vec3(_8892));
break;
}
_19341 = _23944.xyz;
@@ -1332,23 +1351,6 @@ PS
output_0 = _6805;
}
- PS_OUTPUT MainPs(PS_INPUT stage_input)
- {
- gl_FragCoord = stage_input.gl_FragCoord;
- gl_FragCoord.w = 1.0 / gl_FragCoord.w;
- gl_FrontFacing = stage_input.gl_FrontFacing;
- input_0 = stage_input.input_0;
- input_1 = stage_input.input_1;
- input_2 = stage_input.input_2;
- input_3 = stage_input.input_3;
- input_4 = stage_input.input_4;
- input_5 = stage_input.input_5;
- input_6 = stage_input.input_6;
- MainPs_inner();
- PS_OUTPUT stage_output;
- stage_output.output_0 = output_0;
- return stage_output;
- }
// --------- SPIRV -> HLSL end ---------
@@ -1751,8 +1753,8 @@ RTX
void main()
{
uint _549 = g_instanceBuffer._member0[uint(gl_InstanceID)].nMaterialData;
- uint _604 = g_MaterialData_1._member0[(_549 + 28u) / 4u];
- uint _603 = g_MaterialData_1._member0[(_549 + 32u) / 4u];
+ uint _604 = g_MaterialData_1._member0[(_549 + 32u) / 4u];
+ uint _603 = g_MaterialData_1._member0[(_549 + 36u) / 4u];
vec4 _602 = vec4(g_MaterialData_3._member0[(_549 + 112u) / 4u], g_MaterialData_3._member0[(_549 + 116u) / 4u], g_MaterialData_3._member0[(_549 + 120u) / 4u], g_MaterialData_3._member0[(_549 + 124u) / 4u]);
vec4 _601 = vec4(g_MaterialData_3._member0[(_549 + 128u) / 4u], g_MaterialData_3._member0[(_549 + 132u) / 4u], g_MaterialData_3._member0[(_549 + 136u) / 4u], g_MaterialData_3._member0[(_549 + 140u) / 4u]);
vec2 _600 = vec2(g_MaterialData_3._member0[(_549 + 144u) / 4u], g_MaterialData_3._member0[(_549 + 148u) / 4u]);
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_glass.slang
modified • +17 / -17 • changes: 34
Show patch
@@ -312,14 +312,14 @@ PS
Texture2D g_tGlassDust < Channel(RGB, ArtistDefinedOrAlphaWeighted(GlassMaskColor, GlassMaskTranslucency), Srgb); Channel(A, Box(GlassMaskTranslucency), Linear); OutputFormat(BC7); SrgbRead(true); >;
Texture2D g_tGlassTintColor < Channel(RGB, Box(GlassTintColor), Srgb); Channel(A, Box(GlassMaskTransmission), Linear); OutputFormat(BC7); SrgbRead(true); >;
Texture2D g_tNormal < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureNormal, TextureRoughness), Linear); OutputFormat(BC7); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
// Glass
CreateInputTexture2D(GlassTintColor, Srgb, 8, "", "_color", "Glass,10/Tint,30/10", "materials/default/default_tint_color.tga");
CreateInputTexture2D(GlassMaskColor, Srgb, 8, "", "_color", "Glass,10/Mask,10/20", Default4(1, 1, 1, 0));
CreateInputTexture2D(GlassMaskTranslucency, Linear, 8, "", "_trans", "Glass,10/Mask,10/30", Default4(0, 0, 0, 0));
- float2 g_flTranslucencyRemap < Default(0); UiType(VectorText); UiGroup("Glass,10/Mask,10/30"); >;
+ float2 g_flTranslucencyRemap < Default2(0, 1); UiType(VectorText); UiGroup("Glass,10/Mask,10/30"); >;
CreateInputTexture2D(GlassMaskTransmission, Linear, 8, "", "_mask", "Glass,10/Mask,10/40", Default4(1, 1, 1, 0));
// Normal
@@ -347,17 +347,17 @@ PS
// Source 2 Viewer - https://valveresourceformat.github.io
// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup
- struct _1696
+ struct _1822
{
float4 _m0[3];
};
- struct _1709
+ struct _1835
{
float4 _m0[4];
};
- struct _360
+ struct _918
{
column_major float4x4 _m0[4];
};
@@ -400,15 +400,15 @@ PS
uint _Globals_1_g_tGlassDust : packoffset(c0.w);
float2 _Globals_1_g_flTranslucencyRemap : packoffset(c1);
float _Globals_1_g_flModelTintAmount : packoffset(c1.z);
- uint _Globals_1_g_sTrilinearWrap : packoffset(c2.y);
- uint _Globals_1_g_sTrilinearClamp : packoffset(c2.z);
- uint _Globals_1_g_sUserConfig : packoffset(c3.z);
- uint _Globals_1_g_sCookieSampler : packoffset(c4.y);
- uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c4.z);
- int _Globals_1_g_bFogEnabled : packoffset(c5);
- int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c5.y);
- int _Globals_1_g_bRenderBackfaceNormals : packoffset(c5.z);
- float _Globals_1_g_flReflectance : packoffset(c5.w);
+ uint _Globals_1_g_sTrilinearWrap : packoffset(c2.z);
+ uint _Globals_1_g_sTrilinearClamp : packoffset(c2.w);
+ uint _Globals_1_g_sUserConfig : packoffset(c3.w);
+ uint _Globals_1_g_sCookieSampler : packoffset(c4.z);
+ uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c4.w);
+ int _Globals_1_g_bFogEnabled : packoffset(c5.y);
+ int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c5.z);
+ int _Globals_1_g_bRenderBackfaceNormals : packoffset(c5.w);
+ float _Globals_1_g_flReflectance : packoffset(c6);
};
cbuffer PerViewConstantBufferCsgo_t : register(b3, space1)
@@ -442,7 +442,7 @@ PS
cbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)
{
- _1696 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);
+ _1822 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);
float4 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c18);
uint4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c19);
uint4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c22);
@@ -458,8 +458,8 @@ PS
float PerViewLightingConstantBufferGpu_t_1_m13 : packoffset(c1955.y);
float PerViewLightingConstantBufferGpu_t_1_m14 : packoffset(c1955.z);
float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.w);
- _360 PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1956);
- _1709 PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1988);
+ _918 PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1956);
+ _1835 PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1988);
uint PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1996);
uint PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1996.y);
};
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_grenade_camera.slang
modified • +2 / -2 • changes: 4
Show patch
@@ -110,9 +110,9 @@ PS
};
Texture2D<float4> g_tCameraTexture : register(t30, space1);
- SamplerState DefaultSamplerState_0 : register(s21, space1);
+ SamplerState DefaultSamplerState_0 : register(s22, space1);
Texture2D<float4> g_tJumpThrowIcon : register(t31, space1);
- SamplerState g_sBilinearClamp : register(s15, space1);
+ SamplerState g_sBilinearClamp : register(s16, space1);
static float2 input_0;
static float4 output_0;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_lightmapped_4wayblend.slang
modified • +108 / -97 • changes: 205
Show patch
@@ -299,7 +299,7 @@ PS
Texture2D g_tParticleShadowBuffer < Attribute("ParticleShadowBuffer"); SrgbRead(false); >;
Texture2D g_tShadowDepthBufferDepth < Attribute("ShadowDepthBuffer"); SrgbRead(false); >;
Texture2D g_tSsao < Attribute("SSAOOcclusionFactor"); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
// Detail
@@ -371,17 +371,17 @@ PS
#endif
#extension GL_KHR_shader_subgroup_arithmetic : require
- struct _1654
+ struct _1906
{
vec4 _m0[3];
};
- struct _1864
+ struct _2116
{
vec4 _m0[4];
};
- struct _2767
+ struct _872
{
mat4 _m0[4];
};
@@ -452,10 +452,10 @@ PS
layout(set = 1) uniform _1574 _Globals_;
- struct _1920
+ struct _2326
{
- _1654 _m0;
- _1864 _m1;
+ _1906 _m0;
+ _2116 _m1;
vec4 _m2;
vec4 _m3;
vec4 _m4;
@@ -471,11 +471,11 @@ PS
float _m14;
float _m15;
float _m16;
- _2767 _m17;
- _1864 _m18;
+ _872 _m17;
+ _2116 _m18;
};
- layout(set = 3) uniform _1920 PerViewLightingConstantBufferGpu_t;
+ layout(set = 3) uniform _2326 PerViewLightingConstantBufferGpu_t;
struct _1194
{
@@ -498,12 +498,12 @@ PS
} g_BarnLights_1;
layout(set = 1, binding = 43) uniform texture2D g_tColor;
- layout(set = 1, binding = 19) uniform sampler g_sUserConfig;
+ layout(set = 1, binding = 20) uniform sampler g_sUserConfig;
layout(set = 1, binding = 46) uniform texture2D g_tLayer2Color;
layout(set = 1, binding = 49) uniform texture2D g_tLayer3Color;
layout(set = 1, binding = 52) uniform texture2D g_tLayer4Color;
layout(set = 1, binding = 45) uniform texture2D g_tLayer1AmbientOcclusion;
- layout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;
+ layout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;
layout(set = 1, binding = 48) uniform texture2D g_tLayer2AmbientOcclusion;
layout(set = 1, binding = 51) uniform texture2D g_tLayer3AmbientOcclusion;
layout(set = 1, binding = 54) uniform texture2D g_tLayer4AmbientOcclusion;
@@ -512,13 +512,13 @@ PS
layout(set = 1, binding = 50) uniform texture2D g_tLayer3NormalRoughness;
layout(set = 1, binding = 53) uniform texture2D g_tLayer4NormalRoughness;
layout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;
- layout(set = 1, binding = 22) uniform sampler g_sCookieSampler;
+ layout(set = 1, binding = 23) uniform sampler g_sCookieSampler;
layout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;
- layout(set = 1, binding = 18) uniform sampler g_sPointClamp;
- layout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
+ layout(set = 1, binding = 19) uniform sampler g_sPointClamp;
+ layout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
layout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;
layout(set = 1, binding = 61) uniform texture2D g_tParticleShadowBuffer;
- layout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;
+ layout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;
layout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;
layout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;
@@ -616,104 +616,115 @@ PS
{
_21709 = 1.0;
}
- float _21710;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m8.xyz, _24735);
+ float _12320;
SPIRV_CROSS_BRANCH
- if (PerViewLightingConstantBufferGpu_t._m10 != 0)
+ if (_8634 > 0.0)
{
- int _23989;
- int _10191;
- float _13136;
- vec3 _14975;
- int _13039 = 0;
- for (;;)
+ float _12503;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m10 != 0)
{
- if (!(_13039 < PerViewLightingConstantBufferGpu_t._m10))
- {
- _13136 = 1.0;
- _14975 = vec3(0.0);
- _10191 = -1;
- break;
- }
- vec4 _18322 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m17._m0[_13039];
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m12[_13039])
+ int _23989;
+ int _10191;
+ float _13136;
+ vec3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- vec3 _19470 = vec3(_12779, _18322.yz);
- vec2 _24804 = _19470.xy;
- vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m14)) + vec2(PerViewLightingConstantBufferGpu_t._m13));
- vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m18._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m18._m0[_13039].xy;
- vec3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13136 = saturate(_22193.x * _22193.y);
- _14975 = _20488;
- _10191 = _13039;
- break;
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t._m10))
+ {
+ _13136 = 1.0;
+ _14975 = vec3(0.0);
+ _10191 = -1;
+ break;
+ }
+ vec4 _18322 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m17._m0[_13039];
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m12[_13039])
+ {
+ vec3 _19470 = vec3(_12779, _18322.yz);
+ vec2 _24804 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m14)) + vec2(PerViewLightingConstantBufferGpu_t._m13));
+ vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m18._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m18._m0[_13039].xy;
+ vec3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13136 = saturate(_22193.x * _22193.y);
+ _14975 = _20488;
+ _10191 = _13039;
+ break;
+ }
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
}
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
- {
- float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m11)), 0.0);
- float _12501;
- SPIRV_CROSS_BRANCH
- if (_13136 < 1.0)
+ float _19363;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t._m10 - 1))
+ float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m11)), 0.0);
+ float _12501;
+ SPIRV_CROSS_BRANCH
+ if (_13136 < 1.0)
{
- int _15335 = _10191 + 1;
- vec4 _19671 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m17._m0[_15335];
- vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m18._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m18._m0[_15335].xy;
- vec3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m11)), 0.0);
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m10 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19671 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m17._m0[_15335];
+ vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m18._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m18._m0[_15335].xy;
+ vec3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m11)), 0.0);
+ }
+ else
+ {
+ _7934 = 1.0;
+ }
+ _12501 = mix(_7934, _18270, _13136);
}
else
{
- _7934 = 1.0;
+ _12501 = _18270;
}
- _12501 = mix(_7934, _18270, _13136);
+ _19363 = _12501;
}
else
{
- _12501 = _18270;
+ _19363 = 1.0;
}
- _19363 = _12501;
- }
- else
- {
- _19363 = 1.0;
- }
- float _13279 = mix(_19363, 1.0, saturate((distance(_11095.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m16) + PerViewLightingConstantBufferGpu_t._m15));
- float _12502;
- if (_24465.y)
- {
- _12502 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ float _13279 = mix(_19363, 1.0, saturate((distance(_11095.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m16) + PerViewLightingConstantBufferGpu_t._m15));
+ float _12502;
+ if (_24465.y)
+ {
+ _12502 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12502 = _13279;
+ }
+ _12503 = _12502;
}
else
{
- _12502 = _13279;
+ _12503 = 1.0;
}
- _21710 = _12502;
+ _12320 = _12503;
}
else
{
- _21710 = 1.0;
+ _12320 = 1.0;
}
- vec3 _21711;
+ vec3 _21710;
SPIRV_CROSS_BRANCH
- if ((dot(PerViewLightingConstantBufferGpu_t._m8.xyz, _24735) * _21710) > 0.0)
+ if ((_8634 * _12320) > 0.0)
{
- _21711 = PerViewLightingConstantBufferGpu_t._m4.xyz + (vec3(max(0.0, dot(_14995.xyz, PerViewLightingConstantBufferGpu_t._m8.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m9.xyz * _21710).xyz);
+ _21710 = PerViewLightingConstantBufferGpu_t._m4.xyz + (vec3(max(0.0, dot(_14995.xyz, PerViewLightingConstantBufferGpu_t._m8.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m9.xyz * _12320).xyz);
}
else
{
- _21711 = PerViewLightingConstantBufferGpu_t._m4.xyz;
+ _21710 = PerViewLightingConstantBufferGpu_t._m4.xyz;
}
bvec4 _24466 = notEqual(PerViewConstantBufferCsgo_t._m1, ivec4(0));
bool _20060 = _24466.x;
@@ -737,7 +748,7 @@ PS
uint _10838 = PerViewLightingConstantBufferGpu_t._m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t._m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t._m5.z);
uint _23393 = PerViewLightingConstantBufferGpu_t._m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t._m7.x, 0.0, PerViewLightingConstantBufferGpu_t._m7.y)) * PerViewLightingConstantBufferGpu_t._m5.z);
vec3 _13155;
- _13155 = _21711;
+ _13155 = _21710;
uint _21567;
vec3 _13156;
uint _16208 = 0u;
@@ -750,7 +761,7 @@ PS
uint _14475 = subgroupOr(g_CullBits_1._m0[_10838 + _16208] & g_CullBits_1._m0[_23393 + _16208]);
_13156 = _13155;
uint _20344;
- vec3 _12504;
+ vec3 _12505;
uint _16209 = _14475;
for (;;)
{
@@ -790,7 +801,7 @@ PS
}
if (_12885)
{
- _12504 = _13156;
+ _12505 = _13156;
break;
}
float _23571 = 2.0 * g_BarnLights_1._m0[_12608]._m5.y;
@@ -900,7 +911,7 @@ PS
}
else
{
- vec3 _12503;
+ vec3 _12504;
if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)
{
vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);
@@ -916,7 +927,7 @@ PS
vec3 _20491 = _14081;
_20491.x = _20564.x;
_20491.y = _20564.y;
- _12503 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;
+ _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;
}
else
{
@@ -925,13 +936,13 @@ PS
vec3 _20490 = _13791;
_20490.x = _20563.x;
_20490.y = _20563.y;
- _12503 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;
+ _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;
}
- _21548 = _12503;
+ _21548 = _12504;
}
if (all(equal(_21548.xyz, vec3(0.0))))
{
- _12504 = _13156;
+ _12505 = _13156;
break;
}
vec3 _19630;
@@ -953,7 +964,7 @@ PS
vec3 _20482 = _21548.xyz * mix(1.0, textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy, saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m11)), 0.0), g_BarnLights_1._m0[_12608]._m12);
if (all(equal(_20482.xyz, vec3(0.0))))
{
- _12504 = _13156;
+ _12505 = _13156;
break;
}
_19630 = _20482;
@@ -962,10 +973,10 @@ PS
{
_19630 = _21548;
}
- _12504 = _13156.xyz + (vec3(max(0.0, dot(_14995.xyz, _11179.xyz))).xyz * _19630.xyz);
+ _12505 = _13156.xyz + (vec3(max(0.0, dot(_14995.xyz, _11179.xyz))).xyz * _19630.xyz);
break;
} while(false);
- _13156 = _12504;
+ _13156 = _12505;
_16209 = _20344;
continue;
}
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_lightmappedgeneric.slang
modified • +198 / -205 • changes: 403
Show patch
@@ -89,8 +89,10 @@ VS
StaticCombo( S_FANCY_BLENDING, F_FANCY_BLENDING!=0 );
StaticCombo( S_DETAILTEXTURE, F_DETAILTEXTURE );
StaticCombo( S_TEXTURETRANSFORMS, F_TEXTURETRANSFORMS );
+ StaticCombo( S_OVERLAY, F_OVERLAY );
StaticComboRule( Requires( S_SPECULAR_DIRECT, S_SPECULAR_INDIRECT ) );
StaticComboRule( Requires( S_DETAILTEXTURE==2, S_LAYERS==1 ) );
+ StaticComboRule( Allow1( S_OVERLAY, S_LAYERS ) );
DynamicCombo( D_COMPRESSED_NORMALS_AND_TANGENTS, 0..1 );
DynamicCombo( D_CS_VERTEX_ANIMATION, 0..1 );
DynamicCombo( D_BAKED_LIGHTING_FROM_VERTEX_STREAM, 0..1 );
@@ -176,8 +178,18 @@ VS
float g_flVertexColorOpacityScale < Default(1); UiType(Slider); UiGroup("Color, 10/25"); >;
float g_flModelTintAmount < Default(1); UiType(Slider); UiGroup("Color,10/30"); >;
+ // Overlay
+ float g_flOverlayLift < Range(0, 2); UiType(Slider); UiGroup("Overlay,90/Lift,10/10"); >;
+
+ // SPIR-V reflection failed for backend HLSL:
+ // cbuffer ID 5618 (name: _Globals_), member index 0 (name: g_vColorTint) cannot be expressed with either HLSL packing layout or packoffset.
+ //
+ // Re-attempting reflection with the GLSL backend.
+
// Source 2 Viewer - https://valveresourceformat.github.io
- // SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup
+ // SPIR-V source, GLSL reflection with SPIRV-Cross by KhronosGroup
+
+ #version 460
struct _1125
{
@@ -193,94 +205,83 @@ VS
struct _1119
{
- row_major float3x4 _m0;
+ mat3x4 _m0;
};
- ByteAddressBuffer g_instanceBuffer : register(t32, space4);
- ByteAddressBuffer g_transformBuffer : register(t30, space4);
- cbuffer PerViewConstantBuffer_t : register(b1, space0)
+ layout(set = 4, binding = 32, std430) readonly buffer g_instanceBuffer
{
- column_major float4x4 PerViewConstantBuffer_t_1_m0 : packoffset(c0);
- float4 PerViewConstantBuffer_t_1_m1 : packoffset(c24);
- };
+ _1125 _m0[];
+ } g_instanceBuffer_1;
- cbuffer _Globals_ : register(b0, space0)
+ layout(set = 4, binding = 30, std430) readonly buffer g_transformBuffer
{
- float3 _Globals_1_g_vColorTint : packoffset(c4.y);
- float _Globals_1_g_flVertexColorOpacityScale : packoffset(c5);
- float _Globals_1_g_flModelTintAmount : packoffset(c5.y);
- };
+ _1119 _m0[];
+ } g_transformBuffer_1;
- cbuffer PerViewConstantBufferCsgo_t : register(b3, space0)
+ struct _1224
{
- float4 PerViewConstantBufferCsgo_t_1_m0 : packoffset(c35);
+ mat4 _m0;
+ vec4 _m1;
};
+ layout(set = 0) uniform _1224 PerViewConstantBuffer_t;
- static float4 gl_Position;
- static float3 vPositionOs;
- static float2 vTexCoord;
- static float3 vNormalOs;
- static float4 vTangentUOs_flTangentVSign;
- static uint4 vBlendIndices;
- static uint nInstanceIdx;
- static float3 output_0;
- static float3 output_1;
- static float4 output_2;
- static float4 output_3;
- static float4 output_4;
- static uint output_5;
-
- struct VS_INPUT
+ struct _1042
{
- float3 vPositionOs : POSITION0;
- float2 vTexCoord : TEXCOORD0;
- float3 vNormalOs : NORMAL0;
- float4 vTangentUOs_flTangentVSign : TANGENT0;
- uint4 vBlendIndices : BLENDINDICES0;
- uint nInstanceIdx : TEXCOORD13;
+ vec3 g_vColorTint;
+ float g_flVertexColorOpacityScale;
+ float g_flModelTintAmount;
};
- struct PS_INPUT
+ layout(set = 0) uniform _1042 _Globals_;
+
+ struct _1017
{
- float3 output_0 : TEXCOORD0;
- float3 output_1 : TEXCOORD1;
- float4 output_2 : TEXCOORD2;
- centroid float4 output_3 : TEXCOORD3;
- float4 output_4 : TEXCOORD4;
- nointerpolation uint output_5 : TEXCOORD5;
- float4 gl_Position : SV_Position;
+ vec4 _m0;
};
- void MainVs_inner()
+ layout(set = 0) uniform _1017 PerViewConstantBufferCsgo_t;
+
+ layout(location = 0) in vec3 vPositionOs;
+ layout(location = 1) in vec2 vTexCoord;
+ layout(location = 2) in vec3 vNormalOs;
+ layout(location = 3) in vec4 vTangentUOs_flTangentVSign;
+ layout(location = 4) in uvec4 vBlendIndices;
+ layout(location = 5) in uint nInstanceIdx;
+ layout(location = 0) out vec3 output_0;
+ layout(location = 1) out vec3 output_1;
+ layout(location = 2) out vec4 output_2;
+ layout(location = 3) centroid out vec4 output_3;
+ layout(location = 4) out vec4 output_4;
+ layout(location = 5) flat out uint output_5;
+
+ void main()
{
- uint _13771 = (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 20) >> uint(16)) & 15u;
+ uint _13771 = (g_instanceBuffer_1._m0[nInstanceIdx]._m5 >> uint(16)) & 15u;
uint _21785;
if (_13771 == 1u)
{
- _21785 = g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) + (2u + vBlendIndices.x);
+ _21785 = g_instanceBuffer_1._m0[nInstanceIdx]._m1 + (2u + vBlendIndices.x);
}
else
{
- _21785 = g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4);
+ _21785 = g_instanceBuffer_1._m0[nInstanceIdx]._m1;
}
- float3x4 _12618 = float3x4(g_transformBuffer.Load<float4>(_21785 * 48 + 0), g_transformBuffer.Load<float4>(_21785 * 48 + 16), g_transformBuffer.Load<float4>(_21785 * 48 + 32));
- float3 _21709;
+ vec3 _21709;
if (_13771 > 0u)
{
- float3x4 _25207 = float3x4(g_transformBuffer.Load<float4>(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) * 48 + 0), g_transformBuffer.Load<float4>(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) * 48 + 16), g_transformBuffer.Load<float4>(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) * 48 + 32));
- _21709 = _25207[0].z.xxx;
+ _21709 = vec3(g_transformBuffer_1._m0[g_instanceBuffer_1._m0[nInstanceIdx]._m1]._m0[0].z);
}
else
{
- _21709 = 1.0f.xxx;
+ _21709 = vec3(1.0);
}
- float4 _23812 = float4(uint4(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 255u, (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 65280u) >> uint(8), (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 16711680u) >> uint(16), (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 4278190080u) >> uint(24))) * 0.0039215688593685626983642578125f.xxxx;
- float3 _6253 = _23812.xyz;
- float3 _17828 = _6253 * 0.077399380505084991455078125f.xxx;
- float3 _7676 = pow((_6253 * 0.947867333889007568359375f.xxx) + 0.052132703363895416259765625f.xxx, 2.400000095367431640625f.xxx);
+ vec4 _23812 = vec4(uvec4(g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 255u, (g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 65280u) >> uint(8), (g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 16711680u) >> uint(16), (g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 4278190080u) >> uint(24))) * vec4(0.0039215688593685626983642578125);
+ vec3 _6253 = _23812.xyz;
+ vec3 _17828 = _6253 * vec3(0.077399380505084991455078125);
+ vec3 _7676 = pow((_6253 * vec3(0.947867333889007568359375)) + vec3(0.052132703363895416259765625), vec3(2.400000095367431640625));
float _21354;
- if (_23812.x <= 0.040449999272823333740234375f)
+ if (_23812.x <= 0.040449999272823333740234375)
{
_21354 = _17828.x;
}
@@ -289,7 +290,7 @@ VS
_21354 = _7676.x;
}
float _21355;
- if (_23812.y <= 0.040449999272823333740234375f)
+ if (_23812.y <= 0.040449999272823333740234375)
{
_21355 = _17828.y;
}
@@ -298,7 +299,7 @@ VS
_21355 = _7676.y;
}
float _17978;
- if (_23812.z <= 0.040449999272823333740234375f)
+ if (_23812.z <= 0.040449999272823333740234375)
{
_17978 = _17828.z;
}
@@ -307,41 +308,22 @@ VS
_17978 = _7676.z;
}
float _7654 = _23812.w;
- float _16337 = _7654 * g_instanceBuffer.Load<float>(nInstanceIdx * 32 + 28);
- float3 _12151 = mul(_12618, float4(vPositionOs.xyz * _21709.xyz, 1.0f));
- float4 _18237 = mul(PerViewConstantBuffer_t_1_m0, (float4(_12151.xyz, 1.0f) + (PerViewConstantBuffer_t_1_m1 * 1.0f)).xyzw);
- float4 _9337 = vTexCoord.xyxy;
+ float _16337 = _7654 * g_instanceBuffer_1._m0[nInstanceIdx]._m7;
+ vec3 _12151 = vec4(vPositionOs.xyz * _21709.xyz, 1.0) * g_transformBuffer_1._m0[_21785]._m0;
+ vec4 _18237 = (vec4(_12151.xyz, 1.0) + (PerViewConstantBuffer_t._m1 * 1.0)).xyzw * PerViewConstantBuffer_t._m0;
+ vec4 _9337 = vTexCoord.xyxy;
_9337.z = vTexCoord.x;
_9337.w = vTexCoord.y;
- output_0 = _12151.xyz - PerViewConstantBufferCsgo_t_1_m0.xyz;
- output_1 = normalize(mul(_12618, float4(vNormalOs.xyz, 0.0f)));
+ output_0 = _12151.xyz - PerViewConstantBufferCsgo_t._m0.xyz;
+ output_1 = normalize(vec4(vNormalOs.xyz, 0.0) * g_transformBuffer_1._m0[_21785]._m0);
output_2 = _9337;
- output_3 = float4(float4(lerp(1.0f.xxx, float4(_21354, _21355, _17978, _7654).xyz, _Globals_1_g_flModelTintAmount.xxx), _16337).xyz * _Globals_1_g_vColorTint.xyz, _16337 * _Globals_1_g_flVertexColorOpacityScale);
- output_4 = float4(normalize(mul(_12618, float4(vTangentUOs_flTangentVSign.xyz, 0.0f))), vTangentUOs_flTangentVSign.w);
- output_5 = g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 20) & 65535u;
+ output_3 = vec4(vec4(mix(vec3(1.0), vec4(_21354, _21355, _17978, _7654).xyz, vec3(_Globals_.g_flModelTintAmount)), _16337).xyz * _Globals_.g_vColorTint.xyz, _16337 * _Globals_.g_flVertexColorOpacityScale);
+ output_4 = vec4(normalize(vec4(vTangentUOs_flTangentVSign.xyz, 0.0) * g_transformBuffer_1._m0[_21785]._m0), vTangentUOs_flTangentVSign.w);
+ output_5 = g_instanceBuffer_1._m0[nInstanceIdx]._m5 & 65535u;
_18237.y = -_18237.y;
gl_Position = _18237;
}
- PS_INPUT MainVs(VS_INPUT stage_input)
- {
- vPositionOs = stage_input.vPositionOs;
- vTexCoord = stage_input.vTexCoord;
- vNormalOs = stage_input.vNormalOs;
- vTangentUOs_flTangentVSign = stage_input.vTangentUOs_flTangentVSign;
- vBlendIndices = stage_input.vBlendIndices;
- nInstanceIdx = stage_input.nInstanceIdx;
- MainVs_inner();
- PS_INPUT stage_output;
- stage_output.gl_Position = gl_Position;
- stage_output.output_0 = output_0;
- stage_output.output_1 = output_1;
- stage_output.output_2 = output_2;
- stage_output.output_3 = output_3;
- stage_output.output_4 = output_4;
- stage_output.output_5 = output_5;
- return stage_output;
- }
// --------- SPIRV -> HLSL end ---------
@@ -433,7 +415,7 @@ PS
Texture2D g_tLayer2Color < Channel(RGB, ArtistDefined(TextureLayer2Color), Srgb); OutputFormat(DXT1); SrgbRead(true); >;
Texture2D g_tLayer2Detail < Channel(RGB, Box(TextureLayer2Detail), Linear); OutputFormat(BC7); SrgbRead(false); >;
Texture2D g_tLayer2NormalRoughness < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureLayer2Normal, TextureLayer2Roughness), Linear); OutputFormat(BC7); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
// Blend Modulation
@@ -499,17 +481,17 @@ PS
// Source 2 Viewer - https://valveresourceformat.github.io
// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup
- struct _2494
+ struct _2746
{
float4 _m0[3];
};
- struct _2704
+ struct _2956
{
float4 _m0[4];
};
- struct _465
+ struct _1581
{
column_major float4x4 _m0[4];
};
@@ -547,20 +529,20 @@ PS
cbuffer _Globals_ : register(b0, space1)
{
- uint _Globals_1_g_sTrilinearWrap : packoffset(c0.z);
- uint _Globals_1_g_sTrilinearClamp : packoffset(c0.w);
- uint _Globals_1_g_sPointClamp : packoffset(c1);
- uint _Globals_1_g_sUserConfig : packoffset(c1.w);
- uint _Globals_1_g_tColor : packoffset(c2.y);
- uint _Globals_1_g_tLayer1NormalRoughness : packoffset(c2.z);
- uint _Globals_1_g_tLayer1AmbientOcclusion : packoffset(c2.w);
- float3 _Globals_1_g_vLayer1Tint : packoffset(c3);
- uint _Globals_1_g_sCookieSampler : packoffset(c4.z);
- uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c4.w);
- int _Globals_1_g_bFogEnabled : packoffset(c5.y);
- int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c5.z);
- int _Globals_1_g_bRenderBackfaceNormals : packoffset(c5.w);
- float _Globals_1_g_flMetalness : packoffset(c10);
+ uint _Globals_1_g_sTrilinearWrap : packoffset(c0.w);
+ uint _Globals_1_g_sTrilinearClamp : packoffset(c1);
+ uint _Globals_1_g_sPointClamp : packoffset(c1.y);
+ uint _Globals_1_g_sUserConfig : packoffset(c2);
+ uint _Globals_1_g_tColor : packoffset(c2.z);
+ uint _Globals_1_g_tLayer1NormalRoughness : packoffset(c2.w);
+ uint _Globals_1_g_tLayer1AmbientOcclusion : packoffset(c3);
+ float3 _Globals_1_g_vLayer1Tint : packoffset(c3.y);
+ uint _Globals_1_g_sCookieSampler : packoffset(c4.w);
+ uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c5);
+ int _Globals_1_g_bFogEnabled : packoffset(c5.z);
+ int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c5.w);
+ int _Globals_1_g_bRenderBackfaceNormals : packoffset(c6);
+ float _Globals_1_g_flMetalness : packoffset(c10.y);
};
cbuffer PerViewConstantBufferCsgo_t : register(b3, space1)
@@ -589,8 +571,8 @@ PS
cbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)
{
- _2494 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);
- _2704 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);
+ _2746 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);
+ _2956 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);
float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c16);
float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c17);
float4 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c18);
@@ -606,8 +588,8 @@ PS
float PerViewLightingConstantBufferGpu_t_1_m14 : packoffset(c1955.y);
float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.z);
float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.w);
- _465 PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1956);
- _2704 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1988);
+ _1581 PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1956);
+ _2956 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1988);
uint PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1996);
uint PerViewLightingConstantBufferGpu_t_1_m20 : packoffset(c1996.y);
};
@@ -771,104 +753,115 @@ PS
{
_21709 = 1.0f;
}
- float _21710;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t_1_m8.xyz, _24735);
+ float _12320;
[branch]
- if (PerViewLightingConstantBufferGpu_t_1_m10 != 0)
+ if (_8634 > 0.0f)
{
- int _23989;
- int _10191;
- float _13136;
- float3 _14975;
- int _13039 = 0;
- for (;;)
+ float _12503;
+ [branch]
+ if (PerViewLightingConstantBufferGpu_t_1_m10 != 0)
{
- if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m10))
- {
- _13136 = 1.0f;
- _14975 = 0.0f.xxx;
- _10191 = -1;
- break;
- }
- float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_13039], float4(input_0.xyz, 1.0f));
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m12[_13039])
+ int _23989;
+ int _10191;
+ float _13136;
+ float3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- float3 _19470 = float3(_12779, _18322.yz);
- float2 _24804 = _19470.xy;
- float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m14.xx) + PerViewLightingConstantBufferGpu_t_1_m13.xx, 0.0f.xx, 1.0f.xx);
- float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].xy;
- float3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13136 = saturate(_22193.x * _22193.y);
- _14975 = _20488;
- _10191 = _13039;
- break;
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m10))
+ {
+ _13136 = 1.0f;
+ _14975 = 0.0f.xxx;
+ _10191 = -1;
+ break;
+ }
+ float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_13039], float4(input_0.xyz, 1.0f));
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m12[_13039])
+ {
+ float3 _19470 = float3(_12779, _18322.yz);
+ float2 _24804 = _19470.xy;
+ float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m14.xx) + PerViewLightingConstantBufferGpu_t_1_m13.xx, 0.0f.xx, 1.0f.xx);
+ float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].xy;
+ float3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13136 = saturate(_22193.x * _22193.y);
+ _14975 = _20488;
+ _10191 = _13039;
+ break;
+ }
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
}
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
- {
- float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m11));
- float _12501;
- [branch]
- if (_13136 < 1.0f)
+ float _19363;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m10 - 1))
+ float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m11));
+ float _12501;
+ [branch]
+ if (_13136 < 1.0f)
{
- int _15335 = _10191 + 1;
- float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_15335], float4(input_0.xyz, 1.0f));
- float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].xy;
- float3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m11));
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m10 - 1))
+ {
+ int _15335 = _10191 + 1;
+ float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_15335], float4(input_0.xyz, 1.0f));
+ float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].xy;
+ float3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m11));
+ }
+ else
+ {
+ _7934 = 1.0f;
+ }
+ _12501 = lerp(_7934, _18270, _13136);
}
else
{
- _7934 = 1.0f;
+ _12501 = _18270;
}
- _12501 = lerp(_7934, _18270, _13136);
+ _19363 = _12501;
}
else
{
- _12501 = _18270;
+ _19363 = 1.0f;
}
- _19363 = _12501;
- }
- else
- {
- _19363 = 1.0f;
- }
- float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m16) + PerViewLightingConstantBufferGpu_t_1_m15));
- float _12502;
- if (_24465.y)
- {
- _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);
+ float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m16) + PerViewLightingConstantBufferGpu_t_1_m15));
+ float _12502;
+ if (_24465.y)
+ {
+ _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);
+ }
+ else
+ {
+ _12502 = _13279;
+ }
+ _12503 = _12502;
}
else
{
- _12502 = _13279;
+ _12503 = 1.0f;
}
- _21710 = _12502;
+ _12320 = _12503;
}
else
{
- _21710 = 1.0f;
+ _12320 = 1.0f;
}
- float3 _21711;
+ float3 _21710;
[branch]
- if ((dot(PerViewLightingConstantBufferGpu_t_1_m8.xyz, _24735) * _21710) > 0.0f)
+ if ((_8634 * _12320) > 0.0f)
{
- _21711 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (max(0.0f, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t_1_m8.xyz)).xxx.xyz * (PerViewLightingConstantBufferGpu_t_1_m9.xyz * _21710).xyz);
+ _21710 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (max(0.0f, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t_1_m8.xyz)).xxx.xyz * (PerViewLightingConstantBufferGpu_t_1_m9.xyz * _12320).xyz);
}
else
{
- _21711 = PerViewLightingConstantBufferGpu_t_1_m4.xyz;
+ _21710 = PerViewLightingConstantBufferGpu_t_1_m4.xyz;
}
bool4 _24466 = bool4(PerViewConstantBufferCsgo_t_1_m1.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m1.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m1.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m1.w != int4(0, 0, 0, 0).w);
bool _20060 = _24466.x;
@@ -892,7 +885,7 @@ PS
uint _10838 = PerViewLightingConstantBufferGpu_t_1_m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t_1_m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t_1_m5.z);
uint _23393 = PerViewLightingConstantBufferGpu_t_1_m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t_1_m7.x, 0.0f, PerViewLightingConstantBufferGpu_t_1_m7.y)) * PerViewLightingConstantBufferGpu_t_1_m5.z);
float3 _13155;
- _13155 = _21711;
+ _13155 = _21710;
uint _21567;
float3 _13156;
uint _16208 = 0u;
@@ -905,7 +898,7 @@ PS
uint _14475 = WaveActiveBitOr(g_CullBits.Load<uint>((_10838 + _16208) * 4 + 0) & g_CullBits.Load<uint>((_23393 + _16208) * 4 + 0));
_13156 = _13155;
uint _20344;
- float3 _12504;
+ float3 _12505;
uint _16209 = _14475;
for (;;)
{
@@ -948,7 +941,7 @@ PS
}
if (_12887)
{
- _12504 = _13156;
+ _12505 = _13156;
break;
}
float _23571 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;
@@ -1058,7 +1051,7 @@ PS
}
else
{
- float3 _12503;
+ float3 _12504;
if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)
{
float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);
@@ -1074,7 +1067,7 @@ PS
float3 _20491 = _14081;
_20491.x = _20564.x;
_20491.y = _20564.y;
- _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20491.xyz, 0.0f).xyz;
+ _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20491.xyz, 0.0f).xyz;
}
else
{
@@ -1083,13 +1076,13 @@ PS
float3 _20490 = _13791;
_20490.x = _20563.x;
_20490.y = _20563.y;
- _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20490.xyz, 0.0f).xyz;
+ _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20490.xyz, 0.0f).xyz;
}
- _21548 = _12503;
+ _21548 = _12504;
}
if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))
{
- _12504 = _13156;
+ _12505 = _13156;
break;
}
float3 _19630;
@@ -1112,7 +1105,7 @@ PS
float3 _16449 = _20482.xyz;
if (all(bool3(_16449.x == 0.0f.xxx.x, _16449.y == 0.0f.xxx.y, _16449.z == 0.0f.xxx.z)))
{
- _12504 = _13156;
+ _12505 = _13156;
break;
}
_19630 = _20482;
@@ -1121,10 +1114,10 @@ PS
{
_19630 = _21548;
}
- _12504 = _13156.xyz + (max(0.0f, dot(_14786.xyz, _11179.xyz)).xxx.xyz * _19630.xyz);
+ _12505 = _13156.xyz + (max(0.0f, dot(_14786.xyz, _11179.xyz)).xxx.xyz * _19630.xyz);
break;
} while(false);
- _13156 = _12504;
+ _13156 = _12505;
_16209 = _20344;
continue;
}
@@ -1405,10 +1398,10 @@ RTX
StaticCombo( S_FANCY_BLENDING, F_FANCY_BLENDING!=0 );
StaticCombo( S_DETAILTEXTURE, F_DETAILTEXTURE );
StaticCombo( S_TEXTURETRANSFORMS, F_TEXTURETRANSFORMS );
+ StaticCombo( S_OVERLAY, F_OVERLAY );
StaticCombo( S_ALPHA_TEST, F_ALPHA_TEST );
StaticCombo( S_TRANSLUCENT, F_TRANSLUCENT );
StaticCombo( S_DETAILBLENDMODE, F_DETAILBLENDMODE );
- StaticCombo( S_OVERLAY, F_OVERLAY );
StaticCombo( S_METALNESS_TEXTURE, F_METALNESS_TEXTURE );
StaticCombo( S_SHADER_QUALITY, 0..1 );
StaticComboRule( Requires( S_MODE_TOOLS_VIS, S_SHADER_QUALITY ) );
@@ -1726,9 +1719,9 @@ RTX
vec3 _479 = vec3(g_MaterialData_1._member0[_442 / 4u], g_MaterialData_1._member0[(_442 + 4u) / 4u], g_MaterialData_1._member0[(_442 + 8u) / 4u]);
float _478 = g_MaterialData_1._member0[(_442 + 12u) / 4u];
float _477 = g_MaterialData_1._member0[(_442 + 16u) / 4u];
- uint _476 = g_MaterialData_3._member0[(_442 + 48u) / 4u];
- uint _475 = g_MaterialData_3._member0[(_442 + 56u) / 4u];
- uint _474 = g_MaterialData_3._member0[(_442 + 60u) / 4u];
+ uint _476 = g_MaterialData_3._member0[(_442 + 52u) / 4u];
+ uint _475 = g_MaterialData_3._member0[(_442 + 60u) / 4u];
+ uint _474 = g_MaterialData_3._member0[(_442 + 64u) / 4u];
vec3 _473 = vec3(g_MaterialData_1._member0[(_442 + 80u) / 4u], g_MaterialData_1._member0[(_442 + 84u) / 4u], g_MaterialData_1._member0[(_442 + 88u) / 4u]);
bool _472 = g_MaterialData_5._member0[(_442 + 96u) / 4u] != 0;
bool _471 = g_MaterialData_5._member0[(_442 + 104u) / 4u] != 0;
@@ -2840,7 +2833,10 @@ RTX
BoolAttribute(SupportsMappingDimensions, true);
BoolAttribute(renderbackfaces, F_RENDER_BACKFACES ? 1 : 0);
- #if (S_SHADER_QUALITY == 0)
+ #if (S_LAYERS == 0)
+ TextureAttribute(LightSim_Opacity_A, g_tColor);
+ #endif
+ #if (S_DETAILBLENDMODE == 1)
TextureAttribute(LightSim_DiffuseAlbedoTexture2, g_tLayer2Color);
TextureAttribute(RepresentativeTexture2, g_tLayer2Color);
BoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);
@@ -2850,7 +2846,7 @@ RTX
TextureAttribute(RepresentativeTexture2, g_tLayer2Color);
BoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);
#endif
- #if (S_DETAILBLENDMODE == 1)
+ #if (S_TRANSLUCENT == 0)
TextureAttribute(LightSim_DiffuseAlbedoTexture2, g_tLayer2Color);
TextureAttribute(RepresentativeTexture2, g_tLayer2Color);
BoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);
@@ -2866,28 +2862,25 @@ RTX
#if (S_ALPHA_TEST == 0)
BoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);
#endif
- #if (S_OVERLAY == 0)
+ #if (S_SHADER_QUALITY == 0)
TextureAttribute(LightSim_DiffuseAlbedoTexture2, g_tLayer2Color);
TextureAttribute(RepresentativeTexture2, g_tLayer2Color);
BoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);
#endif
- #if (S_LAYERS == 0)
+ #if (S_DETAILBLENDMODE == 0)
TextureAttribute(LightSim_Opacity_A, g_tColor);
#endif
- #if (S_SPECULAR_INDIRECT == 0)
+ #if (S_LAYERS == 1)
TextureAttribute(LightSim_DiffuseAlbedoTexture2, g_tLayer2Color);
TextureAttribute(RepresentativeTexture2, g_tLayer2Color);
BoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);
#endif
- #if (S_LAYERS == 1)
+ #if (S_SPECULAR_INDIRECT == 0)
TextureAttribute(LightSim_DiffuseAlbedoTexture2, g_tLayer2Color);
TextureAttribute(RepresentativeTexture2, g_tLayer2Color);
BoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);
#endif
- #if (S_DETAILBLENDMODE == 0)
- TextureAttribute(LightSim_Opacity_A, g_tColor);
- #endif
- #if (S_TRANSLUCENT == 0)
+ #if (S_OVERLAY == 0)
TextureAttribute(LightSim_DiffuseAlbedoTexture2, g_tLayer2Color);
TextureAttribute(RepresentativeTexture2, g_tLayer2Color);
BoolAttribute(NoZPrepass, F_DISABLE_Z_PREPASS ? 1 : 0);
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_moondome.slang
modified • +3 / -3 • changes: 6
Show patch
@@ -218,7 +218,7 @@ PS
Texture2D g_tColor < Channel(RGB, ArtistDefined(TextureColor), Srgb); OutputFormat(DXT1); SrgbRead(true); >;
TextureCube g_tCubeMap < Channel(RGB, Box(TextureCubeMap), Srgb); OutputFormat(RGBA8888); SrgbRead(true); >;
TextureCube g_tFogCubeTexture < Attribute("CubemapFogTexture"); SrgbRead(true); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
// Color
@@ -268,11 +268,11 @@ PS
};
Texture2D<float4> g_tColor : register(t52, space1);
- SamplerState g_sUserConfig : register(s20, space1);
+ SamplerState g_sUserConfig : register(s21, space1);
TextureCube<float4> g_tCubeMap : register(t43, space1);
SamplerState Filter_Anisotropic_MaxAniso_8 : register(s14, space1);
TextureCube<float4> g_tFogCubeTexture : register(t42, space1);
- SamplerState g_sTrilinearClamp : register(s18, space1);
+ SamplerState g_sTrilinearClamp : register(s19, space1);
static float3 input_0;
static float4 input_2;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_projected_decals.slang
modified • +111 / -100 • changes: 211
Show patch
@@ -79,7 +79,7 @@ VS
Texture2D g_tSheetTexture < Attribute("SheetTexture"); SrgbRead(false); >;
[[layer_constant]] StructuredBuffer g_transformBuffer < Attribute("TransformBuffer"); >;
float4 g_vSheetSequenceAndSizes < Source(TextureSheetData); SourceArg(g_tColor) UiType(VectorText); >;
- float4 g_vShrinkWrapBB_01 < Default(0); UiType(VectorText); >;
+ float4 g_vShrinkWrapBB_01 < Default4(0, 0, 0, 1); UiType(VectorText); >;
float4 g_vShrinkWrapBB_23 < Default3(1, 1, 1); UiType(VectorText); >;
// Color
@@ -322,7 +322,7 @@ PS
float2 g_vCutoffBiasScale < UiType(VectorText); Expression(float2(cos(.017453*min(180,g_flCutoffAngle+g_flCutoffAngleSoftness)),1/(cos(.017453*g_flCutoffAngle)-cos(.017453*min(180,g_flCutoffAngle+g_flCutoffAngleSoftness))))); >;
float3 g_vDarkMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.1,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.1,.4,1.08).y)),2-float3(-.1,.4,1.08).z)); >;
float3 g_vEmissiveTintScaled < UiType(VectorText); Expression(pow(2,g_flEmissiveBrightness).x*SrgbGammaToLinear(g_vEmissiveTint.xyz)); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float3 g_vMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.45,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.45,.4,1.08).y)),2-float3(-.45,.4,1.08).z)); >;
float2 g_vRoughness < UiType(VectorText); Expression(max(.01,1-g_flGlossiness).x); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
@@ -434,17 +434,17 @@ PS
mat3x4 _m0;
};
- struct _1008
+ struct _1302
{
vec4 _m0[3];
};
- struct _1470
+ struct _1764
{
vec4 _m0[4];
};
- struct _592
+ struct _1894
{
mat4 _m0[4];
};
@@ -538,9 +538,9 @@ PS
layout(set = 1) uniform _1288 PerViewConstantBufferCsgo_t;
- struct _2267
+ struct _1586
{
- _1008 _m0;
+ _1302 _m0;
vec4 _m1;
uvec4 _m2;
uvec4 _m3;
@@ -554,11 +554,11 @@ PS
float _m11;
float _m12;
float _m13;
- _592 _m14;
- _1470 _m15;
+ _1894 _m14;
+ _1764 _m15;
};
- layout(set = 3) uniform _2267 PerViewLightingConstantBufferGpu_t;
+ layout(set = 3) uniform _1586 PerViewLightingConstantBufferGpu_t;
layout(set = 3, binding = 30, std430) readonly buffer g_CullBits
{
@@ -571,17 +571,17 @@ PS
} g_BarnLights_1;
layout(set = 1, binding = 46) uniform texture2D g_tSceneDepth;
- layout(set = 1, binding = 21) uniform sampler AddressU_Clamp_AddressV_Clamp;
+ layout(set = 1, binding = 22) uniform sampler AddressU_Clamp_AddressV_Clamp;
layout(set = 1, binding = 43) uniform texture2D g_tColor;
- layout(set = 1, binding = 23) uniform sampler DefaultSamplerState_0;
+ layout(set = 1, binding = 24) uniform sampler DefaultSamplerState_0;
layout(set = 1, binding = 45) uniform texture2D g_tAmbientOcclusion;
- layout(set = 1, binding = 27) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
+ layout(set = 1, binding = 28) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
layout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;
layout(set = 1, binding = 53) uniform texture2D g_tParticleShadowBuffer;
- layout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;
- layout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;
+ layout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;
+ layout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;
layout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;
- layout(set = 1, binding = 26) uniform sampler g_sCookieSampler;
+ layout(set = 1, binding = 27) uniform sampler g_sCookieSampler;
layout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;
layout(location = 2) flat in uint input_2;
@@ -765,105 +765,115 @@ PS
_21785 = _21103;
}
vec4 _22272 = vec4(_20808, 1.0);
- vec3 _6607 = _11403.xyz;
- float _21710;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m5.xyz, _20808);
+ float _12320;
SPIRV_CROSS_BRANCH
- if (PerViewLightingConstantBufferGpu_t._m7 != 0)
+ if (_8634 > 0.0)
{
- int _23989;
- int _10191;
- float _13137;
- vec3 _14975;
- int _13039 = 0;
- for (;;)
+ float _12504;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m7 != 0)
{
- if (!(_13039 < PerViewLightingConstantBufferGpu_t._m7))
- {
- _13137 = 1.0;
- _14975 = vec3(0.0);
- _10191 = -1;
- break;
- }
- vec4 _18322 = vec4(_11403.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_13039];
- float _12780 = _18322.x;
- if (max(abs(_12780), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m9[_13039])
+ int _23989;
+ int _10191;
+ float _13137;
+ vec3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- vec3 _19470 = vec3(_12780, _18322.yz);
- vec2 _24804 = _19470.xy;
- vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m11)) + vec2(PerViewLightingConstantBufferGpu_t._m10));
- vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m15._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_13039].xy;
- vec3 _20489 = _19470;
- _20489.x = _20561.x;
- _20489.y = _20561.y;
- _13137 = saturate(_22193.x * _22193.y);
- _14975 = _20489;
- _10191 = _13039;
- break;
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t._m7))
+ {
+ _13137 = 1.0;
+ _14975 = vec3(0.0);
+ _10191 = -1;
+ break;
+ }
+ vec4 _18322 = vec4(_11403.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_13039];
+ float _12780 = _18322.x;
+ if (max(abs(_12780), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m9[_13039])
+ {
+ vec3 _19470 = vec3(_12780, _18322.yz);
+ vec2 _24804 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m11)) + vec2(PerViewLightingConstantBufferGpu_t._m10));
+ vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m15._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_13039].xy;
+ vec3 _20489 = _19470;
+ _20489.x = _20561.x;
+ _20489.y = _20561.y;
+ _13137 = saturate(_22193.x * _22193.y);
+ _14975 = _20489;
+ _10191 = _13039;
+ break;
+ }
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
}
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
- {
- float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);
- float _12502;
- SPIRV_CROSS_BRANCH
- if (_13137 < 1.0)
+ float _19363;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t._m7 - 1))
+ float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);
+ float _12502;
+ SPIRV_CROSS_BRANCH
+ if (_13137 < 1.0)
{
- int _15335 = _10191 + 1;
- vec4 _19671 = vec4(_11403.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_15335];
- vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m15._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_15335].xy;
- vec3 _20490;
- _20490.x = _20562.x;
- _20490.y = _20562.y;
- _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20490.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m7 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19671 = vec4(_11403.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_15335];
+ vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m15._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_15335].xy;
+ vec3 _20490;
+ _20490.x = _20562.x;
+ _20490.y = _20562.y;
+ _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20490.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);
+ }
+ else
+ {
+ _7934 = 1.0;
+ }
+ _12502 = mix(_7934, _18270, _13137);
}
else
{
- _7934 = 1.0;
+ _12502 = _18270;
}
- _12502 = mix(_7934, _18270, _13137);
+ _19363 = _12502;
}
else
{
- _12502 = _18270;
+ _19363 = 1.0;
}
- _19363 = _12502;
- }
- else
- {
- _19363 = 1.0;
- }
- float _12513 = mix(_19363, 1.0, saturate((distance(_18121.xyz, PerViewConstantBuffer_t._m7) * PerViewLightingConstantBufferGpu_t._m13) + PerViewLightingConstantBufferGpu_t._m12));
- float _12503;
- if (notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0)).y)
- {
- _12503 = min(_12513, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_24832.xy * PerViewConstantBuffer_t._m6.xy).xy, 0.0).z);
+ float _12513 = mix(_19363, 1.0, saturate((distance(_18121.xyz, PerViewConstantBuffer_t._m7) * PerViewLightingConstantBufferGpu_t._m13) + PerViewLightingConstantBufferGpu_t._m12));
+ float _12503;
+ if (notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0)).y)
+ {
+ _12503 = min(_12513, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_24832.xy * PerViewConstantBuffer_t._m6.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12503 = _12513;
+ }
+ _12504 = _12503;
}
else
{
- _12503 = _12513;
+ _12504 = 1.0;
}
- _21710 = _12503;
+ _12320 = _12504;
}
else
{
- _21710 = 1.0;
+ _12320 = 1.0;
}
- vec3 _21711;
+ vec3 _21710;
SPIRV_CROSS_BRANCH
- if ((dot(PerViewLightingConstantBufferGpu_t._m5.xyz, _20808) * _21710) > 0.0)
+ if ((_8634 * _12320) > 0.0)
{
- _21711 = PerViewLightingConstantBufferGpu_t._m1.xyz + (vec3(max(0.0, dot(_20808, PerViewLightingConstantBufferGpu_t._m5.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m6.xyz * _21710).xyz);
+ _21710 = PerViewLightingConstantBufferGpu_t._m1.xyz + (vec3(max(0.0, dot(_20808, PerViewLightingConstantBufferGpu_t._m5.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m6.xyz * _12320).xyz);
}
else
{
- _21711 = PerViewLightingConstantBufferGpu_t._m1.xyz;
+ _21710 = PerViewLightingConstantBufferGpu_t._m1.xyz;
}
bvec4 _24465 = notEqual(PerViewConstantBufferCsgo_t._m1, ivec4(0));
bool _20059 = _24465.x;
@@ -887,7 +897,7 @@ PS
uint _10838 = PerViewLightingConstantBufferGpu_t._m2.y + (((_12083.y * PerViewLightingConstantBufferGpu_t._m3.y) + _12083.x) * PerViewLightingConstantBufferGpu_t._m2.z);
uint _23393 = PerViewLightingConstantBufferGpu_t._m2.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t._m4.x, 0.0, PerViewLightingConstantBufferGpu_t._m4.y)) * PerViewLightingConstantBufferGpu_t._m2.z);
vec3 _13155;
- _13155 = _21711;
+ _13155 = _21710;
uint _21567;
vec3 _13156;
uint _16208 = 0u;
@@ -900,7 +910,7 @@ PS
uint _14475 = subgroupOr(g_CullBits_1._m0[_10838 + _16208] & g_CullBits_1._m0[_23393 + _16208]);
_13156 = _13155;
uint _20344;
- vec3 _12506;
+ vec3 _12509;
uint _16209 = _14475;
for (;;)
{
@@ -912,6 +922,7 @@ PS
_20344 = _16209 & (_16209 - 1u);
do
{
+ vec3 _14644 = _11403.xyz;
vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(_11403.xyz, 1.0);
vec3 _10521 = _24893.xyz / vec3(_24893.w);
vec4 _22912;
@@ -936,11 +947,11 @@ PS
}
else
{
- _12885 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(_6607, 1.0)).xyz), vec3(1.0)));
+ _12885 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(_14644, 1.0)).xyz), vec3(1.0)));
}
if (_12885)
{
- _12506 = _13156;
+ _12509 = _13156;
break;
}
float _23571 = 2.0 * g_BarnLights_1._m0[_12608]._m5.y;
@@ -972,7 +983,7 @@ PS
float _11633;
if (g_BarnLights_1._m0[_12608]._m2.w != 0.0)
{
- vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - _6607;
+ vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - _14644;
float _18345 = dot(_10017, _10017);
float _17647 = sqrt(_18345);
vec3 _12302 = _10017 - _16268;
@@ -1050,7 +1061,7 @@ PS
}
else
{
- vec3 _12504;
+ vec3 _12505;
if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)
{
vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);
@@ -1066,7 +1077,7 @@ PS
vec3 _20492 = _14081;
_20492.x = _20565.x;
_20492.y = _20565.y;
- _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;
+ _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;
}
else
{
@@ -1075,13 +1086,13 @@ PS
vec3 _20491 = _13791;
_20491.x = _20564.x;
_20491.y = _20564.y;
- _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;
+ _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;
}
- _21548 = _12504;
+ _21548 = _12505;
}
if (all(equal(_21548.xyz, vec3(0.0))))
{
- _12506 = _13156;
+ _12509 = _13156;
break;
}
vec3 _20940;
@@ -1103,7 +1114,7 @@ PS
vec3 _20482 = _21548.xyz * mix(1.0, textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(vec3(fma(_19630.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19630.z).xy, saturate(_19630.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0), g_BarnLights_1._m0[_12608]._m12);
if (all(equal(_20482.xyz, vec3(0.0))))
{
- _12506 = _13156;
+ _12509 = _13156;
break;
}
_20940 = _20482;
@@ -1112,10 +1123,10 @@ PS
{
_20940 = _21548;
}
- _12506 = _13156.xyz + (vec3(max(0.0, dot(_20808, _11180.xyz))).xyz * _20940.xyz);
+ _12509 = _13156.xyz + (vec3(max(0.0, dot(_20808, _11180.xyz))).xyz * _20940.xyz);
break;
} while(false);
- _13156 = _12506;
+ _13156 = _12509;
_16209 = _20344;
continue;
}
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_refract.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -187,7 +187,7 @@ PS
Texture2D g_tNormal < Channel(RGBA, MipNormal(TextureNormal), Linear); OutputFormat(BC7); SrgbRead(false); >;
Texture2D g_tNormal2 < Channel(RGBA, MipNormal(TextureNormal2), Linear); OutputFormat(BC7); SrgbRead(false); >;
Texture2D g_tRefractTint < Channel(RGBA, MipNormal(TextureTintTexture), Linear); OutputFormat(BC7); SrgbRead(false); >;
- float4 g_vFBCopyTextureRect < Default2(0, 0); Attribute("FrameBufferCopyRectangle"); UiType(VectorText); >;
+ float4 g_vFBCopyTextureRect < Default4(0, 0, 1, 1); Attribute("FrameBufferCopyRectangle"); UiType(VectorText); >;
// Refraction
CreateInputTexture2D(TextureNormal, Linear, 8, "", "_normal", "Refraction", Default4(0.5, 0.5, 1, 0));
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_simple.slang
modified • +108 / -97 • changes: 205
Show patch
@@ -313,7 +313,7 @@ PS
Texture2D g_tColor < Channel(RGB, ArtistDefined(TextureColor), Srgb); Channel(A, Box(TextureMetalness), Linear); OutputFormat(BC7); SrgbRead(true); >;
Texture2D g_tColor < Channel(RGB, ArtistDefined(TextureColor), Srgb); Channel(A, Box(TextureAmbientOcclusion), Linear); OutputFormat(BC7); SrgbRead(true); >;
Texture2D g_tNormal < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureNormal, TextureRoughness), Linear); OutputFormat(BC7); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
// Ambient Occlusion
@@ -348,17 +348,17 @@ PS
// Source 2 Viewer - https://valveresourceformat.github.io
// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup
- struct _2578
+ struct _2830
{
float4 _m0[3];
};
- struct _2788
+ struct _30
{
float4 _m0[4];
};
- struct _837
+ struct _1953
{
column_major float4x4 _m0[4];
};
@@ -397,20 +397,20 @@ PS
cbuffer _Globals_ : register(b0, space1)
{
uint _Globals_1_g_tColor : packoffset(c0);
- uint _Globals_1_g_sTrilinearWrap : packoffset(c0.w);
- uint _Globals_1_g_sTrilinearClamp : packoffset(c1);
- uint _Globals_1_g_sPointClamp : packoffset(c1.y);
- uint _Globals_1_g_sUserConfig : packoffset(c2);
- uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c2.y);
- uint _Globals_1_g_sCookieSampler : packoffset(c2.w);
- uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c3);
- int _Globals_1_g_bFogEnabled : packoffset(c3.z);
- int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c3.w);
- int _Globals_1_g_bRenderBackfaceNormals : packoffset(c4);
- float _Globals_1_g_flReflectance : packoffset(c4.y);
- uint _Globals_1_g_tNormal : packoffset(c8);
- uint _Globals_1_g_tAmbientOcclusion : packoffset(c8.w);
- float _Globals_1_g_flMetalness : packoffset(c9);
+ uint _Globals_1_g_sTrilinearWrap : packoffset(c1);
+ uint _Globals_1_g_sTrilinearClamp : packoffset(c1.y);
+ uint _Globals_1_g_sPointClamp : packoffset(c1.z);
+ uint _Globals_1_g_sUserConfig : packoffset(c2.y);
+ uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c2.z);
+ uint _Globals_1_g_sCookieSampler : packoffset(c3);
+ uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c3.y);
+ int _Globals_1_g_bFogEnabled : packoffset(c3.w);
+ int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c4);
+ int _Globals_1_g_bRenderBackfaceNormals : packoffset(c4.y);
+ float _Globals_1_g_flReflectance : packoffset(c4.z);
+ uint _Globals_1_g_tNormal : packoffset(c8.y);
+ uint _Globals_1_g_tAmbientOcclusion : packoffset(c9);
+ float _Globals_1_g_flMetalness : packoffset(c9.y);
};
cbuffer PerViewConstantBufferCsgo_t : register(b3, space1)
@@ -440,8 +440,8 @@ PS
cbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)
{
- _2578 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);
- _2788 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);
+ _2830 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);
+ _30 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);
float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c16);
float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c17);
float4 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c18);
@@ -458,8 +458,8 @@ PS
float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.y);
float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.z);
float PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1955.w);
- _837 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);
- _2788 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);
+ _1953 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);
+ _30 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);
uint PerViewLightingConstantBufferGpu_t_1_m20 : packoffset(c1996);
uint PerViewLightingConstantBufferGpu_t_1_m21 : packoffset(c1996.y);
};
@@ -645,99 +645,110 @@ PS
{
_21710 = 1.0f;
}
- float _21711;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735);
+ float _12320;
[branch]
- if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)
+ if (_8634 > 0.0f)
{
- int _23989;
- int _10191;
- float _13136;
- float3 _14975;
- int _13039 = 0;
- for (;;)
+ float _12503;
+ [branch]
+ if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)
{
- if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))
- {
- _13136 = 1.0f;
- _14975 = 0.0f.xxx;
- _10191 = -1;
- break;
- }
- float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_0.xyz, 1.0f));
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])
+ int _23989;
+ int _10191;
+ float _13136;
+ float3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- float3 _19470 = float3(_12779, _18322.yz);
- float2 _24804 = _19470.xy;
- float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);
- float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;
- float3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13136 = saturate(_22193.x * _22193.y);
- _14975 = _20488;
- _10191 = _13039;
- break;
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))
+ {
+ _13136 = 1.0f;
+ _14975 = 0.0f.xxx;
+ _10191 = -1;
+ break;
+ }
+ float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_0.xyz, 1.0f));
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])
+ {
+ float3 _19470 = float3(_12779, _18322.yz);
+ float2 _24804 = _19470.xy;
+ float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);
+ float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;
+ float3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13136 = saturate(_22193.x * _22193.y);
+ _14975 = _20488;
+ _10191 = _13039;
+ break;
+ }
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
}
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
- {
- float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12));
- float _12501;
- [branch]
- if (_13136 < 1.0f)
+ float _19363;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))
+ float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12));
+ float _12501;
+ [branch]
+ if (_13136 < 1.0f)
{
- int _15335 = _10191 + 1;
- float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_0.xyz, 1.0f));
- float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;
- float3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12));
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))
+ {
+ int _15335 = _10191 + 1;
+ float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_0.xyz, 1.0f));
+ float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;
+ float3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12));
+ }
+ else
+ {
+ _7934 = 1.0f;
+ }
+ _12501 = lerp(_7934, _18270, _13136);
}
else
{
- _7934 = 1.0f;
+ _12501 = _18270;
}
- _12501 = lerp(_7934, _18270, _13136);
+ _19363 = _12501;
}
else
{
- _12501 = _18270;
+ _19363 = 1.0f;
}
- _19363 = _12501;
- }
- else
- {
- _19363 = 1.0f;
- }
- float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));
- float _12502;
- if (_24465.y)
- {
- _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);
+ float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));
+ float _12502;
+ if (_24465.y)
+ {
+ _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);
+ }
+ else
+ {
+ _12502 = _13279;
+ }
+ _12503 = _12502;
}
else
{
- _12502 = _13279;
+ _12503 = 1.0f;
}
- _21711 = _12502;
+ _12320 = _12503;
}
else
{
- _21711 = 1.0f;
+ _12320 = 1.0f;
}
float3 _9716;
float3 _24878;
[branch]
- if ((dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735) * _21711) > 0.0f)
+ if ((_8634 * _12320) > 0.0f)
{
bool3 _19899 = all(bool3(_17892.x == 1.0f.xxx.x, _17892.y == 1.0f.xxx.y, _17892.z == 1.0f.xxx.z)).xxx;
float _11797 = max(0.0f, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t_1_m9.xyz));
@@ -749,7 +760,7 @@ PS
float _25211 = _9850 * _9850;
float _19095 = _25211 * _25211;
float _15346 = ((_12386 * _12386) * (_19095 - 1.0f)) + 1.0f;
- float3 _16808 = (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _21711).xyz;
+ float3 _16808 = (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _12320).xyz;
_9716 = ((_12351.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0f) + 2.0f)))).xyz * _11797).xyz * _16808;
_24878 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (_11797.xxx.xyz * _16808);
}
@@ -952,7 +963,7 @@ PS
}
else
{
- float3 _12503;
+ float3 _12504;
if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)
{
float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);
@@ -968,7 +979,7 @@ PS
float3 _20492 = _14081;
_20492.x = _20564.x;
_20492.y = _20564.y;
- _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20492.xyz, 0.0f).xyz;
+ _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20492.xyz, 0.0f).xyz;
}
else
{
@@ -977,9 +988,9 @@ PS
float3 _20491 = _13791;
_20491.x = _20563.x;
_20491.y = _20563.y;
- _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20491.xyz, 0.0f).xyz;
+ _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20491.xyz, 0.0f).xyz;
}
- _21548 = _12503;
+ _21548 = _12504;
}
if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))
{
@@ -1025,9 +1036,9 @@ PS
float _19211 = max(0.0f, dot(_11179.xyz, _12282));
float _9851 = _9841.x;
float _25212 = _9851 * _9851;
- float _19097 = _25212 * _25212;
- float _15348 = ((_12387 * _12387) * (_19097 - 1.0f)) + 1.0f;
- _13212 = _13138.xyz + (((_12351.xyz * (_19097 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0f) + 2.0f)))).xyz * _11798).xyz * _22671.xyz);
+ float _19096 = _25212 * _25212;
+ float _15348 = ((_12387 * _12387) * (_19096 - 1.0f)) + 1.0f;
+ _13212 = _13138.xyz + (((_12351.xyz * (_19096 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0f) + 2.0f)))).xyz * _11798).xyz * _22671.xyz);
_15670 = _16325.xyz + (_11798.xxx.xyz * _22671.xyz);
break;
} while(false);
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_simple_2way_blend.slang
modified • +423 / -418 • changes: 841
Show patch
@@ -313,7 +313,7 @@ PS
Texture2D g_tNormalA < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureNormalA, TextureRoughnessA), Linear); OutputFormat(BC7); SrgbRead(false); >;
Texture2D g_tNormalB < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureNormalB, TextureRoughnessB), Linear); OutputFormat(BC7); SrgbRead(false); >;
Texture2D g_tTintMask < Channel(R, Box(TextureTintMaskA), Linear); Channel(G, Box(TextureTintMaskB), Linear); OutputFormat(ATI2N); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
// Material A
@@ -352,451 +352,476 @@ PS
Texture2D g_tColorA < Channel(RGB, Box(TextureColorA), Srgb); OutputFormat(DXT1); SrgbRead(true); >;
Texture2D g_tColorB < Channel(RGB, Box(TextureColorB), Srgb); OutputFormat(DXT1); SrgbRead(true); >;
+ // SPIR-V reflection failed for backend HLSL:
+ // cbuffer ID 5618 (name: _Globals_), member index 6 (name: g_vTexCoordScale2) cannot be expressed with either HLSL packing layout or packoffset.
+ //
+ // Re-attempting reflection with the GLSL backend.
+
// Source 2 Viewer - https://valveresourceformat.github.io
- // SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup
+ // SPIR-V source, GLSL reflection with SPIRV-Cross by KhronosGroup
+
+ #version 460
+ #if defined(GL_EXT_control_flow_attributes)
+ #extension GL_EXT_control_flow_attributes : require
+ #define SPIRV_CROSS_FLATTEN [[flatten]]
+ #define SPIRV_CROSS_BRANCH [[dont_flatten]]
+ #define SPIRV_CROSS_UNROLL [[unroll]]
+ #define SPIRV_CROSS_LOOP [[dont_unroll]]
+ #else
+ #define SPIRV_CROSS_FLATTEN
+ #define SPIRV_CROSS_BRANCH
+ #define SPIRV_CROSS_UNROLL
+ #define SPIRV_CROSS_LOOP
+ #endif
+ #extension GL_KHR_shader_subgroup_arithmetic : require
- struct _2242
+ struct _2494
{
- float4 _m0[3];
+ vec4 _m0[3];
};
- struct _2452
+ struct _2704
{
- float4 _m0[4];
+ vec4 _m0[4];
};
- struct _2360
+ struct _465
{
- column_major float4x4 _m0[4];
+ mat4 _m0[4];
};
struct _200
{
- column_major float4x4 _m0;
- column_major float4x4 _m1;
- float4 _m2;
- float4 _m3;
- float4 _m4;
- float4 _m5;
- float3 _m6;
+ mat4 _m0;
+ mat4 _m1;
+ vec4 _m2;
+ vec4 _m3;
+ vec4 _m4;
+ vec4 _m5;
+ vec3 _m6;
uint _m7;
- float4 _m8;
- float4 _m9;
- float4 _m10;
+ vec4 _m8;
+ vec4 _m9;
+ vec4 _m10;
float _m11;
float _m12;
uint _m13;
int _m14;
- column_major float4x3 _m15;
- float4 _m16;
- float4 _m17;
- float4 _m18;
- float4 _m19;
- float4 _m20;
- float3 _m21;
+ mat4x3 _m15;
+ vec4 _m16;
+ vec4 _m17;
+ vec4 _m18;
+ vec4 _m19;
+ vec4 _m20;
+ vec3 _m21;
float _m22;
- column_major float4x4 _m23;
+ mat4 _m23;
};
- static float4 _3;
- static float3 _4;
+ vec4 _3;
+ vec3 _4;
- cbuffer _Globals_ : register(b0, space1)
+ struct _1571
{
- uint _Globals_1_g_sTrilinearWrap : packoffset(c0.z);
- uint _Globals_1_g_sTrilinearClamp : packoffset(c0.w);
- uint _Globals_1_g_sPointClamp : packoffset(c1);
- uint _Globals_1_g_sUserConfig : packoffset(c1.w);
- float _Globals_1_g_flMetalnessA : packoffset(c3);
- float _Globals_1_g_flMetalnessB : packoffset(c3.y);
- float2 _Globals_1_g_vTexCoordScale2 : packoffset(c3.z);
- uint _Globals_1_g_tColorA : packoffset(c4);
- uint _Globals_1_g_tColorB : packoffset(c4.y);
- uint _Globals_1_g_tNormalA : packoffset(c4.z);
- uint _Globals_1_g_tNormalB : packoffset(c4.w);
- uint _Globals_1_g_tMask : packoffset(c5);
- uint _Globals_1_g_sCookieSampler : packoffset(c5.z);
- uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c5.w);
- int _Globals_1_g_bFogEnabled : packoffset(c6.y);
- float _Globals_1_g_flReflectance : packoffset(c7);
+ uint g_sTrilinearWrap;
+ uint g_sTrilinearClamp;
+ uint g_sPointClamp;
+ uint g_sUserConfig;
+ float g_flMetalnessA;
+ float g_flMetalnessB;
+ vec2 g_vTexCoordScale2;
+ uint g_tColorA;
+ uint g_tColorB;
+ uint g_tNormalA;
+ uint g_tNormalB;
+ uint g_tMask;
+ uint g_sCookieSampler;
+ uint g_tShadowDepthBufferCmpSampler;
+ int g_bFogEnabled;
+ float g_flReflectance;
};
- cbuffer PerViewConstantBufferCsgo_t : register(b3, space1)
+ layout(set = 1) uniform _1571 _Globals_;
+
+ struct _1374
{
- int4 PerViewConstantBufferCsgo_t_1_m0 : packoffset(c1);
- int4 PerViewConstantBufferCsgo_t_1_m1 : packoffset(c2);
- int4 PerViewConstantBufferCsgo_t_1_m2 : packoffset(c3);
- uint PerViewConstantBufferCsgo_t_1_m3 : packoffset(c4.z);
- uint PerViewConstantBufferCsgo_t_1_m4 : packoffset(c4.w);
- uint PerViewConstantBufferCsgo_t_1_m5 : packoffset(c5);
- uint PerViewConstantBufferCsgo_t_1_m6 : packoffset(c5.z);
- uint PerViewConstantBufferCsgo_t_1_m7 : packoffset(c6.z);
- column_major float4x4 PerViewConstantBufferCsgo_t_1_m8 : packoffset(c12);
- float2 PerViewConstantBufferCsgo_t_1_m9 : packoffset(c16);
- float PerViewConstantBufferCsgo_t_1_m10 : packoffset(c16.z);
- float4 PerViewConstantBufferCsgo_t_1_m11 : packoffset(c23);
- float4 PerViewConstantBufferCsgo_t_1_m12 : packoffset(c24);
- float4 PerViewConstantBufferCsgo_t_1_m13 : packoffset(c25);
- float4 PerViewConstantBufferCsgo_t_1_m14 : packoffset(c26);
- float4 PerViewConstantBufferCsgo_t_1_m15 : packoffset(c27);
- float4 PerViewConstantBufferCsgo_t_1_m16 : packoffset(c28);
- column_major float4x4 PerViewConstantBufferCsgo_t_1_m17 : packoffset(c29);
- float4 PerViewConstantBufferCsgo_t_1_m18 : packoffset(c33);
- float4 PerViewConstantBufferCsgo_t_1_m19 : packoffset(c34);
- float4 PerViewConstantBufferCsgo_t_1_m20 : packoffset(c35);
+ ivec4 _m0;
+ ivec4 _m1;
+ ivec4 _m2;
+ uint _m3;
+ uint _m4;
+ uint _m5;
+ uint _m6;
+ uint _m7;
+ mat4 _m8;
+ vec2 _m9;
+ float _m10;
+ vec4 _m11;
+ vec4 _m12;
+ vec4 _m13;
+ vec4 _m14;
+ vec4 _m15;
+ vec4 _m16;
+ mat4 _m17;
+ vec4 _m18;
+ vec4 _m19;
+ vec4 _m20;
};
- cbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)
+ layout(set = 1) uniform _1374 PerViewConstantBufferCsgo_t;
+
+ struct _838
{
- _2242 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);
- _2452 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);
- float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c16);
- float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c17);
- float4 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c18);
- uint4 PerViewLightingConstantBufferGpu_t_1_m5 : packoffset(c19);
- uint4 PerViewLightingConstantBufferGpu_t_1_m6 : packoffset(c22);
- float4 PerViewLightingConstantBufferGpu_t_1_m7 : packoffset(c23);
- float4 PerViewLightingConstantBufferGpu_t_1_m8 : packoffset(c24);
- float4 PerViewLightingConstantBufferGpu_t_1_m9 : packoffset(c1945);
- float4 PerViewLightingConstantBufferGpu_t_1_m10 : packoffset(c1946);
- int PerViewLightingConstantBufferGpu_t_1_m11 : packoffset(c1953);
- float PerViewLightingConstantBufferGpu_t_1_m12 : packoffset(c1953.z);
- float4 PerViewLightingConstantBufferGpu_t_1_m13 : packoffset(c1954);
- float PerViewLightingConstantBufferGpu_t_1_m14 : packoffset(c1955);
- float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.y);
- float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.z);
- float PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1955.w);
- _2360 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);
- _2452 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);
- uint PerViewLightingConstantBufferGpu_t_1_m20 : packoffset(c1996);
- uint PerViewLightingConstantBufferGpu_t_1_m21 : packoffset(c1996.y);
+ _2494 _m0;
+ _2704 _m1;
+ vec4 _m2;
+ vec4 _m3;
+ vec4 _m4;
+ uvec4 _m5;
+ uvec4 _m6;
+ vec4 _m7;
+ vec4 _m8;
+ vec4 _m9;
+ vec4 _m10;
+ int _m11;
+ float _m12;
+ vec4 _m13;
+ float _m14;
+ float _m15;
+ float _m16;
+ float _m17;
+ _465 _m18;
+ _2704 _m19;
+ uint _m20;
+ uint _m21;
};
- cbuffer PerViewConstantBuffer_t : register(b1, space1)
+ layout(set = 3) uniform _838 PerViewLightingConstantBufferGpu_t;
+
+ struct _1194
{
- float2 PerViewConstantBuffer_t_1_m0 : packoffset(c20);
- float2 PerViewConstantBuffer_t_1_m1 : packoffset(c20.z);
- float4 PerViewConstantBuffer_t_1_m2 : packoffset(c22);
- float3 PerViewConstantBuffer_t_1_m3 : packoffset(c26);
+ vec2 _m0;
+ vec2 _m1;
+ vec4 _m2;
+ vec3 _m3;
};
- ByteAddressBuffer g_CullBits : register(t30, space3);
- ByteAddressBuffer g_BarnLights : register(t31, space3);
- Texture2D<float4> g_bindless_Texture2D_float4[65536] : register(t46, space4);
- SamplerState g_bindless_Sampler[2048] : register(s29, space4);
- SamplerComparisonState g_bindless_Sampler_1[2048] : register(s29, space4);
- Texture3D<float4> g_bindless_Texture3D_float4[65536] : register(t46, space4);
- TextureCubeArray<float4> g_bindless_TextureCubeArray_float4[65536] : register(t46, space4);
- TextureCube<float4> g_bindless_TextureCube_float4[65536] : register(t46, space4);
-
- static float4 gl_FragCoord;
- static float4 input_0;
- static float3 input_1;
- static float3 input_2;
- static float4 input_3;
- static float4 input_4;
- static float3 input_5;
- static float4 input_6;
- static float4 output_0;
-
- struct PS_INPUT
+ layout(set = 1) uniform _1194 PerViewConstantBuffer_t;
+
+ layout(set = 3, binding = 30, std430) readonly buffer g_CullBits
{
- float4 input_0 : TEXCOORD0;
- float3 input_1 : TEXCOORD1;
- float3 input_2 : TEXCOORD2;
- float4 input_3 : TEXCOORD3;
- centroid float4 input_4 : TEXCOORD4;
- centroid float3 input_5 : TEXCOORD5;
- float4 input_6 : TEXCOORD6;
- float4 gl_FragCoord : SV_Position;
- };
+ uint _m0[];
+ } g_CullBits_1;
- struct PS_OUTPUT
+ layout(set = 3, binding = 31, std430) readonly buffer g_BarnLights
{
- float4 output_0 : SV_Target0;
- };
+ layout(row_major) _200 _m0[];
+ } g_BarnLights_1;
+
+ layout(set = 4, binding = 46) uniform texture2D g_bindless_Texture2D_float4[65536];
+ layout(set = 4, binding = 29) uniform sampler g_bindless_Sampler[2048];
+ layout(set = 4, binding = 29) uniform samplerShadow g_bindless_Sampler_1[2048];
+ layout(set = 4, binding = 46) uniform texture3D g_bindless_Texture3D_float4[65536];
+ layout(set = 4, binding = 46) uniform textureCubeArray g_bindless_TextureCubeArray_float4[65536];
+ layout(set = 4, binding = 46) uniform textureCube g_bindless_TextureCube_float4[65536];
+
+ layout(location = 0) in vec4 input_0;
+ layout(location = 1) in vec3 input_1;
+ layout(location = 2) in vec3 input_2;
+ layout(location = 3) in vec4 input_3;
+ layout(location = 4) centroid in vec4 input_4;
+ layout(location = 5) centroid in vec3 input_5;
+ layout(location = 6) in vec4 input_6;
+ layout(location = 0) out vec4 output_0;
- void MainPs_inner()
+ void main()
{
- float4 _11408 = gl_FragCoord;
- _11408.w = 1.0f / _11408.w;
- float3 _21709;
- if (dot(input_2.xyz, input_2.xyz) >= 1.0099999904632568359375f)
+ vec4 _11408 = gl_FragCoord;
+ _11408.w = 1.0 / _11408.w;
+ vec3 _21709;
+ if (dot(input_2.xyz, input_2.xyz) >= 1.0099999904632568359375)
{
_21709 = input_5.xyz;
}
else
{
_21709 = input_2.xyz;
}
- float3 _20700 = normalize(_21709);
- float3 _7715 = input_1 + PerViewConstantBufferCsgo_t_1_m20.xyz;
- float2 _11085 = (input_3.xy * _Globals_1_g_vTexCoordScale2.xy).xy;
- float4 _21762 = g_bindless_Texture2D_float4[_Globals_1_g_tNormalA].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfig], input_3.xy);
- float4 _21763 = g_bindless_Texture2D_float4[_Globals_1_g_tNormalB].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfig], _11085);
- float4 _19372 = g_bindless_Texture2D_float4[_Globals_1_g_tMask].Sample(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _11085);
+ vec3 _20700 = normalize(_21709);
+ vec3 _7715 = input_1 + PerViewConstantBufferCsgo_t._m20.xyz;
+ vec2 _11085 = (input_3.xy * _Globals_.g_vTexCoordScale2.xy).xy;
+ vec4 _21762 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tNormalA], g_bindless_Sampler[_Globals_.g_sUserConfig]), input_3.xy);
+ vec4 _21763 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tNormalB], g_bindless_Sampler[_Globals_.g_sUserConfig]), _11085);
+ vec4 _19372 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tMask], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _11085);
float _16038 = _19372.x;
- float _24575 = smoothstep(max(0.0f, _16038 - input_0.w), min(1.0f, _16038 + input_0.w), input_0.x);
- float3 _21122 = g_bindless_Texture2D_float4[_Globals_1_g_tColorA].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfig], input_3.xy).xyz * input_4.xyz;
- float4 _23714;
+ float _24575 = smoothstep(max(0.0, _16038 - input_0.w), min(1.0, _16038 + input_0.w), input_0.x);
+ vec3 _21122 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tColorA], g_bindless_Sampler[_Globals_.g_sUserConfig]), input_3.xy).xyz * input_4.xyz;
+ vec4 _23714;
_23714.x = _21122.x;
_23714.y = _21122.y;
_23714.z = _21122.z;
- float3 _20313 = g_bindless_Texture2D_float4[_Globals_1_g_tColorB].Sample(g_bindless_Sampler[_Globals_1_g_sUserConfig], _11085).xyz * input_4.xyz;
- float4 _23715;
+ vec3 _20313 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tColorB], g_bindless_Sampler[_Globals_.g_sUserConfig]), _11085).xyz * input_4.xyz;
+ vec4 _23715;
_23715.x = _20313.x;
_23715.y = _20313.y;
_23715.z = _20313.z;
- float4 _8489 = lerp(_21762.xyzw, _21763.xyzw, _24575.xxxx);
- float _14051 = lerp(_Globals_1_g_flMetalnessA, _Globals_1_g_flMetalnessB, _24575);
- float3 _11217 = lerp(_23714.xyz, _23715.xyz, _24575.xxx).xyz;
- float3 _25153 = lerp(_Globals_1_g_flReflectance.xxx.xyz, _11217, _14051.xxx);
+ vec4 _8489 = mix(_21762.xyzw, _21763.xyzw, vec4(_24575));
+ float _14051 = mix(_Globals_.g_flMetalnessA, _Globals_.g_flMetalnessB, _24575);
+ vec3 _11217 = mix(_23714.xyz, _23715.xyz, vec3(_24575)).xyz;
+ vec3 _25153 = mix(vec3(_Globals_.g_flReflectance).xyz, _11217, vec3(_14051));
float _10782 = _8489.x;
float _17303 = _8489.y;
- float _16783 = (_10782 + _17303) - 1.00392162799835205078125f;
+ float _16783 = (_10782 + _17303) - 1.00392162799835205078125;
float _11176 = _10782 - _17303;
- float3 _23372 = normalize(float3(float2(_16783, _11176), (1.0f - abs(_16783)) - abs(_11176)));
- float3 _20024 = input_2.xyz * 1.0f;
- float3 _14435 = cross(_20024.xyz, input_6.xyz) * ((input_6.w > 0.0f) ? 1.0f : (-1.0f));
- float3 _20195;
- if (bool4(PerViewConstantBufferCsgo_t_1_m2.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m2.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m2.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m2.w != int4(0, 0, 0, 0).w).w)
+ vec3 _23372 = normalize(vec3(vec2(_16783, _11176), (1.0 - abs(_16783)) - abs(_11176)));
+ vec3 _20024 = input_2.xyz * 1.0;
+ vec3 _14435 = cross(_20024.xyz, input_6.xyz) * ((input_6.w > 0.0) ? 1.0 : (-1.0));
+ vec3 _20195;
+ if (notEqual(PerViewConstantBufferCsgo_t._m2, ivec4(0)).w)
{
_20195 = -_14435;
}
else
{
_20195 = _14435;
}
- float3 _19740 = normalize((((input_6.xyz * _23372.x).xyz + (_20195.xyz * (-_23372.y))).xyz + (_20024.xyz * _23372.z)).xyz);
- bool3 _10679 = all(bool3(true, true, true)).xxx;
- float3 _17892 = float3(_10679.x ? _19740.x : 1.0f.xxx.x, _10679.y ? _19740.y : 1.0f.xxx.y, _10679.z ? _19740.z : 1.0f.xxx.z);
- float3 _10560 = _20700.xyz;
- float3 _11099 = ddx(_10560);
- float3 _9175 = ddy(_10560);
- float3 _10347 = _11099.xyz;
- float3 _12420 = _9175.xyz;
- float2 _21815 = max(_8489.z.xx.xy, pow(saturate(max(dot(_10347, _10347), dot(_12420, _12420))), 0.333000004291534423828125f).xx);
- float3 _15598 = -_20700;
- float3 _24735 = _19740.xyz;
- float4 _23875 = float4(_24735, 1.0f);
- bool4 _24465 = bool4(PerViewConstantBufferCsgo_t_1_m0.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m0.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m0.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m0.w != int4(0, 0, 0, 0).w);
+ vec3 _19740 = normalize((((input_6.xyz * _23372.x).xyz + (_20195.xyz * (-_23372.y))).xyz + (_20024.xyz * _23372.z)).xyz);
+ vec3 _17892 = mix(vec3(1.0), _19740, bvec3(all(bvec3(true))));
+ vec3 _10560 = _20700.xyz;
+ vec3 _11099 = dFdx(_10560);
+ vec3 _9175 = dFdy(_10560);
+ vec3 _10347 = _11099.xyz;
+ vec3 _12420 = _9175.xyz;
+ vec2 _21815 = max(vec2(_8489.z).xy, vec2(pow(saturate(max(dot(_10347, _10347), dot(_12420, _12420))), 0.333000004291534423828125)));
+ vec3 _15598 = -_20700;
+ vec3 _24735 = _19740.xyz;
+ vec4 _23875 = vec4(_24735, 1.0);
+ bvec4 _24465 = notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0));
float _21710;
if (_24465.x)
{
- float3 _11394 = _20700.xyz;
- float2 _11086 = ((floor(_11408.xy * PerViewConstantBufferCsgo_t_1_m10) * PerViewConstantBufferCsgo_t_1_m9.xy) + (PerViewConstantBufferCsgo_t_1_m9.xy * 0.5f)).xy;
- float4 _18418 = g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m5].GatherRed(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _11086).xyzw - _11408.zzzz;
+ vec3 _11394 = _20700.xyz;
+ vec2 _11086 = ((floor(_11408.xy * PerViewConstantBufferCsgo_t._m10) * PerViewConstantBufferCsgo_t._m9.xy) + (PerViewConstantBufferCsgo_t._m9.xy * 0.5)).xy;
+ vec4 _18418 = textureGather(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m5], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _11086).xyzw - _11408.zzzz;
float _18579 = _18418.w;
float _12013 = _18418.z;
bool _12285 = abs(_12013) < _18579;
- float2 _23168;
+ vec2 _23168;
if (_12285)
{
- _23168 = float2(PerViewConstantBufferCsgo_t_1_m9.x, 0.0f);
+ _23168 = vec2(PerViewConstantBufferCsgo_t._m9.x, 0.0);
}
else
{
- _23168 = 0.0f.xx;
+ _23168 = vec2(0.0);
}
float _20965 = _12285 ? _12013 : _18579;
float _15372 = _18418.x;
bool _12286 = abs(_15372) < _20965;
- float2 _23169;
+ vec2 _23169;
if (_12286)
{
- _23169 = float2(0.0f, PerViewConstantBufferCsgo_t_1_m9.y);
+ _23169 = vec2(0.0, PerViewConstantBufferCsgo_t._m9.y);
}
else
{
_23169 = _23168;
}
- bool2 _13083 = (abs(_18418.y) < (_12286 ? _15372 : _20965)).xx;
- float4 _10010 = normalize(float4(PerViewLightingConstantBufferGpu_t_1_m2.x * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[0].xy, 0.25f))), 0.5f, 0.5f), PerViewLightingConstantBufferGpu_t_1_m2.y * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[1].xy, 0.25f))), 0.5f, 0.5f), PerViewLightingConstantBufferGpu_t_1_m2.z * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[2].xy, 0.25f))), 0.5f, 0.5f), PerViewLightingConstantBufferGpu_t_1_m2.w * mad(dot(_15598, normalize(float3(PerViewLightingConstantBufferGpu_t_1_m1._m0[3].xy, 0.25f))), 0.5f, 0.5f)));
- float4 _13232 = max(float4(dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[0].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[1].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[2].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t_1_m1._m0[3].xyz, _11394)).xyzw, 0.0f.xxxx) * normalize(clamp(((_10010 - max(max(_10010.x, _10010.y), max(_10010.z, _10010.w)).xxxx) + 0.20000000298023223876953125f.xxxx) * 5.0f.xxxx, 0.0f.xxxx, 1.0f.xxxx));
- _21710 = (1.0f / (dot(_13232, 1.0f.xxxx) + PerViewLightingConstantBufferGpu_t_1_m3.x)) * (PerViewLightingConstantBufferGpu_t_1_m3.x + dot(_13232, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m4].SampleLevel(g_bindless_Sampler[_Globals_1_g_sPointClamp], (_11086 + float2(_13083.x ? PerViewConstantBufferCsgo_t_1_m9.xy.x : _23169.x, _13083.y ? PerViewConstantBufferCsgo_t_1_m9.xy.y : _23169.y).xy).xy, 0.0f)));
+ vec4 _10010 = normalize(vec4(PerViewLightingConstantBufferGpu_t._m2.x * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[0].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m2.y * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[1].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m2.z * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[2].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m2.w * fma(dot(_15598, normalize(vec3(PerViewLightingConstantBufferGpu_t._m1._m0[3].xy, 0.25))), 0.5, 0.5)));
+ vec4 _13232 = max(vec4(dot(PerViewLightingConstantBufferGpu_t._m1._m0[0].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m1._m0[1].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m1._m0[2].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m1._m0[3].xyz, _11394)).xyzw, vec4(0.0)) * normalize(saturate(((_10010 - vec4(max(max(_10010.x, _10010.y), max(_10010.z, _10010.w)))) + vec4(0.20000000298023223876953125)) * vec4(5.0)));
+ _21710 = (1.0 / (dot(_13232, vec4(1.0)) + PerViewLightingConstantBufferGpu_t._m3.x)) * (PerViewLightingConstantBufferGpu_t._m3.x + dot(_13232, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], g_bindless_Sampler[_Globals_.g_sPointClamp]), (_11086 + mix(_23169, PerViewConstantBufferCsgo_t._m9.xy, bvec2(abs(_18418.y) < (_12286 ? _15372 : _20965))).xy).xy, 0.0)));
}
else
{
- _21710 = 1.0f;
+ _21710 = 1.0;
}
- float _21711;
- [branch]
- if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _24735);
+ float _12320;
+ SPIRV_CROSS_BRANCH
+ if (_8634 > 0.0)
{
- int _23989;
- int _10191;
- float _13136;
- float3 _14975;
- int _13039 = 0;
- for (;;)
+ float _12503;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m11 != 0)
{
- if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))
- {
- _13136 = 1.0f;
- _14975 = 0.0f.xxx;
- _10191 = -1;
- break;
- }
- float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_1.xyz, 1.0f));
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])
+ int _23989;
+ int _10191;
+ float _13136;
+ vec3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- float3 _19470 = float3(_12779, _18322.yz);
- float2 _24804 = _19470.xy;
- float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);
- float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;
- float3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13136 = saturate(_22193.x * _22193.y);
- _14975 = _20488;
- _10191 = _13039;
- break;
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t._m11))
+ {
+ _13136 = 1.0;
+ _14975 = vec3(0.0);
+ _10191 = -1;
+ break;
+ }
+ vec4 _18322 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_13039];
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m13[_13039])
+ {
+ vec3 _19470 = vec3(_12779, _18322.yz);
+ vec2 _24804 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m15)) + vec2(PerViewLightingConstantBufferGpu_t._m14));
+ vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_13039].xy;
+ vec3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13136 = saturate(_22193.x * _22193.y);
+ _14975 = _20488;
+ _10191 = _13039;
+ break;
+ }
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
}
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
- {
- float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12));
- float _12501;
- [branch]
- if (_13136 < 1.0f)
+ float _19363;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))
+ float _18270 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);
+ float _12501;
+ SPIRV_CROSS_BRANCH
+ if (_13136 < 1.0)
{
- int _15335 = _10191 + 1;
- float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_1.xyz, 1.0f));
- float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;
- float3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12));
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m11 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19671 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_15335];
+ vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_15335].xy;
+ vec3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ _7934 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);
+ }
+ else
+ {
+ _7934 = 1.0;
+ }
+ _12501 = mix(_7934, _18270, _13136);
}
else
{
- _7934 = 1.0f;
+ _12501 = _18270;
}
- _12501 = lerp(_7934, _18270, _13136);
+ _19363 = _12501;
}
else
{
- _12501 = _18270;
+ _19363 = 1.0;
}
- _19363 = _12501;
- }
- else
- {
- _19363 = 1.0f;
- }
- float _13279 = lerp(_19363, 1.0f, saturate((distance(_7715.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));
- float _12502;
- if (_24465.y)
- {
- _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);
+ float _13279 = mix(_19363, 1.0, saturate((distance(_7715.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m17) + PerViewLightingConstantBufferGpu_t._m16));
+ float _12502;
+ if (_24465.y)
+ {
+ _12502 = min(_13279, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m6], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12502 = _13279;
+ }
+ _12503 = _12502;
}
else
{
- _12502 = _13279;
+ _12503 = 1.0;
}
- _21711 = _12502;
+ _12320 = _12503;
}
else
{
- _21711 = 1.0f;
+ _12320 = 1.0;
}
- float3 _9716;
- float3 _24878;
- [branch]
- if ((dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735) * _21711) > 0.0f)
+ vec3 _9716;
+ vec3 _24878;
+ SPIRV_CROSS_BRANCH
+ if ((_8634 * _12320) > 0.0)
{
- bool3 _19899 = all(bool3(_17892.x == 1.0f.xxx.x, _17892.y == 1.0f.xxx.y, _17892.z == 1.0f.xxx.z)).xxx;
- float _11797 = max(0.0f, dot(_19740.xyz, PerViewLightingConstantBufferGpu_t_1_m9.xyz));
- float2 _9840 = max(_21815, PerViewLightingConstantBufferGpu_t_1_m9.w.xx);
- float3 _12281 = normalize(PerViewLightingConstantBufferGpu_t_1_m9.xyz + (-normalize(_7715.xyz - PerViewConstantBuffer_t_1_m3.xyz)).xyz).xyz;
- float _12386 = dot(_12281, float3(_19899.x ? _24735.x : _17892.x, _19899.y ? _24735.y : _17892.y, _19899.z ? _24735.z : _17892.z).xyz);
- float _19210 = max(0.0f, dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _12281));
+ float _11797 = max(0.0, dot(_19740.xyz, PerViewLightingConstantBufferGpu_t._m9.xyz));
+ vec2 _9840 = max(_21815, vec2(PerViewLightingConstantBufferGpu_t._m9.w));
+ vec3 _12281 = normalize(PerViewLightingConstantBufferGpu_t._m9.xyz + (-normalize(_7715.xyz - PerViewConstantBuffer_t._m3.xyz)).xyz).xyz;
+ float _12386 = dot(_12281, mix(_17892, _24735, bvec3(all(equal(_17892, vec3(1.0))))).xyz);
+ float _19210 = max(0.0, dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _12281));
float _9850 = _9840.x;
float _25211 = _9850 * _9850;
float _19095 = _25211 * _25211;
- float _15346 = ((_12386 * _12386) * (_19095 - 1.0f)) + 1.0f;
- float3 _16808 = (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _21711).xyz;
- _9716 = ((_25153.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0f) + 2.0f)))).xyz * _11797).xyz * _16808;
- _24878 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (_11797.xxx.xyz * _16808);
+ float _15346 = ((_12386 * _12386) * (_19095 - 1.0)) + 1.0;
+ vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m10.xyz * _12320).xyz;
+ _9716 = ((_25153.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0) + 2.0)))).xyz * _11797).xyz * _16808;
+ _24878 = PerViewLightingConstantBufferGpu_t._m4.xyz + (vec3(_11797).xyz * _16808);
}
else
{
- _9716 = 0.0f.xxx;
- _24878 = PerViewLightingConstantBufferGpu_t_1_m4.xyz;
+ _9716 = vec3(0.0);
+ _24878 = PerViewLightingConstantBufferGpu_t._m4.xyz;
}
- bool4 _24466 = bool4(PerViewConstantBufferCsgo_t_1_m1.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m1.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m1.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m1.w != int4(0, 0, 0, 0).w);
+ bvec4 _24466 = notEqual(PerViewConstantBufferCsgo_t._m1, ivec4(0));
bool _20060 = _24466.x;
- float4 _19364;
+ vec4 _19364;
if (_20060)
{
- float4 _18621 = mul(PerViewConstantBufferCsgo_t_1_m8, float4(_7715.xyz, 1.0f).xyzw);
+ vec4 _18621 = vec4(_7715.xyz, 1.0).xyzw * PerViewConstantBufferCsgo_t._m8;
float _20176 = _18621.w;
- float2 _11414 = _18621.xy / _20176.xx;
- float4 _6651;
- _6651.x = clamp(((_11414.x + 1.0f) * PerViewConstantBuffer_t_1_m1.x) * 0.5f, 0.0f, PerViewConstantBuffer_t_1_m1.x - 1.0f);
- _6651.y = clamp(((1.0f - _11414.y) * PerViewConstantBuffer_t_1_m1.y) * 0.5f, 0.0f, PerViewConstantBuffer_t_1_m1.y - 1.0f);
+ vec2 _11414 = _18621.xy / vec2(_20176);
+ vec4 _6651;
+ _6651.x = clamp(((_11414.x + 1.0) * PerViewConstantBuffer_t._m1.x) * 0.5, 0.0, PerViewConstantBuffer_t._m1.x - 1.0);
+ _6651.y = clamp(((1.0 - _11414.y) * PerViewConstantBuffer_t._m1.y) * 0.5, 0.0, PerViewConstantBuffer_t._m1.y - 1.0);
_6651.w = _20176;
_19364 = _6651;
}
else
{
_19364 = _11408;
}
- uint2 _12083 = uint2(_19364.xy - PerViewConstantBuffer_t_1_m0.xy) >> PerViewLightingConstantBufferGpu_t_1_m6.x.xx;
- uint _10838 = PerViewLightingConstantBufferGpu_t_1_m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t_1_m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t_1_m5.z);
- uint _23393 = PerViewLightingConstantBufferGpu_t_1_m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t_1_m7.x, 0.0f, PerViewLightingConstantBufferGpu_t_1_m7.y)) * PerViewLightingConstantBufferGpu_t_1_m5.z);
- float3 _13137;
- float3 _16324;
+ uvec2 _12083 = uvec2(_19364.xy - PerViewConstantBuffer_t._m0.xy) >> uvec2(PerViewLightingConstantBufferGpu_t._m6.x);
+ uint _10838 = PerViewLightingConstantBufferGpu_t._m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t._m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t._m5.z);
+ uint _23393 = PerViewLightingConstantBufferGpu_t._m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t._m7.x, 0.0, PerViewLightingConstantBufferGpu_t._m7.y)) * PerViewLightingConstantBufferGpu_t._m5.z);
+ vec3 _13137;
+ vec3 _16324;
_13137 = _9716;
_16324 = _24878;
uint _21567;
- float3 _13138;
- float3 _16325;
+ vec3 _13138;
+ vec3 _16325;
uint _17017 = 0u;
for (;;)
{
- if (!(_17017 < PerViewLightingConstantBufferGpu_t_1_m5.z))
+ if (!(_17017 < PerViewLightingConstantBufferGpu_t._m5.z))
{
break;
}
- uint _14475 = WaveActiveBitOr(g_CullBits.Load<uint>((_10838 + _17017) * 4 + 0) & g_CullBits.Load<uint>((_23393 + _17017) * 4 + 0));
+ uint _14475 = subgroupOr(g_CullBits_1._m0[_10838 + _17017] & g_CullBits_1._m0[_23393 + _17017]);
_13138 = _13137;
_16325 = _16324;
uint _20344;
- float3 _13212;
- float3 _15670;
+ vec3 _13212;
+ vec3 _15670;
uint _17018 = _14475;
for (;;)
{
if (!(_17018 != 0u))
{
break;
}
- int _12608 = int(firstbitlow(_17018) + (_17017 * 32u));
+ int _12608 = int(uint(findLSB(_17018)) + (_17017 * 32u));
_20344 = _17018 & (_17018 - 1u);
do
{
- float4x4 _14097 = float4x4(g_BarnLights.Load<float>(_12608 * 480 + 0), g_BarnLights.Load<float>(_12608 * 480 + 16), g_BarnLights.Load<float>(_12608 * 480 + 32), g_BarnLights.Load<float>(_12608 * 480 + 48), g_BarnLights.Load<float>(_12608 * 480 + 4), g_BarnLights.Load<float>(_12608 * 480 + 20), g_BarnLights.Load<float>(_12608 * 480 + 36), g_BarnLights.Load<float>(_12608 * 480 + 52), g_BarnLights.Load<float>(_12608 * 480 + 8), g_BarnLights.Load<float>(_12608 * 480 + 24), g_BarnLights.Load<float>(_12608 * 480 + 40), g_BarnLights.Load<float>(_12608 * 480 + 56), g_BarnLights.Load<float>(_12608 * 480 + 12), g_BarnLights.Load<float>(_12608 * 480 + 28), g_BarnLights.Load<float>(_12608 * 480 + 44), g_BarnLights.Load<float>(_12608 * 480 + 60));
- float4 _24893 = mul(float4(input_1.xyz, 1.0f), _14097);
- float3 _10521 = _24893.xyz / _24893.w.xxx;
- float4 _22905;
+ vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(input_1.xyz, 1.0);
+ vec3 _10521 = _24893.xyz / vec3(_24893.w);
+ vec4 _22905;
_22905.x = _10521.x;
_22905.y = _10521.y;
float _21778 = _10521.z;
_22905.z = _21778;
- float3 _21642 = _22905.xyz;
+ vec3 _21642 = _22905.xyz;
bool _7424;
- if (all(bool3(_22905.xyz.x > float3(-1.0f, -1.0f, 0.0f).x, _22905.xyz.y > float3(-1.0f, -1.0f, 0.0f).y, _22905.xyz.z > float3(-1.0f, -1.0f, 0.0f).z)))
+ if (all(greaterThan(_22905.xyz, vec3(-1.0, -1.0, 0.0))))
{
- _7424 = all(bool3(_22905.xyz.x < 1.0f.xxx.x, _22905.xyz.y < 1.0f.xxx.y, _22905.xyz.z < 1.0f.xxx.z));
+ _7424 = all(lessThan(_22905.xyz, vec3(1.0)));
}
else
{
@@ -809,113 +834,111 @@ PS
}
else
{
- float4x3 _16509 = float4x3(g_BarnLights.Load<float>(_12608 * 480 + 272), g_BarnLights.Load<float>(_12608 * 480 + 288), g_BarnLights.Load<float>(_12608 * 480 + 304), g_BarnLights.Load<float>(_12608 * 480 + 276), g_BarnLights.Load<float>(_12608 * 480 + 292), g_BarnLights.Load<float>(_12608 * 480 + 308), g_BarnLights.Load<float>(_12608 * 480 + 280), g_BarnLights.Load<float>(_12608 * 480 + 296), g_BarnLights.Load<float>(_12608 * 480 + 312), g_BarnLights.Load<float>(_12608 * 480 + 284), g_BarnLights.Load<float>(_12608 * 480 + 300), g_BarnLights.Load<float>(_12608 * 480 + 316));
- float3 _6368 = abs(mul(float4(input_1.xyz, 1.0f), _16509).xyz);
- _12885 = !all(bool3(_6368.x <= 1.0f.xxx.x, _6368.y <= 1.0f.xxx.y, _6368.z <= 1.0f.xxx.z));
+ _12885 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(input_1.xyz, 1.0)).xyz), vec3(1.0)));
}
if (_12885)
{
_13212 = _13138;
_15670 = _16325;
break;
}
- float _23572 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;
- float _18492 = (2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).z) * g_BarnLights.Load<float4>(_12608 * 480 + 176).z;
- float _14805 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).x;
- float _9058 = _14805 * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;
- float _17330 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).w;
- float _19825 = _17330 * g_BarnLights.Load<float4>(_12608 * 480 + 176).z;
- float3 _16268 = float3(_9058 - _19825, (1.0f - (_14805 * g_BarnLights.Load<float4>(_12608 * 480 + 176).x)) - _18492, (_23572 * g_BarnLights.Load<float4>(_12608 * 480 + 176).z) + (_17330 * g_BarnLights.Load<float4>(_12608 * 480 + 176).x)) * g_BarnLights.Load<float3>(_12608 * 480 + 192).z;
+ float _23572 = 2.0 * g_BarnLights_1._m0[_12608]._m5.y;
+ float _18492 = (2.0 * g_BarnLights_1._m0[_12608]._m5.z) * g_BarnLights_1._m0[_12608]._m5.z;
+ float _14805 = 2.0 * g_BarnLights_1._m0[_12608]._m5.x;
+ float _9058 = _14805 * g_BarnLights_1._m0[_12608]._m5.y;
+ float _17330 = 2.0 * g_BarnLights_1._m0[_12608]._m5.w;
+ float _19825 = _17330 * g_BarnLights_1._m0[_12608]._m5.z;
+ vec3 _16268 = vec3(_9058 - _19825, (1.0 - (_14805 * g_BarnLights_1._m0[_12608]._m5.x)) - _18492, (_23572 * g_BarnLights_1._m0[_12608]._m5.z) + (_17330 * g_BarnLights_1._m0[_12608]._m5.x)) * g_BarnLights_1._m0[_12608]._m6.z;
float _21316;
- if (g_BarnLights.Load<float4>(_12608 * 480 + 144).z > 0.0f)
+ if (g_BarnLights_1._m0[_12608]._m3.z > 0.0)
{
- _21316 = min(1.0f, _21778 * g_BarnLights.Load<float4>(_12608 * 480 + 144).z);
+ _21316 = min(1.0, _21778 * g_BarnLights_1._m0[_12608]._m3.z);
}
else
{
- _21316 = 1.0f;
+ _21316 = 1.0;
}
float _19667;
- if (g_BarnLights.Load<float4>(_12608 * 480 + 144).w > 0.0f)
+ if (g_BarnLights_1._m0[_12608]._m3.w > 0.0)
{
- _19667 = _21316 * min(1.0f, (1.0f - _21778) * g_BarnLights.Load<float4>(_12608 * 480 + 144).w);
+ _19667 = _21316 * min(1.0, (1.0 - _21778) * g_BarnLights_1._m0[_12608]._m3.w);
}
else
{
_19667 = _21316;
}
- float3 _11179;
+ vec3 _11179;
float _11633;
- if (g_BarnLights.Load<float4>(_12608 * 480 + 128).w != 0.0f)
+ if (g_BarnLights_1._m0[_12608]._m2.w != 0.0)
{
- float3 _10017 = g_BarnLights.Load<float4>(_12608 * 480 + 128).xyz - input_1.xyz;
+ vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - input_1.xyz;
float _18345 = dot(_10017, _10017);
float _17647 = sqrt(_18345);
- float3 _12302 = _10017 - _16268;
- float3 _10210;
+ vec3 _12302 = _10017 - _16268;
+ vec3 _10210;
do
{
- float3 _20229 = (_10017 + _16268) - _12302;
+ vec3 _20229 = (_10017 + _16268) - _12302;
float _25105 = dot(-_12302, _20229);
- if (_25105 <= 0.0f)
+ if (_25105 <= 0.0)
{
_10210 = _12302;
break;
}
else
{
- _10210 = _12302 + (_20229 * min(1.0f, _25105 / dot(_20229, _20229)));
+ _10210 = _12302 + (_20229 * min(1.0, _25105 / dot(_20229, _20229)));
break;
}
break; // unreachable workaround
} while(false);
- _11179 = _10017 / _17647.xxx;
- _11633 = ((_19667 * (g_BarnLights.Load<float4>(_12608 * 480 + 128).w / max(_18345, g_BarnLights.Load<float4>(_12608 * 480 + 128).w))) * saturate(g_BarnLights.Load<float4>(_12608 * 480 + 144).x + (g_BarnLights.Load<float4>(_12608 * 480 + 144).y * _17647))) * saturate(g_BarnLights.Load<float3>(_12608 * 480 + 192).x + (g_BarnLights.Load<float3>(_12608 * 480 + 192).y * dot(float3((1.0f - (_23572 * g_BarnLights.Load<float4>(_12608 * 480 + 176).y)) - _18492, _9058 + _19825, (_14805 * g_BarnLights.Load<float4>(_12608 * 480 + 176).z) - (_17330 * g_BarnLights.Load<float4>(_12608 * 480 + 176).y)), normalize(_10210))));
+ _11179 = _10017 / vec3(_17647);
+ _11633 = ((_19667 * (g_BarnLights_1._m0[_12608]._m2.w / max(_18345, g_BarnLights_1._m0[_12608]._m2.w))) * saturate(g_BarnLights_1._m0[_12608]._m3.x + (g_BarnLights_1._m0[_12608]._m3.y * _17647))) * saturate(g_BarnLights_1._m0[_12608]._m6.x + (g_BarnLights_1._m0[_12608]._m6.y * dot(vec3((1.0 - (_23572 * g_BarnLights_1._m0[_12608]._m5.y)) - _18492, _9058 + _19825, (_14805 * g_BarnLights_1._m0[_12608]._m5.z) - (_17330 * g_BarnLights_1._m0[_12608]._m5.y)), normalize(_10210))));
}
else
{
- _11179 = g_BarnLights.Load<float4>(_12608 * 480 + 128).xyz;
+ _11179 = g_BarnLights_1._m0[_12608]._m2.xyz;
_11633 = _19667;
}
- float3 _17828 = (g_BarnLights.Load<float4>(_12608 * 480 + 160).xyz * 1.0f).xyz * _11633;
+ vec3 _17828 = (g_BarnLights_1._m0[_12608]._m4.xyz * 1.0).xyz * _11633;
bool _24419;
- if (g_BarnLights.Load<float4>(_12608 * 480 + 208).z > 0.0f)
+ if (g_BarnLights_1._m0[_12608]._m8.z > 0.0)
{
_24419 = !_20060;
}
else
{
_24419 = false;
}
- float3 _21548;
- [branch]
- if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w == 0.0f)
+ vec3 _21548;
+ SPIRV_CROSS_BRANCH
+ if (g_BarnLights_1._m0[_12608]._m4.w == 0.0)
{
float _10342;
do
{
- float2 _22154 = abs(_22905.xy);
- if (g_BarnLights.Load<float4>(_12608 * 480 + 224).z == 0.0f)
+ vec2 _22154 = abs(_22905.xy);
+ if (g_BarnLights_1._m0[_12608]._m9.z == 0.0)
{
- _10342 = smoothstep(1.0f, g_BarnLights.Load<float4>(_12608 * 480 + 224).x, _22154.x) * smoothstep(1.0f, g_BarnLights.Load<float4>(_12608 * 480 + 224).y, _22154.y);
+ _10342 = smoothstep(1.0, g_BarnLights_1._m0[_12608]._m9.x, _22154.x) * smoothstep(1.0, g_BarnLights_1._m0[_12608]._m9.y, _22154.y);
break;
}
else
{
float _11473 = _22154.x;
- float _15266 = 2.0f / g_BarnLights.Load<float4>(_12608 * 480 + 224).z;
+ float _15266 = 2.0 / g_BarnLights_1._m0[_12608]._m9.z;
float _15018 = _22154.y;
- float _23041 = (-0.5f) * g_BarnLights.Load<float4>(_12608 * 480 + 224).z;
- float _11981 = (g_BarnLights.Load<float4>(_12608 * 480 + 224).x * g_BarnLights.Load<float4>(_12608 * 480 + 224).y) * pow(max(pow(g_BarnLights.Load<float4>(_12608 * 480 + 224).y * _11473, _15266) + pow(g_BarnLights.Load<float4>(_12608 * 480 + 224).x * _15018, _15266), 1.1754943508222875079687365372222e-38f), _23041);
- float _16524 = pow(max(pow(_11473, _15266) + pow(_15018, _15266), 1.1754943508222875079687365372222e-38f), _23041);
+ float _23041 = (-0.5) * g_BarnLights_1._m0[_12608]._m9.z;
+ float _11981 = (g_BarnLights_1._m0[_12608]._m9.x * g_BarnLights_1._m0[_12608]._m9.y) * pow(max(pow(g_BarnLights_1._m0[_12608]._m9.y * _11473, _15266) + pow(g_BarnLights_1._m0[_12608]._m9.x * _15018, _15266), 1.1754943508222875079687365372222e-38), _23041);
+ float _16524 = pow(max(pow(_11473, _15266) + pow(_15018, _15266), 1.1754943508222875079687365372222e-38), _23041);
if (_11981 < _16524)
{
- _10342 = smoothstep(_16524, _11981, 1.0f);
+ _10342 = smoothstep(_16524, _11981, 1.0);
break;
}
else
{
- _10342 = float(_16524 > 1.0f);
+ _10342 = float(_16524 > 1.0);
break;
}
break; // unreachable workaround
@@ -926,49 +949,49 @@ PS
}
else
{
- float3 _12503;
- if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)
+ vec3 _12504;
+ if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)
{
- float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);
- float4 _19008 = _17795.xyzw * float4(-1.0f, -1.0f, -1.0f, 1.0f);
- float3 _24989 = _19008.xyz;
- float3 _23629 = float4((-_11179).xyz, 0.0f).xyz;
+ vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);
+ vec4 _19008 = _17795.xyzw * vec4(-1.0, -1.0, -1.0, 1.0);
+ vec3 _24989 = _19008.xyz;
+ vec3 _23629 = vec4((-_11179).xyz, 0.0).xyz;
float _15156 = -dot(_23629, _24989);
- float3 _20479 = float4((_23629 * _19008.w) + cross(_23629, _24989), _15156).xyz;
- float3 _23592 = _17795.xyz;
- float3 _12170 = ((_20479 * g_BarnLights.Load<float4>(_12608 * 480 + 176).w) + (_23592 * _15156)) + cross(_23592, _20479);
- float3 _14081 = float3(float2(atan2(_12170.y, -_12170.x) * 0.15915493667125701904296875f, acos(_12170.z) * 0.3183098733425140380859375f), -g_BarnLights.Load<float4>(_12608 * 480 + 160).w);
- float2 _20564 = (_14081.xy * g_BarnLights.Load<float4>(_12608 * 480 + 224).zw) + g_BarnLights.Load<float4>(_12608 * 480 + 224).xy;
- float3 _20492 = _14081;
+ vec3 _20479 = vec4((_23629 * _19008.w) + cross(_23629, _24989), _15156).xyz;
+ vec3 _23592 = _17795.xyz;
+ vec3 _12170 = ((_20479 * g_BarnLights_1._m0[_12608]._m5.w) + (_23592 * _15156)) + cross(_23592, _20479);
+ vec3 _14081 = vec3(vec2(atan(_12170.y, -_12170.x) * 0.15915493667125701904296875, acos(_12170.z) * 0.3183098733425140380859375), -g_BarnLights_1._m0[_12608]._m4.w);
+ vec2 _20564 = (_14081.xy * g_BarnLights_1._m0[_12608]._m9.zw) + g_BarnLights_1._m0[_12608]._m9.xy;
+ vec3 _20492 = _14081;
_20492.x = _20564.x;
_20492.y = _20564.y;
- _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20492.xyz, 0.0f).xyz;
+ _12504 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _20492.xyz, 0.0).xyz;
}
else
{
- float3 _13791 = float3(mad(_22905.xy, float2(0.5f, -0.5f), 0.5f.xx), g_BarnLights.Load<float4>(_12608 * 480 + 160).w);
- float2 _20563 = (_13791.xy * g_BarnLights.Load<float4>(_12608 * 480 + 224).zw) + g_BarnLights.Load<float4>(_12608 * 480 + 224).xy;
- float3 _20491 = _13791;
+ vec3 _13791 = vec3(fma(_22905.xy, vec2(0.5, -0.5), vec2(0.5)), g_BarnLights_1._m0[_12608]._m4.w);
+ vec2 _20563 = (_13791.xy * g_BarnLights_1._m0[_12608]._m9.zw) + g_BarnLights_1._m0[_12608]._m9.xy;
+ vec3 _20491 = _13791;
_20491.x = _20563.x;
_20491.y = _20563.y;
- _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m21].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20491.xyz, 0.0f).xyz;
+ _12504 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _20491.xyz, 0.0).xyz;
}
- _21548 = _12503;
+ _21548 = _12504;
}
- if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))
+ if (all(equal(_21548.xyz, vec3(0.0))))
{
_13212 = _13138;
_15670 = _16325;
break;
}
- float3 _22671;
+ vec3 _22671;
if (_24419)
{
- float3 _19629;
- if ((g_BarnLights.Load<uint>(_12608 * 480 + 264) & 4u) != 0u)
+ vec3 _19629;
+ if ((g_BarnLights_1._m0[_12608]._m13 & 4u) != 0u)
{
- float2 _6281 = _22905.yx * float2(1.0f, -1.0f);
- float3 _23716 = _21642;
+ vec2 _6281 = _22905.yx * vec2(1.0, -1.0);
+ vec3 _23716 = _21642;
_23716.x = _6281.x;
_23716.y = _6281.y;
_19629 = _23716;
@@ -977,9 +1000,8 @@ PS
{
_19629 = _21642;
}
- float3 _20482 = _21548.xyz * lerp(1.0f, g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], float3(mad(_19629.xy, g_BarnLights.Load<float4>(_12608 * 480 + 208).zw, g_BarnLights.Load<float4>(_12608 * 480 + 208).xy), _19629.z).xy, saturate(_19629.z + PerViewLightingConstantBufferGpu_t_1_m12)), g_BarnLights.Load<float>(_12608 * 480 + 260));
- float3 _16449 = _20482.xyz;
- if (all(bool3(_16449.x == 0.0f.xxx.x, _16449.y == 0.0f.xxx.y, _16449.z == 0.0f.xxx.z)))
+ vec3 _20482 = _21548.xyz * mix(1.0, textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy, saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0), g_BarnLights_1._m0[_12608]._m12);
+ if (all(equal(_20482.xyz, vec3(0.0))))
{
_13212 = _13138;
_15670 = _16325;
@@ -991,18 +1013,17 @@ PS
{
_22671 = _21548;
}
- bool3 _19900 = all(bool3(_17892.x == 1.0f.xxx.x, _17892.y == 1.0f.xxx.y, _17892.z == 1.0f.xxx.z)).xxx;
- float _11798 = max(0.0f, dot(_19740.xyz, _11179.xyz));
- float2 _9841 = max(_21815, g_BarnLights.Load<float>(_12608 * 480 + 256).xx);
- float3 _12282 = normalize(_11179.xyz + (-normalize(_7715.xyz - PerViewConstantBuffer_t_1_m3.xyz)).xyz).xyz;
- float _12387 = dot(_12282, float3(_19900.x ? _24735.x : _17892.x, _19900.y ? _24735.y : _17892.y, _19900.z ? _24735.z : _17892.z).xyz);
- float _19211 = max(0.0f, dot(_11179.xyz, _12282));
+ float _11798 = max(0.0, dot(_19740.xyz, _11179.xyz));
+ vec2 _9841 = max(_21815, vec2(g_BarnLights_1._m0[_12608]._m11));
+ vec3 _12282 = normalize(_11179.xyz + (-normalize(_7715.xyz - PerViewConstantBuffer_t._m3.xyz)).xyz).xyz;
+ float _12387 = dot(_12282, mix(_17892, _24735, bvec3(all(equal(_17892, vec3(1.0))))).xyz);
+ float _19211 = max(0.0, dot(_11179.xyz, _12282));
float _9851 = _9841.x;
float _25212 = _9851 * _9851;
- float _19097 = _25212 * _25212;
- float _15348 = ((_12387 * _12387) * (_19097 - 1.0f)) + 1.0f;
- _13212 = _13138.xyz + (((_25153.xyz * (_19097 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0f) + 2.0f)))).xyz * _11798).xyz * _22671.xyz);
- _15670 = _16325.xyz + (_11798.xxx.xyz * _22671.xyz);
+ float _19096 = _25212 * _25212;
+ float _15348 = ((_12387 * _12387) * (_19096 - 1.0)) + 1.0;
+ _13212 = _13138.xyz + (((_25153.xyz * (_19096 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0) + 2.0)))).xyz * _11798).xyz * _22671.xyz);
+ _15670 = _16325.xyz + (vec3(_11798).xyz * _22671.xyz);
break;
} while(false);
_13138 = _13212;
@@ -1016,86 +1037,86 @@ PS
_17017 = _21567;
continue;
}
- float _17172 = dot(_21815.xy, 0.5f.xx);
- float3 _6253 = _17892.xyz;
- float3 _17138 = normalize(_7715.xyz - PerViewConstantBuffer_t_1_m3.xyz);
+ float _17172 = dot(_21815.xy, vec2(0.5));
+ vec3 _6253 = _17892.xyz;
+ vec3 _17138 = normalize(_7715.xyz - PerViewConstantBuffer_t._m3.xyz);
float _17225 = _17172 * _17172;
- float _20711 = saturate(1.0f - _17225);
- float4 _15343 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * _17172) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f);
+ float _20711 = saturate(1.0 - _17225);
+ vec4 _15343 = (vec4(-1.0, -0.0274999998509883880615234375, -0.572000026702880859375, 0.02199999988079071044921875) * _17172) + vec4(1.0, 0.0425000004470348358154296875, 1.03999996185302734375, -0.039999999105930328369140625);
float _21215 = _15343.x;
- float2 _24572 = (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_21215 * _21215, exp2((-9.27999973297119140625f) * max(0.0f, dot((-_17138).xyz, _6253)))) * _21215) + _15343.y)) + _15343.zw;
+ vec2 _24572 = (vec2(-1.03999996185302734375, 1.03999996185302734375) * ((min(_21215 * _21215, exp2((-9.27999973297119140625) * max(0.0, dot((-_17138).xyz, _6253)))) * _21215) + _15343.y)) + _15343.zw;
float _20339 = _24572.y;
- float2 _11427 = float2(_20339, _24572.x + _20339);
- float3 _8745 = float3(dot(PerViewLightingConstantBufferGpu_t_1_m0._m0[0].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t_1_m0._m0[1].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t_1_m0._m0[2].xyzw, _23875)).xyz;
- float3 _16991 = _16324.xyz + _8745;
- float3 _20418 = _21710.xxx.xyz;
- float3 _22686 = (_16324.xyz + (_8745 * _20418).xyz) * (_11217 * (1.0f - _14051)).xyz;
+ vec2 _11427 = vec2(_20339, _24572.x + _20339);
+ vec3 _8745 = vec3(dot(PerViewLightingConstantBufferGpu_t._m0._m0[0].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t._m0._m0[1].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t._m0._m0[2].xyzw, _23875)).xyz;
+ vec3 _16991 = _16324.xyz + _8745;
+ vec3 _20418 = vec3(_21710).xyz;
+ vec3 _22686 = (_16324.xyz + (_8745 * _20418).xyz) * (_11217 * (1.0 - _14051)).xyz;
float _12931 = _22686.x;
- float4 _11203 = float4(_12931, _22686.yz, input_4.w);
+ vec4 _11203 = vec4(_12931, _22686.yz, input_4.w);
_11203.x = _12931;
_11203.y = _22686.y;
_11203.z = _22686.z;
- float3 _15752 = _11203.xyz + (_13137.xyz * _20418).xyz;
- float4 _20490 = _11203;
+ vec3 _15752 = _11203.xyz + (_13137.xyz * _20418).xyz;
+ vec4 _20490 = _11203;
_20490.x = _15752.x;
_20490.y = _15752.y;
_20490.z = _15752.z;
- float3 _15734 = _20490.xyz + ((((lerp(_11427.xxx, _11427.yyy, _25153) * g_bindless_TextureCubeArray_float4[PerViewConstantBufferCsgo_t_1_m7].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], float4(normalize(lerp(_6253, reflect(_17138.xyz, _17892.xyz).xyz, (_20711 * (sqrt(_20711) + _17225)).xxx)), 0.0f), PerViewLightingConstantBufferGpu_t_1_m8.y * sqrt(_17172)).xyz).xyz * (normalize(_16991 + 0.001000000047497451305389404296875f.xxx) * clamp(length(_16991), 0.0f, 1.75f))).xyz * (1.0f.xxx + (normalize(_8745 + 0.001000000047497451305389404296875f.xxx) * 0.5f))).xyz * _20418).xyz;
- float4 _13888 = _20490;
+ vec3 _15734 = _20490.xyz + ((((mix(_11427.xxx, _11427.yyy, _25153) * textureLod(samplerCubeArray(g_bindless_TextureCubeArray_float4[PerViewConstantBufferCsgo_t._m7], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), vec4(normalize(mix(_6253, reflect(_17138.xyz, _17892.xyz).xyz, vec3(_20711 * (sqrt(_20711) + _17225)))), 0.0), PerViewLightingConstantBufferGpu_t._m8.y * sqrt(_17172)).xyz).xyz * (normalize(_16991 + vec3(0.001000000047497451305389404296875)) * clamp(length(_16991), 0.0, 1.75))).xyz * (vec3(1.0) + (normalize(_8745 + vec3(0.001000000047497451305389404296875)) * 0.5))).xyz * _20418).xyz;
+ vec4 _13888 = _20490;
_13888.x = _15734.x;
_13888.y = _15734.y;
_13888.z = _15734.z;
- float4 _6805;
- if (_Globals_1_g_bFogEnabled != 0)
+ vec4 _6805;
+ if (_Globals_.g_bFogEnabled != 0)
{
- float3 _21493;
- float3 _22956 = _7715.xyz - PerViewConstantBuffer_t_1_m3.xyz;
- float3 _9057 = _22956.xyz;
- float3 _19340;
+ vec3 _21493;
+ vec3 _22956 = _7715.xyz - PerViewConstantBuffer_t._m3.xyz;
+ vec3 _9057 = _22956.xyz;
+ vec3 _19340;
do
{
_21493 = _22956.xyz;
bool _12886;
- if (dot(_21493, _21493) > PerViewConstantBufferCsgo_t_1_m14.x)
+ if (dot(_21493, _21493) > PerViewConstantBufferCsgo_t._m14.x)
{
- _12886 = (_7715.z * PerViewConstantBufferCsgo_t_1_m14.z) < PerViewConstantBufferCsgo_t_1_m14.y;
+ _12886 = (_7715.z * PerViewConstantBufferCsgo_t._m14.z) < PerViewConstantBufferCsgo_t._m14.y;
}
else
{
_12886 = false;
}
- [branch]
+ SPIRV_CROSS_BRANCH
if (_12886)
{
- float2 _9342 = clamp(PerViewConstantBufferCsgo_t_1_m11.xy + (PerViewConstantBufferCsgo_t_1_m11.zw * float2(length(_21493), _7715.z)), 0.0f.xx, 1.0f.xx);
- float _12872 = (pow(_9342.x, PerViewConstantBufferCsgo_t_1_m12.x) * pow(_9342.y, PerViewConstantBufferCsgo_t_1_m12.y)) * PerViewConstantBufferCsgo_t_1_m13.w;
- _19340 = lerp(_13888.xyz, float4(PerViewConstantBufferCsgo_t_1_m13.xyz, _12872).xyz, _12872.xxx);
+ vec2 _9342 = saturate(PerViewConstantBufferCsgo_t._m11.xy + (PerViewConstantBufferCsgo_t._m11.zw * vec2(length(_21493), _7715.z)));
+ float _12872 = (pow(_9342.x, PerViewConstantBufferCsgo_t._m12.x) * pow(_9342.y, PerViewConstantBufferCsgo_t._m12.y)) * PerViewConstantBufferCsgo_t._m13.w;
+ _19340 = mix(_13888.xyz, vec4(PerViewConstantBufferCsgo_t._m13.xyz, _12872).xyz, vec3(_12872));
break;
}
_19340 = _13888.xyz;
break;
} while(false);
- float4 _23944 = _13888;
+ vec4 _23944 = _13888;
_23944.x = _19340.x;
_23944.y = _19340.y;
_23944.z = _19340.z;
- float3 _19341;
+ vec3 _19341;
do
{
bool _12887;
- if (dot(_9057, _9057) > PerViewConstantBufferCsgo_t_1_m18.x)
+ if (dot(_9057, _9057) > PerViewConstantBufferCsgo_t._m18.x)
{
- _12887 = (PerViewConstantBufferCsgo_t_1_m18.z * _7715.z) < PerViewConstantBufferCsgo_t_1_m18.y;
+ _12887 = (PerViewConstantBufferCsgo_t._m18.z * _7715.z) < PerViewConstantBufferCsgo_t._m18.y;
}
else
{
_12887 = false;
}
if (_12887)
{
- float _14602 = saturate(pow(max(0.0f, (length(_21493) * PerViewConstantBufferCsgo_t_1_m15.y) + PerViewConstantBufferCsgo_t_1_m15.x), PerViewConstantBufferCsgo_t_1_m15.w)) * saturate(pow(max(0.0f, (_7715.z * PerViewConstantBufferCsgo_t_1_m16.y) + PerViewConstantBufferCsgo_t_1_m16.x), PerViewConstantBufferCsgo_t_1_m16.z));
- float _8892 = saturate(_14602) * PerViewConstantBufferCsgo_t_1_m18.w;
- _19341 = lerp(_23944.xyz, float4((g_bindless_TextureCube_float4[PerViewConstantBufferCsgo_t_1_m3].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], normalize(mul(float4(_9057, 0.0f), PerViewConstantBufferCsgo_t_1_m17).xyz).xyz, PerViewConstantBufferCsgo_t_1_m16.w * saturate(1.0f - (_14602 * PerViewConstantBufferCsgo_t_1_m15.z))) * PerViewConstantBufferCsgo_t_1_m19.x).xyz, _8892).xyz, _8892.xxx);
+ float _14602 = saturate(pow(max(0.0, (length(_21493) * PerViewConstantBufferCsgo_t._m15.y) + PerViewConstantBufferCsgo_t._m15.x), PerViewConstantBufferCsgo_t._m15.w)) * saturate(pow(max(0.0, (_7715.z * PerViewConstantBufferCsgo_t._m16.y) + PerViewConstantBufferCsgo_t._m16.x), PerViewConstantBufferCsgo_t._m16.z));
+ float _8892 = saturate(_14602) * PerViewConstantBufferCsgo_t._m18.w;
+ _19341 = mix(_23944.xyz, vec4((textureLod(samplerCube(g_bindless_TextureCube_float4[PerViewConstantBufferCsgo_t._m3], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), normalize((PerViewConstantBufferCsgo_t._m17 * vec4(_9057, 0.0)).xyz).xyz, PerViewConstantBufferCsgo_t._m16.w * saturate(1.0 - (_14602 * PerViewConstantBufferCsgo_t._m15.z))) * PerViewConstantBufferCsgo_t._m19.x).xyz, _8892).xyz, vec3(_8892));
break;
}
_19341 = _23944.xyz;
@@ -1113,22 +1134,6 @@ PS
output_0 = _6805;
}
- PS_OUTPUT MainPs(PS_INPUT stage_input)
- {
- gl_FragCoord = stage_input.gl_FragCoord;
- gl_FragCoord.w = 1.0 / gl_FragCoord.w;
- input_0 = stage_input.input_0;
- input_1 = stage_input.input_1;
- input_2 = stage_input.input_2;
- input_3 = stage_input.input_3;
- input_4 = stage_input.input_4;
- input_5 = stage_input.input_5;
- input_6 = stage_input.input_6;
- MainPs_inner();
- PS_OUTPUT stage_output;
- stage_output.output_0 = output_0;
- return stage_output;
- }
// --------- SPIRV -> HLSL end ---------
@@ -1438,8 +1443,8 @@ RTX
vec2 _567 = vec2(g_MaterialData_1._member0[(_523 + 144u) / 4u], g_MaterialData_1._member0[(_523 + 148u) / 4u]);
vec3 _566 = vec3(g_MaterialData_1._member0[(_523 + 208u) / 4u], g_MaterialData_1._member0[(_523 + 212u) / 4u], g_MaterialData_1._member0[(_523 + 216u) / 4u]);
float _565 = g_MaterialData_1._member0[(_523 + 220u) / 4u];
- uint _564 = g_MaterialData_3._member0[(_523 + 236u) / 4u];
- uint _563 = g_MaterialData_3._member0[(_523 + 256u) / 4u];
+ uint _564 = g_MaterialData_3._member0[(_523 + 240u) / 4u];
+ uint _563 = g_MaterialData_3._member0[(_523 + 260u) / 4u];
float _562 = g_MaterialData_1._member0[(_523 + 284u) / 4u];
float _561 = g_MaterialData_1._member0[(_523 + 288u) / 4u];
vec2 _560 = vec2(g_MaterialData_1._member0[(_523 + 296u) / 4u], g_MaterialData_1._member0[(_523 + 300u) / 4u]);
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_simple_3layer_parallax.slang
modified • +98 / -87 • changes: 185
Show patch
@@ -83,7 +83,7 @@ VS
float2 g_vTexCoordScrollSpeed < Range2(-10, -10, 10, 10); UiType(VectorText); UiGroup("Color/70"); >;
// SPIR-V reflection failed for backend HLSL:
- // cbuffer ID 5618 (name: _Globals_), member index 0 (name: g_vTexCoordXform0) cannot be expressed with either HLSL packing layout or packoffset.
+ // cbuffer ID 5618 (name: _Globals_), member index 3 (name: g_vColorTint) cannot be expressed with either HLSL packing layout or packoffset.
//
// Re-attempting reflection with the GLSL backend.
@@ -298,7 +298,7 @@ PS
Texture2D g_tNormal < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureNormal, TextureRoughness), Linear); OutputFormat(BC7); SrgbRead(false); >;
Texture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;
Texture2D g_tTransmissiveMask < Channel(R, ArtistDefined(TextureTransmissiveMask), Srgb); OutputFormat(ATI1N); SrgbRead(true); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
// Ambient Occlusion
@@ -362,7 +362,7 @@ PS
Texture2D g_tColor < Channel(RGB, ArtistDefined(TextureColor), Srgb); OutputFormat(DXT1); SrgbRead(true); >;
// SPIR-V reflection failed for backend HLSL:
- // cbuffer ID 5618 (name: _Globals_), member index 11 (name: g_vLayer2EmissiveTint) cannot be expressed with either HLSL packing layout or packoffset.
+ // cbuffer ID 5618 (name: _Globals_), member index 5 (name: g_vLayer1EmissiveTint) cannot be expressed with either HLSL packing layout or packoffset.
//
// Re-attempting reflection with the GLSL backend.
@@ -384,17 +384,17 @@ PS
#endif
#extension GL_KHR_shader_subgroup_arithmetic : require
- struct _2746
+ struct _2998
{
vec4 _m0[3];
};
- struct _2956
+ struct _197
{
vec4 _m0[4];
};
- struct _1581
+ struct _2697
{
mat4 _m0[4];
};
@@ -504,10 +504,10 @@ PS
layout(set = 1) uniform _1194 PerViewConstantBuffer_t;
- struct _2611
+ struct _1373
{
- _2746 _m0;
- _2956 _m1;
+ _2998 _m0;
+ _197 _m1;
vec4 _m2;
vec4 _m3;
vec4 _m4;
@@ -524,13 +524,13 @@ PS
float _m15;
float _m16;
float _m17;
- _1581 _m18;
- _2956 _m19;
+ _2697 _m18;
+ _197 _m19;
uint _m20;
uint _m21;
};
- layout(set = 3) uniform _2611 PerViewLightingConstantBufferGpu_t;
+ layout(set = 3) uniform _1373 PerViewLightingConstantBufferGpu_t;
layout(set = 3, binding = 30, std430) readonly buffer g_CullBits
{
@@ -707,99 +707,110 @@ PS
{
_21710 = 1.0;
}
- float _21711;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _24735);
+ float _12320;
SPIRV_CROSS_BRANCH
- if (PerViewLightingConstantBufferGpu_t._m11 != 0)
+ if (_8634 > 0.0)
{
- int _23989;
- int _10191;
- float _13136;
- vec3 _14975;
- int _13039 = 0;
- for (;;)
+ float _12503;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m11 != 0)
{
- if (!(_13039 < PerViewLightingConstantBufferGpu_t._m11))
- {
- _13136 = 1.0;
- _14975 = vec3(0.0);
- _10191 = -1;
- break;
- }
- vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_13039];
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m13[_13039])
+ int _23989;
+ int _10191;
+ float _13136;
+ vec3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- vec3 _19470 = vec3(_12779, _18322.yz);
- vec2 _24804 = _19470.xy;
- vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m15)) + vec2(PerViewLightingConstantBufferGpu_t._m14));
- vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_13039].xy;
- vec3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13136 = saturate(_22193.x * _22193.y);
- _14975 = _20488;
- _10191 = _13039;
- break;
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t._m11))
+ {
+ _13136 = 1.0;
+ _14975 = vec3(0.0);
+ _10191 = -1;
+ break;
+ }
+ vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_13039];
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m13[_13039])
+ {
+ vec3 _19470 = vec3(_12779, _18322.yz);
+ vec2 _24804 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m15)) + vec2(PerViewLightingConstantBufferGpu_t._m14));
+ vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_13039].xy;
+ vec3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13136 = saturate(_22193.x * _22193.y);
+ _14975 = _20488;
+ _10191 = _13039;
+ break;
+ }
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
}
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _18423;
- if (_10191 >= 0)
- {
- float _18270 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);
- float _12501;
- SPIRV_CROSS_BRANCH
- if (_13136 < 1.0)
+ float _18423;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t._m11 - 1))
+ float _18270 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);
+ float _12501;
+ SPIRV_CROSS_BRANCH
+ if (_13136 < 1.0)
{
- int _15335 = _10191 + 1;
- vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_15335];
- vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_15335].xy;
- vec3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- _7934 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m11 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_15335];
+ vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_15335].xy;
+ vec3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ _7934 = textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m20], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);
+ }
+ else
+ {
+ _7934 = 1.0;
+ }
+ _12501 = mix(_7934, _18270, _13136);
}
else
{
- _7934 = 1.0;
+ _12501 = _18270;
}
- _12501 = mix(_7934, _18270, _13136);
+ _18423 = _12501;
}
else
{
- _12501 = _18270;
+ _18423 = 1.0;
}
- _18423 = _12501;
- }
- else
- {
- _18423 = 1.0;
- }
- float _13279 = mix(_18423, 1.0, saturate((distance(_10061.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m17) + PerViewLightingConstantBufferGpu_t._m16));
- float _12502;
- if (_24465.y)
- {
- _12502 = min(_13279, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m6], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ float _13279 = mix(_18423, 1.0, saturate((distance(_10061.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m17) + PerViewLightingConstantBufferGpu_t._m16));
+ float _12502;
+ if (_24465.y)
+ {
+ _12502 = min(_13279, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m6], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12502 = _13279;
+ }
+ _12503 = _12502;
}
else
{
- _12502 = _13279;
+ _12503 = 1.0;
}
- _21711 = _12502;
+ _12320 = _12503;
}
else
{
- _21711 = 1.0;
+ _12320 = 1.0;
}
vec3 _9716;
vec3 _24878;
SPIRV_CROSS_BRANCH
- if ((dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _24735) * _21711) > 0.0)
+ if ((_8634 * _12320) > 0.0)
{
float _11797 = max(0.0, dot(_13532.xyz, PerViewLightingConstantBufferGpu_t._m9.xyz));
vec2 _9840 = max(_21813, vec2(PerViewLightingConstantBufferGpu_t._m9.w));
@@ -810,7 +821,7 @@ PS
float _25211 = _9850 * _9850;
float _19095 = _25211 * _25211;
float _15346 = ((_12386 * _12386) * (_19095 - 1.0)) + 1.0;
- vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m10.xyz * _21711).xyz;
+ vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m10.xyz * _12320).xyz;
_9716 = ((_12351.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0) + 2.0)))).xyz * _11797).xyz * _16808;
_24878 = PerViewLightingConstantBufferGpu_t._m4.xyz + (vec3(_11797).xyz * _16808);
}
@@ -1010,7 +1021,7 @@ PS
}
else
{
- vec3 _12503;
+ vec3 _12504;
if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)
{
vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);
@@ -1026,7 +1037,7 @@ PS
vec3 _20493 = _14081;
_20493.x = _20564.x;
_20493.y = _20564.y;
- _12503 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _20493.xyz, 0.0).xyz;
+ _12504 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _20493.xyz, 0.0).xyz;
}
else
{
@@ -1035,9 +1046,9 @@ PS
vec3 _20492 = _13791;
_20492.x = _20563.x;
_20492.y = _20563.y;
- _12503 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _20492.xyz, 0.0).xyz;
+ _12504 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m21], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _20492.xyz, 0.0).xyz;
}
- _21548 = _12503;
+ _21548 = _12504;
}
if (all(equal(_21548.xyz, vec3(0.0))))
{
@@ -1081,9 +1092,9 @@ PS
float _19211 = max(0.0, dot(_11179.xyz, _12282));
float _9851 = _9841.x;
float _25212 = _9851 * _9851;
- float _19097 = _25212 * _25212;
- float _15348 = ((_12387 * _12387) * (_19097 - 1.0)) + 1.0;
- _13212 = _13138.xyz + (((_12351.xyz * (_19097 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0) + 2.0)))).xyz * _11798).xyz * _22671.xyz);
+ float _19096 = _25212 * _25212;
+ float _15348 = ((_12387 * _12387) * (_19096 - 1.0)) + 1.0;
+ _13212 = _13138.xyz + (((_12351.xyz * (_19096 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0) + 2.0)))).xyz * _11798).xyz * _22671.xyz);
_15670 = _16326.xyz + (vec3(_11798).xyz * _22671.xyz);
break;
} while(false);
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_simple_liquid.slang
modified • +840 / -603 • changes: 1443
No patch available (GitHub often omits patches for large/binary diffs).
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_static_overlay.slang
modified • +125 / -79 • changes: 204
Show patch
@@ -123,20 +123,16 @@ VS
int g_nScaleTexCoordUByModelScaleAxis < Range4(0, 0, 0, 0, 3, 3, 3, 3); UiOptions("0=None,1=UV.u * model.x,2=UV.u * model.y,3=UV.u * model.z"); UiType(Enum); UiGroup("Color/80"); >;
int g_nScaleTexCoordVByModelScaleAxis < Range4(0, 0, 0, 0, 3, 3, 3, 3); UiOptions("0=None,1=UV.v * model.x,2=UV.v * model.y,3=UV.v * model.z"); UiType(Enum); UiGroup("Color/90"); >;
+ // Overlay
+ float g_flOverlayLift < Range(0, 2); UiType(Slider); UiGroup("Overlay,90/Lift,10/10"); >;
+
// Material1
int g_nUVSet1 < Default(1); Range4(0, 0, 0, 0, 2, 2, 2, 2); UiOptions("0=Biplanar,1=UV1,2=UV2"); UiType(Enum); UiGroup("Material1/Texture Coordinates,34/1"); >;
float2 g_vTexCoordScale1 < Default2(1, 1); Range2(0, 0, 100, 100); Attribute("0=X,1=Y"); UiType(VectorText); UiGroup("Material1/Texture Transform,35/2"); >;
float g_flTexCoordRotation1 < Range(-360, 360); UiType(Slider); UiGroup("Material1/Texture Transform,35/13"); UiVisibility(1); >;
- // SPIR-V reflection failed for backend HLSL:
- // cbuffer ID 5618 (name: _Globals_), member index 0 (name: g_vTexCoordXform0) cannot be expressed with either HLSL packing layout or packoffset.
- //
- // Re-attempting reflection with the GLSL backend.
-
// Source 2 Viewer - https://valveresourceformat.github.io
- // SPIR-V source, GLSL reflection with SPIRV-Cross by KhronosGroup
-
- #version 460
+ // SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup
struct _1125
{
@@ -152,88 +148,101 @@ VS
struct _1119
{
- mat3x4 _m0;
+ row_major float3x4 _m0;
};
- layout(set = 4, binding = 32, std430) readonly buffer g_instanceBuffer
+ ByteAddressBuffer g_instanceBuffer : register(t32, space4);
+ ByteAddressBuffer g_transformBuffer : register(t30, space4);
+ cbuffer PerViewConstantBuffer_t : register(b1, space0)
{
- _1125 _m0[];
- } g_instanceBuffer_1;
+ column_major float4x4 PerViewConstantBuffer_t_1_m0 : packoffset(c0);
+ float PerViewConstantBuffer_t_1_m1 : packoffset(c18.w);
+ float4 PerViewConstantBuffer_t_1_m2 : packoffset(c24);
+ float3 PerViewConstantBuffer_t_1_m3 : packoffset(c26);
+ };
- layout(set = 4, binding = 30, std430) readonly buffer g_transformBuffer
+ cbuffer _Globals_ : register(b0, space0)
{
- _1119 _m0[];
- } g_transformBuffer_1;
+ float4 _Globals_1_g_vTexCoordXform0 : packoffset(c31);
+ float4 _Globals_1_g_vTexCoordXform1 : packoffset(c32);
+ float2 _Globals_1_g_vTexCoordScrollSpeed : packoffset(c33);
+ float3 _Globals_1_g_vColorTint : packoffset(c36.y);
+ float _Globals_1_g_flModelTintAmount : packoffset(c37);
+ float _Globals_1_g_flOverlayLift : packoffset(c37.z);
+ };
- struct _1340
+ cbuffer PerViewConstantBufferCsgo_t : register(b3, space0)
{
- mat4 _m0;
- float _m1;
- vec4 _m2;
- vec3 _m3;
+ float4 PerViewConstantBufferCsgo_t_1_m0 : packoffset(c35);
};
- layout(set = 0) uniform _1340 PerViewConstantBuffer_t;
- struct _1234
+ static float4 gl_Position;
+ static float3 vPositionOs;
+ static float2 vTexCoord;
+ static float3 vNormalOs;
+ static uint4 vBlendIndices;
+ static uint nInstanceIdx;
+ static float3 output_0;
+ static float3 output_1;
+ static float4 output_2;
+ static float3 output_3;
+ static float3 output_4;
+ static float4 output_5;
+ static float4 output_6;
+ static uint output_7;
+
+ struct VS_INPUT
{
- vec4 g_vTexCoordXform0;
- vec4 g_vTexCoordXform1;
- vec2 g_vTexCoordScrollSpeed;
- vec3 g_vColorTint;
- float g_flModelTintAmount;
+ float3 vPositionOs : POSITION0;
+ float2 vTexCoord : TEXCOORD0;
+ float3 vNormalOs : NORMAL0;
+ uint4 vBlendIndices : BLENDINDICES0;
+ uint nInstanceIdx : TEXCOORD13;
};
- layout(set = 0) uniform _1234 _Globals_;
-
- struct _1017
+ struct PS_INPUT
{
- vec4 _m0;
+ float3 output_0 : TEXCOORD0;
+ float3 output_1 : TEXCOORD1;
+ float4 output_2 : TEXCOORD2;
+ float3 output_3 : TEXCOORD3;
+ float3 output_4 : TEXCOORD4;
+ float4 output_5 : TEXCOORD5;
+ centroid float4 output_6 : TEXCOORD6;
+ nointerpolation uint output_7 : TEXCOORD7;
+ float4 gl_Position : SV_Position;
};
- layout(set = 0) uniform _1017 PerViewConstantBufferCsgo_t;
-
- layout(location = 0) in vec3 vPositionOs;
- layout(location = 1) in vec2 vTexCoord;
- layout(location = 2) in vec3 vNormalOs;
- layout(location = 3) in uvec4 vBlendIndices;
- layout(location = 4) in uint nInstanceIdx;
- layout(location = 0) out vec3 output_0;
- layout(location = 1) out vec3 output_1;
- layout(location = 2) out vec4 output_2;
- layout(location = 3) out vec3 output_3;
- layout(location = 4) out vec3 output_4;
- layout(location = 5) out vec4 output_5;
- layout(location = 6) centroid out vec4 output_6;
- layout(location = 7) flat out uint output_7;
-
- void main()
+ void MainVs_inner()
{
- uint _13771 = (g_instanceBuffer_1._m0[nInstanceIdx]._m5 >> uint(16)) & 15u;
+ uint _13771 = (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 20) >> uint(16)) & 15u;
uint _21785;
if (_13771 == 1u)
{
- _21785 = g_instanceBuffer_1._m0[nInstanceIdx]._m1 + (2u + vBlendIndices.x);
+ _21785 = g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) + (2u + vBlendIndices.x);
}
else
{
- _21785 = g_instanceBuffer_1._m0[nInstanceIdx]._m1;
+ _21785 = g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4);
}
- vec3 _21709;
+ float3x4 _12618 = float3x4(g_transformBuffer.Load<float4>(_21785 * 48 + 0), g_transformBuffer.Load<float4>(_21785 * 48 + 16), g_transformBuffer.Load<float4>(_21785 * 48 + 32));
+ float3 _21709;
if (_13771 > 0u)
{
- _21709 = vec3(g_transformBuffer_1._m0[g_instanceBuffer_1._m0[nInstanceIdx]._m1]._m0[0].z);
+ float3x4 _25207 = float3x4(g_transformBuffer.Load<float4>(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) * 48 + 0), g_transformBuffer.Load<float4>(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) * 48 + 16), g_transformBuffer.Load<float4>(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 4) * 48 + 32));
+ _21709 = _25207[0].z.xxx;
}
else
{
- _21709 = vec3(1.0);
+ _21709 = 1.0f.xxx;
}
- vec4 _23812 = vec4(uvec4(g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 255u, (g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 65280u) >> uint(8), (g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 16711680u) >> uint(16), (g_instanceBuffer_1._m0[nInstanceIdx]._m0 & 4278190080u) >> uint(24))) * vec4(0.0039215688593685626983642578125);
- vec3 _6253 = _23812.xyz;
- vec3 _17828 = _6253 * vec3(0.077399380505084991455078125);
- vec3 _7676 = pow((_6253 * vec3(0.947867333889007568359375)) + vec3(0.052132703363895416259765625), vec3(2.400000095367431640625));
+ float4 _23812 = float4(uint4(g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 255u, (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 65280u) >> uint(8), (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 16711680u) >> uint(16), (g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 0) & 4278190080u) >> uint(24))) * 0.0039215688593685626983642578125f.xxxx;
+ float3 _6253 = _23812.xyz;
+ float3 _17828 = _6253 * 0.077399380505084991455078125f.xxx;
+ float3 _7676 = pow((_6253 * 0.947867333889007568359375f.xxx) + 0.052132703363895416259765625f.xxx, 2.400000095367431640625f.xxx);
float _21354;
- if (_23812.x <= 0.040449999272823333740234375)
+ if (_23812.x <= 0.040449999272823333740234375f)
{
_21354 = _17828.x;
}
@@ -242,7 +251,7 @@ VS
_21354 = _7676.x;
}
float _21355;
- if (_23812.y <= 0.040449999272823333740234375)
+ if (_23812.y <= 0.040449999272823333740234375f)
{
_21355 = _17828.y;
}
@@ -251,7 +260,7 @@ VS
_21355 = _7676.y;
}
float _17978;
- if (_23812.z <= 0.040449999272823333740234375)
+ if (_23812.z <= 0.040449999272823333740234375f)
{
_17978 = _17828.z;
}
@@ -260,33 +269,69 @@ VS
_17978 = _7676.z;
}
float _7654 = _23812.w;
- vec3 _12151 = vec4(vPositionOs.xyz * _21709.xyz, 1.0) * g_transformBuffer_1._m0[_21785]._m0;
- vec4 _18237 = (vec4(_12151.xyz, 1.0) + (PerViewConstantBuffer_t._m2 * 1.0)).xyzw * PerViewConstantBuffer_t._m0;
- vec4 _9360 = vTexCoord.xyxy;
- _9360.x = dot(vTexCoord.xy, _Globals_.g_vTexCoordXform0.xy) + _Globals_.g_vTexCoordXform0.w;
- _9360.y = dot(vTexCoord.xy, _Globals_.g_vTexCoordXform1.xy) + _Globals_.g_vTexCoordXform1.w;
- vec2 _22490 = _9360.xy + (_Globals_.g_vTexCoordScrollSpeed.xy * PerViewConstantBuffer_t._m1);
- vec4 _20488 = _9360;
+ float3 _11179 = normalize(mul(_12618, float4(vNormalOs.xyz, 0.0f)));
+ float3 _12151 = mul(_12618, float4(vPositionOs.xyz * _21709.xyz, 1.0f));
+ float4 _21447 = PerViewConstantBuffer_t_1_m2 * 1.0f;
+ float4 _13706 = vTexCoord.xyxy;
+ _13706.x = dot(vTexCoord.xy, _Globals_1_g_vTexCoordXform0.xy) + _Globals_1_g_vTexCoordXform0.w;
+ _13706.y = dot(vTexCoord.xy, _Globals_1_g_vTexCoordXform1.xy) + _Globals_1_g_vTexCoordXform1.w;
+ float2 _22490 = _13706.xy + (_Globals_1_g_vTexCoordScrollSpeed.xy * PerViewConstantBuffer_t_1_m1);
+ float4 _20488 = _13706;
_20488.x = _22490.x;
_20488.y = _22490.y;
- vec4 _11399 = vec4(mix(vec3(1.0), vec4(_21354, _21355, _17978, _7654).xyz, vec3(_Globals_.g_flModelTintAmount)), _7654 * g_instanceBuffer_1._m0[nInstanceIdx]._m7);
- vec3 _13062 = _11399.xyz * _Globals_.g_vColorTint.xyz;
- vec4 _23714 = _11399;
+ float4 _11399 = float4(lerp(1.0f.xxx, float4(_21354, _21355, _17978, _7654).xyz, _Globals_1_g_flModelTintAmount.xxx), _7654 * g_instanceBuffer.Load<float>(nInstanceIdx * 32 + 28));
+ float3 _13062 = _11399.xyz * _Globals_1_g_vColorTint.xyz;
+ float4 _23714 = _11399;
_23714.x = _13062.x;
_23714.y = _13062.y;
_23714.z = _13062.z;
+ float4 _19363;
+ if (_Globals_1_g_flOverlayLift > 0.0f)
+ {
+ float3 _6847 = _12151.xyz;
+ float3 _18449 = normalize(PerViewConstantBuffer_t_1_m3.xyz - _6847);
+ float4 _18277 = mul(PerViewConstantBuffer_t_1_m0, (float4(_6847, 1.0f) + _21447).xyzw);
+ float4 _8847 = mul(PerViewConstantBuffer_t_1_m0, (float4((_6847 + (_18449 * ((_Globals_1_g_flOverlayLift * 1.5f) / max(dot(_11179.xyz, _18449), 0.300000011920928955078125f)))).xyz, 1.0f) + _21447).xyzw);
+ _18277.z = (_8847.z / _8847.w) * _18277.w;
+ _19363 = _18277;
+ }
+ else
+ {
+ _19363 = mul(PerViewConstantBuffer_t_1_m0, (float4(_12151.xyz, 1.0f) + _21447).xyzw);
+ }
output_0 = _12151;
- output_1 = _12151 - PerViewConstantBuffer_t._m3.xyz;
+ output_1 = _12151 - PerViewConstantBuffer_t_1_m3.xyz;
output_2 = _20488;
- output_3 = _12151.xyz - PerViewConstantBufferCsgo_t._m0.xyz;
- output_4 = normalize(vec4(vNormalOs.xyz, 0.0) * g_transformBuffer_1._m0[_21785]._m0);
+ output_3 = _12151.xyz - PerViewConstantBufferCsgo_t_1_m0.xyz;
+ output_4 = _11179;
output_5 = _20488;
output_6 = _23714;
- output_7 = g_instanceBuffer_1._m0[nInstanceIdx]._m5 & 65535u;
- _18237.y = -_18237.y;
- gl_Position = _18237;
+ output_7 = g_instanceBuffer.Load<uint>(nInstanceIdx * 32 + 20) & 65535u;
+ float4 _20857 = _19363;
+ _20857.y = -_19363.y;
+ gl_Position = _20857;
}
+ PS_INPUT MainVs(VS_INPUT stage_input)
+ {
+ vPositionOs = stage_input.vPositionOs;
+ vTexCoord = stage_input.vTexCoord;
+ vNormalOs = stage_input.vNormalOs;
+ vBlendIndices = stage_input.vBlendIndices;
+ nInstanceIdx = stage_input.nInstanceIdx;
+ MainVs_inner();
+ PS_INPUT stage_output;
+ stage_output.gl_Position = gl_Position;
+ stage_output.output_0 = output_0;
+ stage_output.output_1 = output_1;
+ stage_output.output_2 = output_2;
+ stage_output.output_3 = output_3;
+ stage_output.output_4 = output_4;
+ stage_output.output_5 = output_5;
+ stage_output.output_6 = output_6;
+ stage_output.output_7 = output_7;
+ return stage_output;
+ }
// --------- SPIRV -> HLSL end ---------
@@ -397,7 +442,7 @@ PS
float3 g_vAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.045,.4,1.15).x,-1.4427*log(max(.0001,1-float3(-.045,.4,1.15).y)),2-float3(-.045,.4,1.15).z)); >;
float3 g_vBiplanarTexCoordScale < UiType(VectorText); Expression(1/64*float3(-1,1,-1)); >;
float3 g_vDarkMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.1,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.1,.4,1.08).y)),2-float3(-.1,.4,1.08).z)); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float3 g_vMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.45,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.45,.4,1.08).y)),2-float3(-.45,.4,1.08).z)); >;
float4 g_vNormalXform_1 < UiType(VectorText); Expression(v0 = g_flTexCoordRotation1*3.1415927/180;
v1 = cos(v0);
@@ -430,7 +475,7 @@ PS
CreateInputTexture2D(TextureAmbientOcclusion1, Linear, 8, "", "_ao", "Material1/Lighting,20/20", Default4(1, 1, 1, 0));
float g_fTextureColorContrast1 < Default(1); Range(0, 4); UiType(Slider); UiGroup("Material1/Color Correction/20"); >;
float g_flHeightMapScale1 < Default(1); Range(-4, 4); UiType(Slider); UiGroup("Material1/Height/20"); >;
- float3 g_vAmbientOcclusionLevels1 < Default2(0, 0.5); Range(-1, 1); Attribute("0=Option 1,1=Option 2,2=Option 3"); UiType(VectorText); UiGroup("Material1/Lighting/21"); Expression(float3(-this.x,-1.4427*log(max(.0001,1-this.y)),2-this.z)); >;
+ float3 g_vAmbientOcclusionLevels1 < Default3(0, 0.5, 1); Range(-1, 1); Attribute("0=Option 1,1=Option 2,2=Option 3"); UiType(VectorText); UiGroup("Material1/Lighting/21"); Expression(float3(-this.x,-1.4427*log(max(.0001,1-this.y)),2-this.z)); >;
CreateInputTexture2D(TextureMetalness1, Linear, 8, "", "_metal", "Material1/Lighting/30", Default4(0, 0, 0, 0));
float g_fTextureColorSaturation1 < Default(1); Range(0, 4); UiType(Slider); UiGroup("Material1/Color Correction/30"); >;
float g_flHeightMapZeroPoint1 < Default(0.5); UiType(Slider); UiGroup("Material1/Height/30"); >;
@@ -451,6 +496,7 @@ PS
// Lighting
CreateInputTexture2D(TextureMetalness, Linear, 8, "", "_metal", "Lighting,30/Metalness,30/10", Default4(0, 0, 0, 0));
CreateInputTexture2D(TextureRoughness, Linear, 8, "Inverse", "_rough", "Lighting,30/Roughness,20/10", Default4(0.5, 0.5, 0.5, 0));
+ bool g_bSnow < UiType(CheckBox); UiGroup("Lighting/Snow,90/10"); >;
float g_fTextureRoughnessContrast < Default(1); Range(0, 4); UiType(Slider); UiGroup("Lighting/Roughness/11"); >;
float g_fTextureRoughnessBrightness < Default(1); Range(0, 4); UiType(Slider); UiGroup("Lighting/Roughness/12"); >;
bool g_bMaskRoughnessAdjustmentsByTintMask < UiType(CheckBox); UiGroup("Lighting/Roughness/13"); UiVisibility(F_TINT_MASK==1); >;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_textile_layer.slang
modified • +180 / -169 • changes: 349
Show patch
@@ -334,7 +334,7 @@ PS
Texture2D g_tSurface1 < Channel(RGB, ArtistDefined(TextureSurfaceAlbedo1), Srgb); Channel(A, Box(TextureSurfaceTintMask1), Linear); OutputFormat(BC7); SrgbRead(true); >;
Texture2D g_tSurfaceNormal1 < Channel(RGBA, HemiOctAnisoRoughness(TextureSurfaceNormal1, TextureSurfaceRoughness1), Linear); OutputFormat(BC7); SrgbRead(false); >;
Texture2D g_tSurfaceProperties1 < Channel(R, Box3(TextureSurfaceAmbientOcclusion1), Linear); Channel(G, Box(TextureSurfaceMetalness1), Linear); Channel(B, Box(TextureSurfaceClothMask1), Linear); Channel(A, Box(TextureSurfaceHeight1), Linear); OutputFormat(BC7); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vGrungeTexCoordXform0 < UiType(VectorText); Expression(v0 = g_fGrungeTexCoordRotation*3.14159/180;
v1 = cos(v0);
v2 = sin(v0);
@@ -385,7 +385,7 @@ PS
CreateInputTexture2D(TextureGrime1, Srgb, 8, "", "_color", "Material1/Grime,6/1", Default4(0.5, 0.5, 0.5, 0));
CreateInputTexture2D(TextureSubstrateAlbedo1, Srgb, 8, "", "_color", "Material1/Substrate Layer,2/1", Default4(1, 1, 1, 0));
CreateInputTexture2D(TextureSurfaceAlbedo1, Srgb, 8, "", "_color", "Material1/Surface Layer,1/1", Default4(1, 1, 1, 0));
- float2 g_vDamageLevels1 < Default(0); UiType(VectorText); UiGroup("Material1,1/Detail Damage/1"); >;
+ float2 g_vDamageLevels1 < Default2(0, 1); UiType(VectorText); UiGroup("Material1,1/Detail Damage/1"); >;
CreateInputTexture2D(TextureSubstrateTintMask1, Linear, 8, "", "_tintmask", "Material1/Substrate Layer/2", Default4(1, 1, 1, 0));
CreateInputTexture2D(TextureSurfaceTintMask1, Linear, 8, "", "_tintmask", "Material1/Surface Layer/2", Default4(1, 1, 1, 0));
float g_fCurvaturePower1 < Default(1); Range(0.5, 6); UiType(Slider); UiGroup("Material1/Detail Damage/2"); >;
@@ -409,16 +409,16 @@ PS
CreateInputTexture2D(TextureDetailNormal1, Linear, 8, "", "_detailnormal", "Material1/Normal/10", Default4(0.5, 0.5, 0.5, 0.5));
CreateInputTexture2D(TextureGrunge1, Linear, 8, "", "_grunge", "Material1/Grunge/10", Default4(0.5, 0.5, 0.5, 0.5));
float g_fDamageMetalness1 < UiType(Slider); UiGroup("Material1/Detail Damage/10"); >;
- float2 g_vSurfaceGrimeMinMax1 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material1/Grime/10"); >;
+ float2 g_vSurfaceGrimeMinMax1 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material1/Grime/10"); >;
CreateInputTexture2D(TextureDamageNormal1, Linear, 8, "", "_damagenormal", "Material1/Normal/11", Default4(0.5, 0.5, 0.5, 0.5));
float g_fDamageCloth1 < UiType(Slider); UiGroup("Material1/Detail Damage/11"); UiVisibility(F_CLOTH_SHADING); >;
float g_fDamageHeightBlendSoftness1 < Default(0.01); UiType(Slider); UiGroup("Material1/Damage Height/11"); Expression(max(this,.001)); >;
float g_fDetailGrunge1 < Range(0, 2); UiType(Slider); UiGroup("Material1/Grunge/11"); >;
float g_fDetailScale1 < Default(4); Range(-10, 10); UiType(Slider); UiGroup("Material1/Detail/11"); >;
- float2 g_vSubstrateGrimeMinMax1 < Default(0); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material1/Grime/11"); >;
+ float2 g_vSubstrateGrimeMinMax1 < Default2(0, 1); Range2(-1, -1, 2, 2); UiType(VectorText); UiGroup("Material1/Grime/11"); >;
float g_fDetailNormalContrast1 < Default(1); Range(0, 8); UiType(Slider); UiGroup("Material1/Normal/12"); >;
float g_fDetailRoughnessContrast1 < Range(-1, 1); UiType(Slider); UiGroup("Material1/Detail/12"); >;
- float2 g_vDamageMinMax1 < Default(0); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material1/Damage Height/12"); >;
+ float2 g_vDamageMinMax1 < Default2(0, 1); Range2(0, 0, 2, 2); UiType(VectorText); UiGroup("Material1/Damage Height/12"); >;
float g_fDetailRoughnessBrightness1 < Default(1); Range(0, 10); UiType(Slider); UiGroup("Material1/Detail/13"); >;
float g_fWearBleaching1 < Default(0.25); Range(0, 3); UiType(Slider); UiGroup("Material1/Wear Edge/13"); >;
float g_fDetailAnisotropyScalar1 < Range(-1, 1); UiType(Slider); UiGroup("Material1/Detail/14"); >;
@@ -459,12 +459,12 @@ PS
CreateInputTexture2D(TextureSubstrateMetalness1, Srgb, 8, "", "_metal", "Material1/Substrate Layer/40", Default4(0, 0, 0, 0));
CreateInputTexture2D(TextureSurfaceMetalness1, Linear, 8, "", "_metal", "Material1/Surface Layer/40", Default4(0, 0, 0, 0));
float g_fDamageBevelRoughnessBrightness1 < Default(1); Range(0, 2); UiType(Slider); UiGroup("Material1/Damage Bevel/40"); >;
- float2 g_vSurfaceBurnishingMinMax1 < Default(0); UiType(VectorText); UiGroup("Material1/Burnishing/40"); >;
+ float2 g_vSurfaceBurnishingMinMax1 < Default2(0, 1); UiType(VectorText); UiGroup("Material1/Burnishing/40"); >;
CreateInputTexture2D(TextureSubstrateClothMask1, Srgb, 8, "", "_mask", "Material1/Substrate Layer/41", "materials/default/default_black_mask.tga");
CreateInputTexture2D(TextureSurfaceClothMask1, Linear, 8, "", "_mask", "Material1/Surface Layer/41", "materials/default/default_black_mask.tga");
float g_fDamageBevelAnisotropy1 < UiType(Slider); UiGroup("Material1/Damage Bevel/41"); >;
float g_fDamageNormalEdgeWidth1 < Default(1); Range(0, 8); UiType(Slider); UiGroup("Material1,1/Wear Edge/41"); >;
- float2 g_vSubstrateBurnishingMinMax1 < Default(0); UiType(VectorText); UiGroup("Material1/Burnishing/41"); >;
+ float2 g_vSubstrateBurnishingMinMax1 < Default2(0, 1); UiType(VectorText); UiGroup("Material1/Burnishing/41"); >;
float g_fDamageEdgeRoughness1 < Default(0.8); UiType(Slider); UiGroup("Material1/Wear Edge/42"); >;
float g_fDamageEdgeMetalness1 < UiType(Slider); UiGroup("Material1/Wear Edge/43"); >;
float g_fDamageBevelMetalness1 < UiType(Slider); UiGroup("Material1/Damage Bevel/50"); >;
@@ -527,14 +527,14 @@ PS
#endif
#extension GL_KHR_shader_subgroup_arithmetic : require
- const vec2 _724[4] = vec2[](vec2(-1.0), vec2(-1.0, 1.0), vec2(1.0), vec2(1.0, -1.0));
+ const vec2 _790[4] = vec2[](vec2(-1.0), vec2(-1.0, 1.0), vec2(1.0), vec2(1.0, -1.0));
- struct _1906
+ struct _2158
{
vec4 _m0[3];
};
- struct _2116
+ struct _2368
{
vec4 _m0[4];
};
@@ -550,12 +550,12 @@ PS
vec4 _m6;
};
- struct _2033
+ struct _2946
{
_1677 _m0[128];
};
- struct _872
+ struct _1988
{
mat4 _m0[4];
};
@@ -659,15 +659,15 @@ PS
layout(set = 1) uniform _2806 PerViewConstantBufferCsgo_t;
- struct _1552
+ struct _832
{
vec4 _m0;
vec4 _m1;
vec4 _m2;
vec4 _m3;
vec4 _m4;
- _1906 _m5;
- _2116 _m6;
+ _2158 _m5;
+ _2368 _m6;
vec4 _m7;
vec4 _m8;
vec4 _m9;
@@ -676,7 +676,7 @@ PS
uvec4 _m12;
vec4 _m13;
vec4 _m14;
- _2033 _m15;
+ _2946 _m15;
vec4 _m16;
vec4 _m17;
int _m18;
@@ -686,11 +686,11 @@ PS
float _m22;
float _m23;
float _m24;
- _872 _m25;
- _2116 _m26;
+ _1988 _m25;
+ _2368 _m26;
};
- layout(set = 3) uniform _1552 PerViewLightingConstantBufferGpu_t;
+ layout(set = 3) uniform _832 PerViewLightingConstantBufferGpu_t;
struct _1194
{
@@ -721,19 +721,19 @@ PS
layout(set = 1, binding = 55) uniform texture2D g_tDetailNormal1;
layout(set = 1, binding = 56) uniform texture2D g_tDamageNormal1;
layout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;
- layout(set = 1, binding = 22) uniform sampler g_sCookieSampler;
+ layout(set = 1, binding = 23) uniform sampler g_sCookieSampler;
layout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;
- layout(set = 1, binding = 18) uniform sampler g_sPointClamp;
+ layout(set = 1, binding = 19) uniform sampler g_sPointClamp;
layout(set = 1, binding = 39) uniform texture2D g_tSsao;
- layout(set = 1, binding = 19) uniform sampler g_sUserConfig;
- layout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
+ layout(set = 1, binding = 20) uniform sampler g_sUserConfig;
+ layout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
layout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;
layout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;
- layout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;
- layout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;
+ layout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;
+ layout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;
layout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;
layout(set = 1, binding = 40) uniform textureCubeArray g_tEnvironmentMap;
- layout(set = 1, binding = 15) uniform sampler g_sBilinearClamp;
+ layout(set = 1, binding = 16) uniform sampler g_sBilinearClamp;
layout(set = 1, binding = 35) uniform texture2DArray g_tBRDFLookup;
layout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;
@@ -983,8 +983,8 @@ PS
{
break;
}
- float _24694 = _19034 - smoothstep(_Globals_.g_vDamageLevels1.x, _Globals_.g_vDamageLevels1.y, saturate((texture(sampler2D(g_tGrunge1, g_sAniso), (_15902 + (((_724[_17017] * 0.0009765625) * _Globals_.g_fDamageNormalEdgeWidth1) * 2.0)).xy).w * _21912) + _20765) * _Globals_.g_fWearProgress);
- _10648 = _13136.xy - (_724[_17017] * _24694);
+ float _24694 = _19034 - smoothstep(_Globals_.g_vDamageLevels1.x, _Globals_.g_vDamageLevels1.y, saturate((texture(sampler2D(g_tGrunge1, g_sAniso), (_15902 + (((_790[_17017] * 0.0009765625) * _Globals_.g_fDamageNormalEdgeWidth1) * 2.0)).xy).w * _21912) + _20765) * _Globals_.g_fWearProgress);
+ _10648 = _13136.xy - (_790[_17017] * _24694);
_14733 = _16324 + abs(_24694);
_18386 = _17017 + 1;
_13136 = _10648;
@@ -1091,162 +1091,173 @@ PS
{
_21711 = _21710;
}
- float _21712;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735);
+ float _12320;
SPIRV_CROSS_BRANCH
- if (PerViewLightingConstantBufferGpu_t._m18 != 0)
+ if (_8634 > 0.0)
{
- int _23989;
- int _10191;
- float _13137;
- vec3 _14975;
- int _13039 = 0;
- for (;;)
- {
- if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))
- {
- _13137 = 1.0;
- _14975 = vec3(0.0);
- _10191 = -1;
- break;
- }
- vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])
- {
- vec3 _19470 = vec3(_12779, _18322.yz);
- vec2 _24804 = _19470.xy;
- vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));
- vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;
- vec3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13137 = saturate(_22193.x * _22193.y);
- _14975 = _20488;
- _10191 = _13039;
- break;
- }
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
+ float _12504;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m18 != 0)
{
- vec2 _7045;
- vec2 _7046;
- vec2 _7735;
- float _8969;
- float _8970;
- float _15996;
- float _17299;
- vec2 _18870;
- vec4 _20581;
- vec4 _22024;
- float _23727;
- do
+ int _23989;
+ int _10191;
+ float _13137;
+ vec3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);
- _20581 = PerViewLightingConstantBufferGpu_t._m0;
- _22024 = PerViewLightingConstantBufferGpu_t._m1;
- _17299 = PerViewLightingConstantBufferGpu_t._m2.z;
- _15996 = PerViewLightingConstantBufferGpu_t._m3.z;
- _18870 = vec2(_17299, _15996);
- _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
- _7045 = vec2(_8969, _15996);
- _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
- _7046 = vec2(_17299, _8970);
- _7735 = vec2(_8969, _8970);
- float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));
- bool _12887;
- if (_15310 == 0.0)
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))
{
- _12887 = true;
- }
- else
- {
- _12887 = _15310 == 1.0;
+ _13137 = 1.0;
+ _14975 = vec3(0.0);
+ _10191 = -1;
+ break;
}
- if (_12887)
+ vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])
{
- _23727 = _15310;
+ vec3 _19470 = vec3(_12779, _18322.yz);
+ vec2 _24804 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));
+ vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;
+ vec3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13137 = saturate(_22193.x * _22193.y);
+ _14975 = _20488;
+ _10191 = _13039;
break;
}
- _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22024.y);
- break;
- } while(false);
- float _12502;
- SPIRV_CROSS_BRANCH
- if (_13137 < 1.0)
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
+ }
+ float _19363;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))
+ vec2 _7045;
+ vec2 _7046;
+ vec2 _7735;
+ float _8969;
+ float _8970;
+ float _15996;
+ float _17299;
+ vec2 _18870;
+ vec4 _20581;
+ vec4 _22024;
+ float _23727;
+ do
{
- int _15335 = _10191 + 1;
- vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];
- vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;
- vec3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- float _12501;
- do
+ float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);
+ _20581 = PerViewLightingConstantBufferGpu_t._m0;
+ _22024 = PerViewLightingConstantBufferGpu_t._m1;
+ _17299 = PerViewLightingConstantBufferGpu_t._m2.z;
+ _15996 = PerViewLightingConstantBufferGpu_t._m3.z;
+ _18870 = vec2(_17299, _15996);
+ _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
+ _7045 = vec2(_8969, _15996);
+ _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
+ _7046 = vec2(_17299, _8970);
+ _7735 = vec2(_8969, _8970);
+ float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));
+ bool _12887;
+ if (_15310 == 0.0)
{
- float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);
- float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));
- bool _12888;
- if (_15311 == 0.0)
- {
- _12888 = true;
- }
- else
- {
- _12888 = _15311 == 1.0;
- }
- if (_12888)
+ _12887 = true;
+ }
+ else
+ {
+ _12887 = _15310 == 1.0;
+ }
+ if (_12887)
+ {
+ _23727 = _15310;
+ break;
+ }
+ _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22024.y);
+ break;
+ } while(false);
+ float _12502;
+ SPIRV_CROSS_BRANCH
+ if (_13137 < 1.0)
+ {
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];
+ vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;
+ vec3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ float _12501;
+ do
{
- _12501 = _15311;
+ float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);
+ float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));
+ bool _12888;
+ if (_15311 == 0.0)
+ {
+ _12888 = true;
+ }
+ else
+ {
+ _12888 = _15311 == 1.0;
+ }
+ if (_12888)
+ {
+ _12501 = _15311;
+ break;
+ }
+ _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22024.y);
break;
- }
- _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22024.y);
- break;
- } while(false);
- _7934 = _12501;
+ } while(false);
+ _7934 = _12501;
+ }
+ else
+ {
+ _7934 = 1.0;
+ }
+ _12502 = mix(_7934, _23727, _13137);
}
else
{
- _7934 = 1.0;
+ _12502 = _23727;
}
- _12502 = mix(_7934, _23727, _13137);
+ _19363 = _12502;
}
else
{
- _12502 = _23727;
+ _19363 = 1.0;
}
- _19363 = _12502;
- }
- else
- {
- _19363 = 1.0;
- }
- float _13279 = mix(_19363, 1.0, saturate((distance(_10829.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));
- float _12503;
- if (_24465.y)
- {
- _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ float _13279 = mix(_19363, 1.0, saturate((distance(_10829.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));
+ float _12503;
+ if (_24465.y)
+ {
+ _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_18180.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12503 = _13279;
+ }
+ _12504 = _12503;
}
else
{
- _12503 = _13279;
+ _12504 = 1.0;
}
- _21712 = _12503;
+ _12320 = _12504;
}
else
{
- _21712 = 1.0;
+ _12320 = 1.0;
}
vec3 _9716;
vec3 _24878;
SPIRV_CROSS_BRANCH
- if ((dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735) * _21712) > 0.0)
+ if ((_8634 * _12320) > 0.0)
{
float _11797 = max(0.0, dot(_14995.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));
vec2 _9840 = max(_11004, vec2(PerViewLightingConstantBufferGpu_t._m16.w));
@@ -1257,8 +1268,8 @@ PS
float _25073 = max(0.0, dot(_19012, _21889));
float _9850 = _9840.x;
float _25211 = _9850 * _9850;
- float _19097 = _12386 * _12386;
- float _24198 = _25211 / ((_19097 * ((_25211 * _25211) - 1.0)) + 1.0);
+ float _19096 = _12386 * _12386;
+ float _24198 = _25211 / ((_19096 * ((_25211 * _25211) - 1.0)) + 1.0);
float _16150 = _9850 + 1.0;
float _6835 = (_16150 * _16150) * 0.125;
float _19569 = 1.0 - _6835;
@@ -1270,13 +1281,13 @@ PS
float _6597 = dot(_9840.xy, vec2(0.5));
float _20791 = max(_6597 * _6597, 9.9999997473787516355514526367188e-06);
float _21401 = saturate(_25073 + 0.001000000047497451305389404296875);
- _11621 = mix(_21624, ((((2.0 + (1.0 / _20791)) * pow(1.0 - _19097, 0.5 / _20791)) / ((_11797 + _21401) - (_11797 * _21401))) * 0.124999918043613433837890625) * _11797, _11543);
+ _11621 = mix(_21624, ((((2.0 + (1.0 / _20791)) * pow(1.0 - _19096, 0.5 / _20791)) / ((_11797 + _21401) - (_11797 * _21401))) * 0.124999918043613433837890625) * _11797, _11543);
}
else
{
_11621 = _21624;
}
- vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _21712).xyz;
+ vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _12320).xyz;
_9716 = PerViewLightingConstantBufferGpu_t._m9.xyz + (vec3(_11797).xyz * _16808);
_24878 = (((_17639.xyz + ((vec3(1.0) - _17639.xyz) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * _11621).xyz * _11797).xyz * _16808;
}
@@ -1477,7 +1488,7 @@ PS
}
else
{
- vec3 _12504;
+ vec3 _12505;
if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)
{
vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);
@@ -1493,7 +1504,7 @@ PS
vec3 _20491 = _14081;
_20491.x = _20564.x;
_20491.y = _20564.y;
- _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;
+ _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;
}
else
{
@@ -1502,9 +1513,9 @@ PS
vec3 _20490 = _13791;
_20490.x = _20563.x;
_20490.y = _20563.y;
- _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;
+ _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;
}
- _21548 = _12504;
+ _21548 = _12505;
}
if (all(equal(_21548.xyz, vec3(0.0))))
{
@@ -1532,8 +1543,8 @@ PS
do
{
float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);
- vec2 _14616 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;
- float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));
+ vec2 _14617 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;
+ float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));
bool _12890;
if (_15312 == 0.0)
{
@@ -1548,7 +1559,7 @@ PS
_24972 = _15312;
break;
}
- _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14616, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
+ _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14617 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14617, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
break;
} while(false);
vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12608]._m12);
@@ -1573,8 +1584,8 @@ PS
float _25074 = max(0.0, dot(_19014, _21890));
float _9851 = _9841.x;
float _25212 = _9851 * _9851;
- float _19098 = _12387 * _12387;
- float _24199 = _25212 / ((_19098 * ((_25212 * _25212) - 1.0)) + 1.0);
+ float _19097 = _12387 * _12387;
+ float _24199 = _25212 / ((_19097 * ((_25212 * _25212) - 1.0)) + 1.0);
float _16151 = _9851 + 1.0;
float _6836 = (_16151 * _16151) * 0.125;
float _19571 = 1.0 - _6836;
@@ -1586,7 +1597,7 @@ PS
float _6598 = dot(_9841.xy, vec2(0.5));
float _20792 = max(_6598 * _6598, 9.9999997473787516355514526367188e-06);
float _21402 = saturate(_25074 + 0.001000000047497451305389404296875);
- _11622 = mix(_21625, ((((2.0 + (1.0 / _20792)) * pow(1.0 - _19098, 0.5 / _20792)) / ((_11798 + _21402) - (_11798 * _21402))) * 0.124999918043613433837890625) * _11798, _11543);
+ _11622 = mix(_21625, ((((2.0 + (1.0 / _20792)) * pow(1.0 - _19097, 0.5 / _20792)) / ((_11798 + _21402) - (_11798 * _21402))) * 0.124999918043613433837890625) * _11798, _11543);
}
else
{
@@ -1624,12 +1635,12 @@ PS
_10287 = _22447;
}
float _17751 = dot(_11004.xy, vec2(0.5));
- vec3 _6521 = _17892.xyz;
+ vec3 _6520 = _17892.xyz;
vec3 _19081 = _17892.xyz;
float _23572 = PerViewLightingConstantBufferGpu_t._m14.y * sqrt(_17751);
float _17225 = _17751 * _17751;
float _20711 = saturate(1.0 - _17225);
- vec3 _25271 = normalize(mix(_6521, reflect(_10145.xyz, _19081).xyz, vec3(_20711 * (sqrt(_20711) + _17225))));
+ vec3 _25271 = normalize(mix(_6520, reflect(_10145.xyz, _19081).xyz, vec3(_20711 * (sqrt(_20711) + _17225))));
uvec2 _6814 = uvec2(_18180.xy - PerViewConstantBuffer_t._m0.xy) >> _7663;
uint _19949 = PerViewLightingConstantBufferGpu_t._m11.y + (((_6814.y * PerViewLightingConstantBufferGpu_t._m12.y) + _6814.x) * PerViewLightingConstantBufferGpu_t._m11.z);
uint _23394 = PerViewLightingConstantBufferGpu_t._m11.x + (uint(clamp(_6864 * PerViewLightingConstantBufferGpu_t._m13.x, 0.0, PerViewLightingConstantBufferGpu_t._m13.y)) * PerViewLightingConstantBufferGpu_t._m11.z);
@@ -1734,15 +1745,15 @@ PS
continue;
}
vec3 _20869 = _19257.xyz;
- float _20784 = max(0.0, dot(_20869, _6521));
+ float _20784 = max(0.0, dot(_20869, _6520));
vec4 _11487 = textureLod(sampler2DArray(g_tBRDFLookup, g_sBilinearClamp), vec3((vec2(_17751, sqrt(1.0 - _20784)) * 0.984375) + vec2(0.0078125), 1.0).xyz, 0.0);
vec3 _18985 = mix(_11487.xxx, _11487.yyy, _17639);
float _10020;
vec3 _23440;
SPIRV_CROSS_BRANCH
if (_14874)
{
- float _7173 = dot(normalize(_6521 + _20869).xyz, _6521);
+ float _7173 = dot(normalize(_6520 + _20869).xyz, _6520);
float _22187 = max(_17225, 9.9999997473787516355514526367188e-06);
float _21363 = saturate(_20784 + 0.001000000047497451305389404296875);
_10020 = 1.0 - _11543;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_unlitgeneric.slang
modified • +2 / -2 • changes: 4
Show patch
@@ -382,9 +382,9 @@ PS
};
Texture2D<float4> g_tColor : register(t51, space1);
- SamplerState g_sUserConfigAllowGlobalMipBias : register(s20, space1);
+ SamplerState g_sUserConfigAllowGlobalMipBias : register(s21, space1);
TextureCube<float4> g_tFogCubeTexture : register(t42, space1);
- SamplerState g_sTrilinearClamp : register(s17, space1);
+ SamplerState g_sTrilinearClamp : register(s18, space1);
static float4 input_2;
static float4 input_3;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_vertexlitgeneric.slang
modified • +122 / -111 • changes: 233
Show patch
@@ -390,7 +390,7 @@ PS
Texture2D g_tNormal < Channel(RGBA, HemiOctIsoRoughness_RG_B(TextureNormal, TextureRoughness), Linear); OutputFormat(BC7); SrgbRead(false); >;
Texture2D g_tSelfIllumMask < Channel(RGB, Box(TextureSelfIllumMask), Srgb); OutputFormat(DXT1); SrgbRead(true); >;
Texture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float3 g_vSelfIllumTintScaled < UiType(VectorText); Expression(pow(2,g_flSelfIllumBrightness).x*g_flSelfIllumScale.x*SrgbGammaToLinear(g_vSelfIllumTint.xyz)); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
@@ -460,17 +460,17 @@ PS
// Source 2 Viewer - https://valveresourceformat.github.io
// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup
- struct _2620
+ struct _2872
{
float4 _m0[3];
};
- struct _2830
+ struct _71
{
float4 _m0[4];
};
- struct _1023
+ struct _2139
{
column_major float4x4 _m0[4];
};
@@ -508,22 +508,22 @@ PS
cbuffer _Globals_ : register(b0, space1)
{
- uint _Globals_1_g_sTrilinearWrap : packoffset(c0.z);
- uint _Globals_1_g_sTrilinearClamp : packoffset(c0.w);
- uint _Globals_1_g_sPointClamp : packoffset(c1);
- uint _Globals_1_g_sUserConfig : packoffset(c1.w);
- uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c2);
- uint _Globals_1_g_sCookieSampler : packoffset(c2.z);
- uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c2.w);
- int _Globals_1_g_bFogEnabled : packoffset(c3.y);
- int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c3.z);
- int _Globals_1_g_bRenderBackfaceNormals : packoffset(c3.w);
- uint _Globals_1_g_tColor : packoffset(c7.w);
- uint _Globals_1_g_tNormal : packoffset(c8);
- uint _Globals_1_g_tAmbientOcclusion : packoffset(c8.w);
- float _Globals_1_g_flAmbientOcclusionScale : packoffset(c9);
- uint _Globals_1_g_tMetalness : packoffset(c9.y);
- float _Globals_1_g_flInverseBlendTint : packoffset(c9.z);
+ uint _Globals_1_g_sTrilinearWrap : packoffset(c0.w);
+ uint _Globals_1_g_sTrilinearClamp : packoffset(c1);
+ uint _Globals_1_g_sPointClamp : packoffset(c1.y);
+ uint _Globals_1_g_sUserConfig : packoffset(c2);
+ uint _Globals_1_g_sUserConfigAllowGlobalMipBias : packoffset(c2.y);
+ uint _Globals_1_g_sCookieSampler : packoffset(c2.w);
+ uint _Globals_1_g_tShadowDepthBufferCmpSampler : packoffset(c3);
+ int _Globals_1_g_bFogEnabled : packoffset(c3.z);
+ int _Globals_1_g_bDontFlipBackfaceNormals : packoffset(c3.w);
+ int _Globals_1_g_bRenderBackfaceNormals : packoffset(c4);
+ uint _Globals_1_g_tColor : packoffset(c8);
+ uint _Globals_1_g_tNormal : packoffset(c8.y);
+ uint _Globals_1_g_tAmbientOcclusion : packoffset(c9);
+ float _Globals_1_g_flAmbientOcclusionScale : packoffset(c9.y);
+ uint _Globals_1_g_tMetalness : packoffset(c9.z);
+ float _Globals_1_g_flInverseBlendTint : packoffset(c9.w);
};
cbuffer PerViewConstantBufferCsgo_t : register(b3, space1)
@@ -552,8 +552,8 @@ PS
cbuffer PerViewLightingConstantBufferGpu_t : register(b0, space3)
{
- _2620 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);
- _2830 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);
+ _2872 PerViewLightingConstantBufferGpu_t_1_m0 : packoffset(c7);
+ _71 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c11);
float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c16);
float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c17);
float4 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c18);
@@ -569,8 +569,8 @@ PS
float PerViewLightingConstantBufferGpu_t_1_m14 : packoffset(c1955.y);
float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.z);
float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.w);
- _1023 PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1956);
- _2830 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1988);
+ _2139 PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1956);
+ _71 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1988);
uint PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1996);
uint PerViewLightingConstantBufferGpu_t_1_m20 : packoffset(c1996.y);
};
@@ -748,104 +748,115 @@ PS
{
_21710 = 1.0f;
}
- float _21711;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t_1_m8.xyz, _24735);
+ float _12320;
[branch]
- if (PerViewLightingConstantBufferGpu_t_1_m10 != 0)
+ if (_8634 > 0.0f)
{
- int _23989;
- int _10191;
- float _13136;
- float3 _14975;
- int _13039 = 0;
- for (;;)
+ float _12503;
+ [branch]
+ if (PerViewLightingConstantBufferGpu_t_1_m10 != 0)
{
- if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m10))
- {
- _13136 = 1.0f;
- _14975 = 0.0f.xxx;
- _10191 = -1;
- break;
- }
- float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_13039], float4(input_1.xyz, 1.0f));
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m12[_13039])
+ int _23989;
+ int _10191;
+ float _13136;
+ float3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- float3 _19470 = float3(_12779, _18322.yz);
- float2 _24804 = _19470.xy;
- float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m14.xx) + PerViewLightingConstantBufferGpu_t_1_m13.xx, 0.0f.xx, 1.0f.xx);
- float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].xy;
- float3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13136 = saturate(_22193.x * _22193.y);
- _14975 = _20488;
- _10191 = _13039;
- break;
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m10))
+ {
+ _13136 = 1.0f;
+ _14975 = 0.0f.xxx;
+ _10191 = -1;
+ break;
+ }
+ float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_13039], float4(input_1.xyz, 1.0f));
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m12[_13039])
+ {
+ float3 _19470 = float3(_12779, _18322.yz);
+ float2 _24804 = _19470.xy;
+ float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m14.xx) + PerViewLightingConstantBufferGpu_t_1_m13.xx, 0.0f.xx, 1.0f.xx);
+ float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039].xy;
+ float3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13136 = saturate(_22193.x * _22193.y);
+ _14975 = _20488;
+ _10191 = _13039;
+ break;
+ }
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
}
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
- {
- float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m11));
- float _12501;
- [branch]
- if (_13136 < 1.0f)
+ float _19363;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m10 - 1))
+ float _18270 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m11));
+ float _12501;
+ [branch]
+ if (_13136 < 1.0f)
{
- int _15335 = _10191 + 1;
- float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_15335], float4(input_1.xyz, 1.0f));
- float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].xy;
- float3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m11));
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m10 - 1))
+ {
+ int _15335 = _10191 + 1;
+ float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m17._m0[_15335], float4(input_1.xyz, 1.0f));
+ float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335].xy;
+ float3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ _7934 = g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t_1_m19].SampleCmpLevelZero(g_bindless_Sampler_1[_Globals_1_g_tShadowDepthBufferCmpSampler], _20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m11));
+ }
+ else
+ {
+ _7934 = 1.0f;
+ }
+ _12501 = lerp(_7934, _18270, _13136);
}
else
{
- _7934 = 1.0f;
+ _12501 = _18270;
}
- _12501 = lerp(_7934, _18270, _13136);
+ _19363 = _12501;
}
else
{
- _12501 = _18270;
+ _19363 = 1.0f;
}
- _19363 = _12501;
- }
- else
- {
- _19363 = 1.0f;
- }
- float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m16) + PerViewLightingConstantBufferGpu_t_1_m15));
- float _12502;
- if (_24465.y)
- {
- _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);
+ float _13279 = lerp(_19363, 1.0f, saturate((distance(_10061.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m16) + PerViewLightingConstantBufferGpu_t_1_m15));
+ float _12502;
+ if (_24465.y)
+ {
+ _12502 = min(_13279, g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t_1_m6].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearClamp], (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);
+ }
+ else
+ {
+ _12502 = _13279;
+ }
+ _12503 = _12502;
}
else
{
- _12502 = _13279;
+ _12503 = 1.0f;
}
- _21711 = _12502;
+ _12320 = _12503;
}
else
{
- _21711 = 1.0f;
+ _12320 = 1.0f;
}
- float3 _21712;
+ float3 _21711;
[branch]
- if ((dot(PerViewLightingConstantBufferGpu_t_1_m8.xyz, _24735) * _21711) > 0.0f)
+ if ((_8634 * _12320) > 0.0f)
{
- _21712 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (max(0.0f, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t_1_m8.xyz)).xxx.xyz * (PerViewLightingConstantBufferGpu_t_1_m9.xyz * _21711).xyz);
+ _21711 = PerViewLightingConstantBufferGpu_t_1_m4.xyz + (max(0.0f, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t_1_m8.xyz)).xxx.xyz * (PerViewLightingConstantBufferGpu_t_1_m9.xyz * _12320).xyz);
}
else
{
- _21712 = PerViewLightingConstantBufferGpu_t_1_m4.xyz;
+ _21711 = PerViewLightingConstantBufferGpu_t_1_m4.xyz;
}
bool4 _24466 = bool4(PerViewConstantBufferCsgo_t_1_m1.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m1.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m1.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m1.w != int4(0, 0, 0, 0).w);
bool _20060 = _24466.x;
@@ -869,7 +880,7 @@ PS
uint _10838 = PerViewLightingConstantBufferGpu_t_1_m5.y + (((_12083.y * PerViewLightingConstantBufferGpu_t_1_m6.y) + _12083.x) * PerViewLightingConstantBufferGpu_t_1_m5.z);
uint _23393 = PerViewLightingConstantBufferGpu_t_1_m5.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t_1_m7.x, 0.0f, PerViewLightingConstantBufferGpu_t_1_m7.y)) * PerViewLightingConstantBufferGpu_t_1_m5.z);
float3 _13155;
- _13155 = _21712;
+ _13155 = _21711;
uint _21567;
float3 _13156;
uint _16208 = 0u;
@@ -882,7 +893,7 @@ PS
uint _14475 = WaveActiveBitOr(g_CullBits.Load<uint>((_10838 + _16208) * 4 + 0) & g_CullBits.Load<uint>((_23393 + _16208) * 4 + 0));
_13156 = _13155;
uint _20344;
- float3 _12504;
+ float3 _12505;
uint _16209 = _14475;
for (;;)
{
@@ -925,7 +936,7 @@ PS
}
if (_12887)
{
- _12504 = _13156;
+ _12505 = _13156;
break;
}
float _23571 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;
@@ -1035,7 +1046,7 @@ PS
}
else
{
- float3 _12503;
+ float3 _12504;
if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)
{
float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);
@@ -1051,7 +1062,7 @@ PS
float3 _20491 = _14081;
_20491.x = _20564.x;
_20491.y = _20564.y;
- _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20491.xyz, 0.0f).xyz;
+ _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sTrilinearWrap], _20491.xyz, 0.0f).xyz;
}
else
{
@@ -1060,13 +1071,13 @@ PS
float3 _20490 = _13791;
_20490.x = _20563.x;
_20490.y = _20563.y;
- _12503 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20490.xyz, 0.0f).xyz;
+ _12504 = _17828.xyz * g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t_1_m20].SampleLevel(g_bindless_Sampler[_Globals_1_g_sCookieSampler], _20490.xyz, 0.0f).xyz;
}
- _21548 = _12503;
+ _21548 = _12504;
}
if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))
{
- _12504 = _13156;
+ _12505 = _13156;
break;
}
float3 _19630;
@@ -1089,7 +1100,7 @@ PS
float3 _16449 = _20482.xyz;
if (all(bool3(_16449.x == 0.0f.xxx.x, _16449.y == 0.0f.xxx.y, _16449.z == 0.0f.xxx.z)))
{
- _12504 = _13156;
+ _12505 = _13156;
break;
}
_19630 = _20482;
@@ -1098,10 +1109,10 @@ PS
{
_19630 = _21548;
}
- _12504 = _13156.xyz + (max(0.0f, dot(_14786.xyz, _11179.xyz)).xxx.xyz * _19630.xyz);
+ _12505 = _13156.xyz + (max(0.0f, dot(_14786.xyz, _11179.xyz)).xxx.xyz * _19630.xyz);
break;
} while(false);
- _13156 = _12504;
+ _13156 = _12505;
_16209 = _20344;
continue;
}
@@ -1712,12 +1723,12 @@ RTX
vec4 _509 = vec4(g_MaterialData_1._member0[(_471 + 288u) / 4u], g_MaterialData_1._member0[(_471 + 292u) / 4u], g_MaterialData_1._member0[(_471 + 296u) / 4u], g_MaterialData_1._member0[(_471 + 300u) / 4u]);
bool _508 = g_MaterialData_3._member0[(_471 + 308u) / 4u] != 0;
bool _507 = g_MaterialData_3._member0[(_471 + 312u) / 4u] != 0;
- uint _506 = g_MaterialData_5._member0[(_471 + 348u) / 4u];
- uint _505 = g_MaterialData_5._member0[(_471 + 352u) / 4u];
- uint _504 = g_MaterialData_5._member0[(_471 + 356u) / 4u];
- uint _503 = g_MaterialData_5._member0[(_471 + 360u) / 4u];
- uint _502 = g_MaterialData_5._member0[(_471 + 380u) / 4u];
- float _501 = g_MaterialData_1._member0[(_471 + 384u) / 4u];
+ uint _506 = g_MaterialData_5._member0[(_471 + 352u) / 4u];
+ uint _505 = g_MaterialData_5._member0[(_471 + 356u) / 4u];
+ uint _504 = g_MaterialData_5._member0[(_471 + 360u) / 4u];
+ uint _503 = g_MaterialData_5._member0[(_471 + 364u) / 4u];
+ uint _502 = g_MaterialData_5._member0[(_471 + 384u) / 4u];
+ float _501 = g_MaterialData_1._member0[(_471 + 388u) / 4u];
uvec3 _601;
do
{
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_water.slang
modified • +4 / -4 • changes: 8
Show patch
@@ -344,7 +344,7 @@ PS
Texture2D g_tSceneDepth < Attribute("FramebufferDepthTexture"); SrgbRead(false); >;
Texture2D g_tShadowDepthBufferDepth < Attribute("ShadowDepthBuffer"); SrgbRead(false); >;
Texture2D g_tSsao < Attribute("SSAOOcclusionFactor"); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float2 g_vRoughness < UiType(VectorText); Expression(max(.01,1-g_flGlossiness).x); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
@@ -392,7 +392,7 @@ PS
// Specular
float g_flReflectionPower < Default(1); Range(0.01, 10); UiType(Slider); UiGroup("Specular"); >;
float3 g_vReflectionColor < Default3(1, 1, 1); UiType(Color); UiGroup("Specular"); Expression(SrgbGammaToLinear(this)); >;
- float3 g_vReflectionDir < Default(0); Range3(-1, -1, -1, 1, 1, 1); UiType(VectorText); UiGroup("Specular"); >;
+ float3 g_vReflectionDir < Default3(0, 0, 1); Range3(-1, -1, -1, 1, 1, 1); UiType(VectorText); UiGroup("Specular"); >;
// Refractions
float g_flRefractionAmount < Default(1); UiType(Slider); UiGroup("Refractions"); >;
@@ -503,9 +503,9 @@ PS
uint _m0[];
} g_CullBits_1;
- layout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;
+ layout(set = 1, binding = 19) uniform sampler g_sTrilinearClamp;
layout(set = 1, binding = 53) uniform texture2D g_tNormal;
- layout(set = 1, binding = 27) uniform sampler DefaultSamplerState_0;
+ layout(set = 1, binding = 28) uniform sampler DefaultSamplerState_0;
layout(set = 1, binding = 55) uniform texture2D g_tSceneDepth;
layout(set = 1, binding = 14) uniform sampler AddressU_Clamp_AddressV_Clamp_Filter_MinMagMipPoint;
layout(set = 1, binding = 41) uniform textureCubeArray g_tFallbackCubemap;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_water_fancy.slang
modified • +116 / -105 • changes: 221
Show patch
@@ -324,7 +324,7 @@ PS
Texture2D g_tWaterEffectsMap < Attribute("WaterEffectsTexture"); SrgbRead(false); >;
Texture2D g_tWavesNormalHeight < Channel(RG, Box(TextureWavesNormal), Linear); Channel(B, Box(TextureWavesHeight), Linear); OutputFormat(BC7); SrgbRead(false); >;
Texture2D g_tZerothMoment < Attribute("zeroth_moment"); SrgbRead(true); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float2 g_vRoughness < UiType(VectorText); Expression(max(.01,1-g_flGlossiness).x); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
float4 g_vViewportExtentsTs < Attribute("ViewportExtents"); UiType(VectorText); >;
@@ -646,18 +646,18 @@ PS
layout(set = 1, binding = 59) uniform texture2D g_tZerothMoment;
layout(set = 1, binding = 30) uniform texture2D g_tBlueNoise;
layout(set = 1, binding = 56) uniform texture2D g_tWavesNormalHeight;
- layout(set = 1, binding = 28) uniform sampler DefaultSamplerState_0;
+ layout(set = 1, binding = 29) uniform sampler DefaultSamplerState_0;
layout(set = 1, binding = 55) uniform texture2D g_tFoam;
- layout(set = 1, binding = 19) uniform sampler g_sUserConfig;
+ layout(set = 1, binding = 20) uniform sampler g_sUserConfig;
layout(set = 1, binding = 53) uniform texture2D g_tDebris;
- layout(set = 1, binding = 27) uniform sampler DefaultSamplerState_0_1;
+ layout(set = 1, binding = 28) uniform sampler DefaultSamplerState_0_1;
layout(set = 1, binding = 54) uniform texture2D g_tDebrisNormal;
- layout(set = 1, binding = 22) uniform sampler g_sCookieSampler;
- layout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
+ layout(set = 1, binding = 23) uniform sampler g_sCookieSampler;
+ layout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
layout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;
layout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;
- layout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;
- layout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;
+ layout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;
+ layout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;
layout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;
layout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;
layout(set = 1, binding = 60) uniform texture2D g_tMoitFinal;
@@ -863,7 +863,7 @@ PS
float _21881 = _20669.z;
float _12091 = _19338.z;
float _13724 = _19777.x;
- float _4812 = max(_12091, _21881) + (sin(_13724) * 0.125);
+ float _20633 = saturate(max(_12091, _21881) + (sin(_13724) * 0.125));
float _16487 = saturate(_13154 * (1.0 + (_11187 * 0.480000019073486328125)));
float _8031 = pow(_13151.z, 1.5);
vec2 _17162 = ((((_13940 / vec2(_Globals_.g_flDebrisScale)) + ((_9431 * _Globals_.g_flDebrisWobble) * (1.0 - _7010))) + ((_5201.xy * ((1.0 + ((sin(_13151.z * 50.0) * 4.0) * saturate(0.100000001490116119384765625 - _8031))) * _8031)) * 0.100000001490116119384765625)) + ((_3085 * (0.100000001490116119384765625 + _13151.z)) * 0.0199999995529651641845703125)).xy;
@@ -880,7 +880,7 @@ PS
vec3 _8674;
_8674.x = _11003.x;
_8674.y = _11003.y;
- float _12904 = saturate((((_16487 * _4812) * 0.25) + (saturate(_16487 - (1.0 - _4812)) * 0.75)) - _4500);
+ float _12904 = saturate((((_16487 * _20633) * 0.25) + (saturate(_16487 - (1.0 - _20633)) * 0.75)) - _4500);
float _11140 = mix(_15224, (_11187 * 30.0) + _3542, _4500);
bool _10979 = !_20058;
vec3 _10932;
@@ -949,101 +949,111 @@ PS
float _3039 = (saturate((1.0 - _6806) + _19396) * saturate(1.0 - (_12904 * 4.0))) * (1.0 - _9206);
vec3 _13711 = input_2.xyz + (((-_11306) * (vec3(_11140 * (-1.0)) + (((mix(_19777.xxx, vec3(_19777.xy, 0.0), vec3(0.100000001490116119384765625)) * 90.0) * pow(_3039, 2.0)) + vec3(_Globals_.g_flWaterPlaneOffset)))) * mix(1.0, _6655 * 2.0, 0.75));
vec4 _23875 = vec4(_9982.xyz, 1.0);
- vec3 _6606 = _13711.xyz;
- float _25086;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m5.xyz, _9982.xyz);
+ float _24801;
SPIRV_CROSS_BRANCH
- if (PerViewLightingConstantBufferGpu_t._m7 != 0)
+ if (_8634 > 0.0)
{
- int _23989;
- int _10191;
- float _13139;
- vec3 _14975;
- int _13039 = 0;
- for (;;)
+ float _12504;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m7 != 0)
{
- if (!(_13039 < PerViewLightingConstantBufferGpu_t._m7))
- {
- _13139 = 1.0;
- _14975 = vec3(0.0);
- _10191 = -1;
- break;
- }
- vec4 _18322 = vec4(_13711.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_13039];
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m9[_13039])
+ int _23989;
+ int _10191;
+ float _13139;
+ vec3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- vec3 _19470 = vec3(_12779, _18322.yz);
- vec2 _24805 = _19470.xy;
- vec2 _22193 = vec2(1.0) - saturate((abs(_24805) * vec2(PerViewLightingConstantBufferGpu_t._m11)) + vec2(PerViewLightingConstantBufferGpu_t._m10));
- vec2 _20561 = (_24805 * PerViewLightingConstantBufferGpu_t._m15._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_13039].xy;
- vec3 _20491 = _19470;
- _20491.x = _20561.x;
- _20491.y = _20561.y;
- _13139 = saturate(_22193.x * _22193.y);
- _14975 = _20491;
- _10191 = _13039;
- break;
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t._m7))
+ {
+ _13139 = 1.0;
+ _14975 = vec3(0.0);
+ _10191 = -1;
+ break;
+ }
+ vec4 _18322 = vec4(_13711.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_13039];
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m9[_13039])
+ {
+ vec3 _19470 = vec3(_12779, _18322.yz);
+ vec2 _24805 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24805) * vec2(PerViewLightingConstantBufferGpu_t._m11)) + vec2(PerViewLightingConstantBufferGpu_t._m10));
+ vec2 _20561 = (_24805 * PerViewLightingConstantBufferGpu_t._m15._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_13039].xy;
+ vec3 _20491 = _19470;
+ _20491.x = _20561.x;
+ _20491.y = _20561.y;
+ _13139 = saturate(_22193.x * _22193.y);
+ _14975 = _20491;
+ _10191 = _13039;
+ break;
+ }
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
}
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _7258;
- if (_10191 >= 0)
- {
- float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);
- float _12501;
- SPIRV_CROSS_BRANCH
- if (_13139 < 1.0)
+ float _7258;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t._m7 - 1))
+ float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);
+ float _12501;
+ SPIRV_CROSS_BRANCH
+ if (_13139 < 1.0)
{
- int _15335 = _10191 + 1;
- vec4 _19672 = vec4(_13711.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_15335];
- vec2 _20562 = (_19672.xy * PerViewLightingConstantBufferGpu_t._m15._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_15335].xy;
- vec3 _20492;
- _20492.x = _20562.x;
- _20492.y = _20562.y;
- _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20492.xy, saturate(_19672.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m7 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19672 = vec4(_13711.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m14._m0[_15335];
+ vec2 _20562 = (_19672.xy * PerViewLightingConstantBufferGpu_t._m15._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m15._m0[_15335].xy;
+ vec3 _20492;
+ _20492.x = _20562.x;
+ _20492.y = _20562.y;
+ _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20492.xy, saturate(_19672.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0);
+ }
+ else
+ {
+ _7934 = 1.0;
+ }
+ _12501 = mix(_7934, _18270, _13139);
}
else
{
- _7934 = 1.0;
+ _12501 = _18270;
}
- _12501 = mix(_7934, _18270, _13139);
+ _7258 = _12501;
}
else
{
- _12501 = _18270;
+ _7258 = 1.0;
}
- _7258 = _12501;
- }
- else
- {
- _7258 = 1.0;
- }
- float _15295 = mix(_7258, 1.0, saturate((distance(_24633.xyz, PerViewConstantBuffer_t._m5) * PerViewLightingConstantBufferGpu_t._m13) + PerViewLightingConstantBufferGpu_t._m12));
- float _12503;
- if (notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0)).y)
- {
- _12503 = min(_15295, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_21640.xy * PerViewConstantBuffer_t._m4.xy).xy, 0.0).z);
+ float _15295 = mix(_7258, 1.0, saturate((distance(_24633.xyz, PerViewConstantBuffer_t._m5) * PerViewLightingConstantBufferGpu_t._m13) + PerViewLightingConstantBufferGpu_t._m12));
+ float _12503;
+ if (notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0)).y)
+ {
+ _12503 = min(_15295, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_21640.xy * PerViewConstantBuffer_t._m4.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12503 = _15295;
+ }
+ _12504 = _12503;
}
else
{
- _12503 = _15295;
+ _12504 = 1.0;
}
- _25086 = _12503;
+ _24801 = _12504;
}
else
{
- _25086 = 1.0;
+ _24801 = 1.0;
}
- float _12256 = mix(_25086, 1.0, _3039 * 0.5);
+ float _15858 = mix(_24801, 1.0, _3039 * 0.5);
vec3 _21709;
- if ((dot(PerViewLightingConstantBufferGpu_t._m5.xyz, _9982.xyz) * _12256) > 0.0)
+ if ((_8634 * _15858) > 0.0)
{
- _21709 = PerViewLightingConstantBufferGpu_t._m1.xyz + (vec3(max(0.0, dot(_9982.xyz, PerViewLightingConstantBufferGpu_t._m5.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m6.xyz * _12256).xyz);
+ _21709 = PerViewLightingConstantBufferGpu_t._m1.xyz + (vec3(max(0.0, dot(_9982.xyz, PerViewLightingConstantBufferGpu_t._m5.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m6.xyz * _15858).xyz);
}
else
{
@@ -1084,7 +1094,7 @@ PS
uint _14476 = subgroupOr(g_CullBits_1._m0[_10838 + _16208] & g_CullBits_1._m0[_23393 + _16208]);
_13156 = _13155;
uint _20344;
- vec3 _12505;
+ vec3 _12506;
uint _16209 = _14476;
for (;;)
{
@@ -1096,6 +1106,7 @@ PS
_20344 = _16209 & (_16209 - 1u);
do
{
+ vec3 _14644 = _13711.xyz;
vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(_13711.xyz, 1.0);
vec3 _10521 = _24893.xyz / vec3(_24893.w);
vec4 _22905;
@@ -1120,11 +1131,11 @@ PS
}
else
{
- _12886 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(_6606, 1.0)).xyz), vec3(1.0)));
+ _12886 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(_14644, 1.0)).xyz), vec3(1.0)));
}
if (_12886)
{
- _12505 = _13156;
+ _12506 = _13156;
break;
}
float _23571 = 2.0 * g_BarnLights_1._m0[_12608]._m5.y;
@@ -1156,7 +1167,7 @@ PS
float _11633;
if (g_BarnLights_1._m0[_12608]._m2.w != 0.0)
{
- vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - _6606;
+ vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - _14644;
float _18345 = dot(_10017, _10017);
float _17648 = sqrt(_18345);
vec3 _12302 = _10017 - _16268;
@@ -1234,7 +1245,7 @@ PS
}
else
{
- vec3 _12504;
+ vec3 _12505;
if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)
{
vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);
@@ -1250,7 +1261,7 @@ PS
vec3 _20494 = _14081;
_20494.x = _20564.x;
_20494.y = _20564.y;
- _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20494.xyz, 0.0).xyz;
+ _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20494.xyz, 0.0).xyz;
}
else
{
@@ -1259,13 +1270,13 @@ PS
vec3 _20493 = _13791;
_20493.x = _20563.x;
_20493.y = _20563.y;
- _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20493.xyz, 0.0).xyz;
+ _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20493.xyz, 0.0).xyz;
}
- _21548 = _12504;
+ _21548 = _12505;
}
if (all(equal(_21548.xyz, vec3(0.0))))
{
- _12505 = _13156;
+ _12506 = _13156;
break;
}
vec3 _19630;
@@ -1287,7 +1298,7 @@ PS
vec3 _20482 = _21548.xyz * mix(1.0, textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy, saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m8)), 0.0), g_BarnLights_1._m0[_12608]._m12);
if (all(equal(_20482.xyz, vec3(0.0))))
{
- _12505 = _13156;
+ _12506 = _13156;
break;
}
_19630 = _20482;
@@ -1296,10 +1307,10 @@ PS
{
_19630 = _21548;
}
- _12505 = _13156.xyz + (vec3(max(0.0, dot(_9982.xyz, _11179.xyz))).xyz * _19630.xyz);
+ _12506 = _13156.xyz + (vec3(max(0.0, dot(_9982.xyz, _11179.xyz))).xyz * _19630.xyz);
break;
} while(false);
- _13156 = _12505;
+ _13156 = _12506;
_16209 = _20344;
continue;
}
@@ -1340,43 +1351,43 @@ PS
}
else
{
- vec3 _12510;
+ vec3 _12511;
if (_17518 == 1.0)
{
- _12510 = vec3(_9493, 0.75, 0.0);
+ _12511 = vec3(_9493, 0.75, 0.0);
}
else
{
- vec3 _12509;
+ vec3 _12510;
if (_17518 == 2.0)
{
- _12509 = vec3(0.0, 0.75, _14751);
+ _12510 = vec3(0.0, 0.75, _14751);
}
else
{
- vec3 _12508;
+ vec3 _12509;
if (_17518 == 3.0)
{
- _12508 = vec3(0.0, _9493, 0.75);
+ _12509 = vec3(0.0, _9493, 0.75);
}
else
{
- vec3 _12506;
+ vec3 _12508;
if (_17518 == 4.0)
{
- _12506 = vec3(_14751, 0.0, 0.75);
+ _12508 = vec3(_14751, 0.0, 0.75);
}
else
{
- _12506 = vec3(0.75, 0.0, _9493);
+ _12508 = vec3(0.75, 0.0, _9493);
}
- _12508 = _12506;
+ _12509 = _12508;
}
- _12509 = _12508;
+ _12510 = _12509;
}
- _12510 = _12509;
+ _12511 = _12510;
}
- _21710 = _12510;
+ _21710 = _12511;
}
_17843.x = _20158.x;
_17843.y = _20158.y;
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_weapon.slang
modified • +581 / -355 • changes: 936
Show patch
@@ -76,8 +76,8 @@ struct VS_INPUT
{
float4 vBlendIndices : BLENDINDICES0 < Semantic( BlendIndices ); >; // D_CS_VERTEX_ANIMATION=0, S_MODE_TOOLS_VIS=1
float4 vPerVertexLighting : COLOR1 < Semantic( PerVertexLighting ); >; // D_BAKED_LIGHTING_FROM_VERTEX_STREAM=1
- uint4 nPackedFrame : NORMAL0 < Semantic( CompressedTangentFrame ); >;
- float4 vNormalOs : NORMAL0 < Semantic( Normal ); >;
+ uint4 nPackedFrame : NORMAL0 < Semantic( CompressedTangentFrame ); >; // D_COMPRESSED_NORMALS_AND_TANGENTS=1
+ float4 vNormalOs : NORMAL0 < Semantic( Normal ); >; // D_COMPRESSED_NORMALS_AND_TANGENTS=0
float3 vPositionOs : POSITION0 < Semantic( PosXyz ); >;
float4 vTangentUOs_flTangentVSign : TANGENT0 < Semantic( TangentU_SignV ); >;
float2 vLightmapUV : TEXCOORD3 < Semantic( LightmapUV ); >; // D_BAKED_LIGHTING_FROM_LIGHTMAP=1
@@ -242,11 +242,12 @@ VS
layout(location = 0) out vec3 output_0;
layout(location = 1) out vec3 output_1;
layout(location = 2) out vec3 output_2;
- layout(location = 3) out vec4 output_3;
- layout(location = 4) centroid out vec4 output_4;
- layout(location = 5) centroid out vec3 output_5;
- layout(location = 6) out vec4 output_6;
- layout(location = 7) flat out uint output_7;
+ layout(location = 3) out vec3 output_3;
+ layout(location = 4) out vec4 output_4;
+ layout(location = 5) centroid out vec4 output_5;
+ layout(location = 6) centroid out vec3 output_6;
+ layout(location = 7) out vec4 output_7;
+ layout(location = 8) flat out uint output_8;
void main()
{
@@ -357,13 +358,14 @@ VS
vec4 _10630 = _22186;
_10630.z = _22186.z + _Globals_.g_flZBias;
output_0 = vPositionOs;
- output_1 = _10020.xyz - PerViewConstantBufferCsgo_t._m0.xyz;
- output_2 = _11179;
- output_3 = vec4(_13593.xy + (_Globals_.g_vTexCoordScrollSpeed.xy * PerViewConstantBuffer_t._m1), vTexCoord2);
- output_4 = _23714;
- output_5 = _11179;
- output_6 = vec4(normalize(vec4(vTangentUOs_flTangentVSign.xyz, 0.0) * g_transformBuffer_1._m0[_21785]._m0), vTangentUOs_flTangentVSign.w);
- output_7 = g_instanceBuffer_1._m0[nInstanceIdx]._m5 & 65535u;
+ output_1 = vNormalOs;
+ output_2 = _10020.xyz - PerViewConstantBufferCsgo_t._m0.xyz;
+ output_3 = _11179;
+ output_4 = vec4(_13593.xy + (_Globals_.g_vTexCoordScrollSpeed.xy * PerViewConstantBuffer_t._m1), vTexCoord2);
+ output_5 = _23714;
+ output_6 = _11179;
+ output_7 = vec4(normalize(vec4(vTangentUOs_flTangentVSign.xyz, 0.0) * g_transformBuffer_1._m0[_21785]._m0), vTangentUOs_flTangentVSign.w);
+ output_8 = g_instanceBuffer_1._m0[nInstanceIdx]._m5 & 65535u;
_10630.y = -_22186.y;
gl_Position = _10630;
}
@@ -497,7 +499,9 @@ PS
Texture2D g_tTintMask < Channel(R, Box(TextureTintMask), Linear); OutputFormat(ATI1N); SrgbRead(false); >;
float3 g_vAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.045,.4,1.15).x,-1.4427*log(max(.0001,1-float3(-.045,.4,1.15).y)),2-float3(-.045,.4,1.15).z)); >;
float3 g_vDarkMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.1,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.1,.4,1.08).y)),2-float3(-.1,.4,1.08).z)); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float4 g_vFrostHeatPosOsAndAmount < Attribute("FrostHeatPosOsAndAmount"); UiType(VectorText); >;
+ float4 g_vFrostState < Attribute("FrostState"); UiType(VectorText); >;
float3 g_vHoloAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.05,.35,1.15).x,-1.4427*log(max(.0001,1-float3(-.05,.35,1.15).y)),2-float3(-.05,.35,1.15).z)); >;
float4 g_vInvTextureDim < Source(InvTextureDim); SourceArg(g_tBGRefract) UiType(VectorText); >;
float4 g_vKeychainGhostHandData < Attribute("KeychainGhostHandData"); UiType(VectorText); >;
@@ -700,7 +704,7 @@ PS
float g_flIridescentStrength < Default(0.75); UiType(Slider); UiGroup("Lighting/SFX/Iridescence"); UiVisibility(F_IRIDESCENCE==1); >;
float g_flPearlescentScale < Range(-120, 120); UiType(Slider); UiGroup("Lighting/SFX/Perlescence/10"); UiVisibility(F_IRIDESCENCE==1); >;
float g_flMetalnessTransitionBias < Default(2); Range(0.001, 3); UiType(Slider); UiGroup("Lighting,30/Metalness,50/10"); >;
- float2 g_vMetalnessRemapRange < Default(0); UiType(VectorText); UiGroup("Lighting,30/Metalness,40/10"); >;
+ float2 g_vMetalnessRemapRange < Default2(0, 1); UiType(VectorText); UiGroup("Lighting,30/Metalness,40/10"); >;
CreateInputTexture2D(TextureMetalness1, Linear, 8, "", "_metal", "Lighting,30/Metalness,30/11", Default4(0, 0, 0, 0));
CreateInputTexture2D(TextureRoughness1, Linear, 8, "Inverse", "_rough", "Lighting,30/Roughness,20/11", Default4(0.5, 0.5, 0.5, 0));
float g_fTextureRoughnessContrast < Default(1); Range(0, 4); UiType(Slider); UiGroup("Lighting/Roughness/11"); >;
@@ -755,7 +759,7 @@ PS
Texture2D g_tMetalness < Channel(R, BoxInverse(TextureRoughness1), Linear); Channel(G, Box(TextureMetalness1), Linear); Channel(B, Box(TextureSfxMask1), Linear); OutputFormat(BC7); SrgbRead(false); >;
// SPIR-V reflection failed for backend HLSL:
- // cbuffer ID 5618 (name: _Globals_), member index 26 (name: g_cInvulnerabilityColor) cannot be expressed with either HLSL packing layout or packoffset.
+ // cbuffer ID 5618 (name: _Globals_), member index 21 (name: g_vFrostState) cannot be expressed with either HLSL packing layout or packoffset.
//
// Re-attempting reflection with the GLSL backend.
@@ -775,16 +779,16 @@ PS
#define SPIRV_CROSS_UNROLL
#define SPIRV_CROSS_LOOP
#endif
- #extension GL_KHR_shader_subgroup_arithmetic : require
#extension GL_EXT_samplerless_texture_functions : require
+ #extension GL_KHR_shader_subgroup_arithmetic : require
layout(early_fragment_tests) in;
- struct _1373
+ struct _953
{
vec4 _m0[3];
};
- struct _992
+ struct _2184
{
vec4 _m0[4];
};
@@ -801,12 +805,12 @@ PS
vec4 _m7;
};
- struct _920
+ struct _576
{
_1753 _m0[128];
};
- struct _1056
+ struct _743
{
mat4 _m0[4];
};
@@ -842,7 +846,7 @@ PS
vec4 _4;
vec3 _5;
- struct _856
+ struct _1975
{
float g_flFogModificationAmount;
uint g_tColor;
@@ -865,6 +869,8 @@ PS
float g_flMetalnessTransitionBias;
float g_flRainExposureToSkyWetness;
float g_flRainExposureLocalTimer;
+ vec4 g_vFrostState;
+ vec4 g_vFrostHeatPosOsAndAmount;
int bIridescence;
float g_flIridescentScale;
float g_flIridescentStrength;
@@ -875,9 +881,9 @@ PS
float g_flPearlescentScale;
};
- layout(set = 1) uniform _856 _Globals_;
+ layout(set = 1) uniform _1975 _Globals_;
- struct _2595
+ struct _254
{
ivec4 _m0;
ivec4 _m1;
@@ -891,52 +897,55 @@ PS
uint _m9;
uint _m10;
uint _m11;
- float _m12;
+ uint _m12;
float _m13;
- ivec2 _m14;
- mat4 _m15;
- vec2 _m16;
- float _m17;
- vec4 _m18;
+ float _m14;
+ ivec2 _m15;
+ mat4 _m16;
+ vec2 _m17;
+ float _m18;
vec4 _m19;
vec4 _m20;
vec4 _m21;
vec4 _m22;
vec4 _m23;
- mat4 _m24;
- vec4 _m25;
+ vec4 _m24;
+ mat4 _m25;
vec4 _m26;
vec4 _m27;
- float _m28;
+ vec4 _m28;
float _m29;
- vec4 _m30;
+ float _m30;
+ float _m31;
+ vec4 _m32;
};
- layout(set = 1) uniform _2595 PerViewConstantBufferCsgo_t;
+ layout(set = 1) uniform _254 PerViewConstantBufferCsgo_t;
- struct _1616
+ struct _1732
{
float _m0;
- vec2 _m1;
+ float _m1;
vec2 _m2;
- vec4 _m3;
- float _m4;
- vec4 _m5;
- vec3 _m6;
+ vec2 _m3;
+ vec4 _m4;
+ float _m5;
+ vec4 _m6;
vec3 _m7;
+ vec3 _m8;
};
- layout(set = 1) uniform _1616 PerViewConstantBuffer_t;
+ layout(set = 1) uniform _1732 PerViewConstantBuffer_t;
- struct _790
+ struct _2375
{
vec4 _m0;
vec4 _m1;
vec4 _m2;
vec4 _m3;
vec4 _m4;
- _1373 _m5;
- _992 _m6;
+ _953 _m5;
+ _2184 _m6;
vec4 _m7;
vec4 _m8;
vec4 _m9;
@@ -945,7 +954,7 @@ PS
uvec4 _m12;
vec4 _m13;
vec4 _m14;
- _920 _m15;
+ _576 _m15;
vec4 _m16;
vec4 _m17;
int _m18;
@@ -955,13 +964,13 @@ PS
float _m22;
float _m23;
float _m24;
- _1056 _m25;
- _992 _m26;
+ _743 _m25;
+ _2184 _m26;
uint _m27;
uint _m28;
};
- layout(set = 3) uniform _790 PerViewLightingConstantBufferGpu_t;
+ layout(set = 3) uniform _2375 PerViewLightingConstantBufferGpu_t;
layout(set = 3, binding = 30, std430) readonly buffer g_CullBits
{
@@ -984,17 +993,30 @@ PS
layout(location = 0) in vec3 input_0;
layout(location = 1) in vec3 input_1;
layout(location = 2) in vec3 input_2;
- layout(location = 3) in vec4 input_3;
- layout(location = 4) centroid in vec4 input_4;
- layout(location = 5) centroid in vec3 input_5;
- layout(location = 6) in vec4 input_6;
+ layout(location = 3) in vec3 input_3;
+ layout(location = 4) in vec4 input_4;
+ layout(location = 5) centroid in vec4 input_5;
+ layout(location = 6) centroid in vec3 input_6;
+ layout(location = 7) in vec4 input_7;
layout(location = 0) out vec4 output_0;
void main()
{
vec4 _11408 = gl_FragCoord;
_11408.w = 1.0 / _11408.w;
- float _12497 = _Globals_.g_flRainExposureToSkyWetness * PerViewConstantBufferCsgo_t._m13;
+ float _11313;
+ if (PerViewConstantBufferCsgo_t._m31 > 1.9900000095367431640625)
+ {
+ _11313 = step(0.5, fract(PerViewConstantBuffer_t._m0 * 0.5));
+ }
+ else
+ {
+ _11313 = (PerViewConstantBufferCsgo_t._m31 > 0.9900000095367431640625) ? 0.0 : 1.0;
+ }
+ float _23147 = _Globals_.g_vFrostState.x * _11313;
+ float _21267 = _Globals_.g_vFrostState.y * _11313;
+ float _13654 = _Globals_.g_vFrostState.z * _11313;
+ float _12497 = _Globals_.g_flRainExposureToSkyWetness * PerViewConstantBufferCsgo_t._m14;
bool _15436 = _12497 > 0.0;
float _13136;
vec2 _13998;
@@ -1003,10 +1025,10 @@ PS
vec4 _23261;
if (_15436)
{
- vec3 _10413 = input_1 + PerViewConstantBufferCsgo_t._m27.xyz;
- vec2 _18197 = input_3.xy * 2.5;
+ vec3 _10413 = input_2 + PerViewConstantBufferCsgo_t._m28.xyz;
+ vec2 _18197 = input_4.xy * 2.5;
vec2 _20826;
- if ((length(cross(vec3(dFdx(input_3.xy), 0.0), vec3(dFdy(input_3.xy), 0.0))) / max(9.9999997473787516355514526367188e-05, length(cross(dFdx(_10413), dFdy(_10413))))) < 0.00200000009499490261077880859375)
+ if ((length(cross(vec3(dFdx(input_4.xy), 0.0), vec3(dFdy(input_4.xy), 0.0))) / max(9.9999997473787516355514526367188e-05, length(cross(dFdx(_10413), dFdy(_10413))))) < 0.00200000009499490261077880859375)
{
_20826 = _18197 * 3.0;
}
@@ -1019,8 +1041,8 @@ PS
_8562.y = -_8562.y;
float _7729 = _20877.w;
float _12471 = _20877.z + (input_0.x * 0.00999999977648258209228515625);
- float _10538 = saturate((((_12497 * 0.25) - fract(_12471 + (((_Globals_.g_flRainExposureLocalTimer * 0.100000001490116119384765625) * PerViewConstantBufferCsgo_t._m12) * PerViewConstantBufferCsgo_t._m12))) * 5.0) / (PerViewConstantBufferCsgo_t._m13 + 0.001000000047497451305389404296875)) * saturate((input_2.z + 0.75) * 4.0);
- vec2 _13861 = input_3.xy + (((_8562.xy * (-0.0199999995529651641845703125)) * _10538) * _7729);
+ float _10538 = saturate((((_12497 * 0.25) - fract(_12471 + (((_Globals_.g_flRainExposureLocalTimer * 0.100000001490116119384765625) * PerViewConstantBufferCsgo_t._m13) * PerViewConstantBufferCsgo_t._m13))) * 5.0) / (PerViewConstantBufferCsgo_t._m14 + 0.001000000047497451305389404296875)) * saturate((input_3.z + 0.75) * 4.0);
+ vec2 _13861 = input_4.xy + (((_8562.xy * (-0.0199999995529651641845703125)) * _10538) * _7729);
vec4 _20488;
_20488.x = _13861.x;
_20488.y = _13861.y;
@@ -1036,16 +1058,16 @@ PS
_16305 = 0.0;
_17114 = 0.0;
_13998 = vec2(0.0);
- _23261 = input_3;
+ _23261 = input_4;
}
vec3 _21709;
- if (dot(input_2.xyz, input_2.xyz) >= 1.0099999904632568359375)
+ if (dot(input_3.xyz, input_3.xyz) >= 1.0099999904632568359375)
{
- _21709 = input_5.xyz;
+ _21709 = input_6.xyz;
}
else
{
- _21709 = input_2.xyz;
+ _21709 = input_3.xyz;
}
bool _14874 = _Globals_.g_bRenderBackfaceNormals != 0;
bool _12885;
@@ -1068,9 +1090,9 @@ PS
_10251 = _21709;
}
vec3 _24347 = normalize(_10251);
- vec3 _10061 = input_1 + PerViewConstantBufferCsgo_t._m27.xyz;
+ vec3 _10061 = input_2 + PerViewConstantBufferCsgo_t._m28.xyz;
vec4 _19680 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tColor], g_bindless_Sampler[_Globals_.g_sUserConfigAllowGlobalMipBias]), _23261.xy);
- vec3 _21103 = _19680.xyz * input_4.xyz;
+ vec3 _21103 = _19680.xyz * input_5.xyz;
vec4 _19068 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tAmbientOcclusion], g_bindless_Sampler[_Globals_.g_sUserConfig]), vec2(_23261.xy).xy);
float _17476 = _19068.x;
vec4 _21760 = texture(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tMetalness], g_bindless_Sampler[_Globals_.g_sUserConfig]), _23261.xy);
@@ -1102,9 +1124,9 @@ PS
{
_24327 = false;
}
- vec3 _12631 = input_2.xyz * (_24327 ? (-1.0) : 1.0);
- float _23240 = (input_6.w > 0.0) ? 1.0 : (-1.0);
- vec3 _14435 = cross(_12631.xyz, input_6.xyz) * _23240;
+ vec3 _12631 = input_3.xyz * (_24327 ? (-1.0) : 1.0);
+ float _23240 = (input_7.w > 0.0) ? 1.0 : (-1.0);
+ vec3 _14435 = cross(_12631.xyz, input_7.xyz) * _23240;
bvec4 _24464 = notEqual(PerViewConstantBufferCsgo_t._m3, ivec4(0));
bool _20058 = _24464.w;
vec3 _7424;
@@ -1127,7 +1149,7 @@ PS
{
_20480 = _8418;
}
- vec3 _7054 = normalize((((input_6.xyz * _20480.x).xyz + (_7424.xyz * _20480.y)).xyz + (_12631.xyz * _20480.z)).xyz);
+ vec3 _7054 = normalize((((input_7.xyz * _20480.x).xyz + (_7424.xyz * _20480.y)).xyz + (_12631.xyz * _20480.z)).xyz);
vec3 _6616;
vec3 _13137;
float _13694;
@@ -1143,7 +1165,7 @@ PS
float _22907 = _18483 * _16305;
_13137 = mix(_21103, pow(_21103, vec3(1.60000002384185791015625)) * 0.60000002384185791015625, vec3(_23650));
_16306 = mix(_13746.xy, vec2(0.100000001490116119384765625), vec2(_17476 * saturate(((_22907 * 4.0) + ((((cos((_17114 + (_Globals_.g_flRainExposureLocalTimer * 0.20000000298023223876953125)) * 6.28318500518798828125) * 0.5) + 0.5) * _20709) * 0.20000000298023223876953125)) + (_12497 * 0.4000000059604644775390625))));
- _17115 = mix(normalize(mix(_24347, _7054, vec3(1.0 + (_23650 * 1.5)))), normalize((((input_6.xyz * _13998.x).xyz + (_7424.xyz * _13998.y)).xyz + (_24347.xyz * _8927)).xyz), vec3(_18483));
+ _17115 = mix(normalize(mix(_24347, _7054, vec3(1.0 + (_23650 * 1.5)))), normalize((((input_7.xyz * _13998.x).xyz + (_7424.xyz * _13998.y)).xyz + (_24347.xyz * _8927)).xyz), vec3(_18483));
_13694 = saturate(_22907 * 2.0);
_6616 = mix(_20480, vec3(_13998.xy, _8927) * vec3(-1.0, -1.0, 1.0), vec3(_18483 * 0.25));
}
@@ -1159,7 +1181,7 @@ PS
SPIRV_CROSS_BRANCH
if (_Globals_.g_flPearlescentScale != 0.0)
{
- float _21433 = (_Globals_.g_flPearlescentScale * (1.0 - dot(normalize(PerViewConstantBuffer_t._m6.xyz - _10061.xyz), _7054))) * _24590;
+ float _21433 = (_Globals_.g_flPearlescentScale * (1.0 - dot(normalize(PerViewConstantBuffer_t._m7.xyz - _10061.xyz), _7054))) * _24590;
float _15271 = cos(_21433);
float _12935;
do
@@ -1199,8 +1221,8 @@ PS
{
_24328 = false;
}
- vec3 _9739 = input_2.xyz * (_24328 ? (-1.0) : 1.0);
- vec3 _24682 = cross(_9739.xyz, input_6.xyz) * _23240;
+ vec3 _9739 = input_3.xyz * (_24328 ? (-1.0) : 1.0);
+ vec3 _24682 = cross(_9739.xyz, input_7.xyz) * _23240;
vec3 _7425;
if (_20058)
{
@@ -1221,13 +1243,15 @@ PS
{
_20481 = _7866;
}
- vec3 _14786 = normalize((((input_6.xyz * _20481.x).xyz + (_7425.xyz * _20481.y)).xyz + (_9739.xyz * _20481.z)).xyz);
+ vec3 _14786 = normalize((((input_7.xyz * _20481.x).xyz + (_7425.xyz * _20481.y)).xyz + (_9739.xyz * _20481.z)).xyz);
+ float _18787 = 1.0 - _20079;
+ vec3 _8219 = _20195.xyz * pow(_18787, _Globals_.g_flMetalnessTransitionBias);
vec3 _17328 = mix(vec3(0.0199999995529651641845703125), _20195.xyz, vec3(_20079));
- vec3 _22671;
+ vec3 _12904;
SPIRV_CROSS_BRANCH
if (_Globals_.bIridescence != 0)
{
- vec3 _24006 = normalize(PerViewConstantBuffer_t._m6.xyz - _10061.xyz);
+ vec3 _24006 = normalize(PerViewConstantBuffer_t._m7.xyz - _10061.xyz);
float _22128 = fract(((dot(_24006, _24347) + dot(_24006, PerViewLightingConstantBufferGpu_t._m16.xyz)) * _Globals_.g_flIridescentScale) + _Globals_.g_flIridescentHueShift) * 6.0;
float _17518 = floor(_22128);
float _18832 = _22128 - _17518;
@@ -1280,37 +1304,212 @@ PS
vec4 _22046 = vec4(_17328.xyz, 1.0);
float _24323 = dot(_22046.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125));
vec3 _9577 = normalize(max(_19648.xyz, vec3(0.001000000047497451305389404296875)));
- _22671 = saturate(mix(_22046.xyz, (_9577 * min(_24323 / dot(_9577.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125)), (3.0 * _24323) * max(_19648.x, max(_19648.y, _19648.z)))).xyz, vec3(_Globals_.g_flIridescentStrength * _24590)));
+ _12904 = saturate(mix(_22046.xyz, (_9577 * min(_24323 / dot(_9577.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125)), (3.0 * _24323) * max(_19648.x, max(_19648.y, _19648.z)))).xyz, vec3(_Globals_.g_flIridescentStrength * _24590)));
}
else
{
- _22671 = _17328;
+ _12904 = _17328;
}
- vec3 _17892 = mix(_17115, _14786, bvec3(all(equal(_17115, vec3(1.0)))));
+ vec3 _9737;
+ float _7578;
+ float _13141;
+ vec3 _15879;
+ vec3 _16308;
+ vec3 _17116;
+ vec3 _17117;
+ vec2 _17118;
+ do
+ {
+ _9737 = _10061.xyz;
+ vec3 _18130 = dFdx(_9737);
+ vec3 _7243 = dFdy(_9737);
+ vec2 _8396 = dFdx(_23261.xy);
+ vec2 _9068 = dFdy(_23261.xy);
+ bool _12888;
+ if (_23147 <= 0.0)
+ {
+ _12888 = _13654 <= 0.0;
+ }
+ else
+ {
+ _12888 = false;
+ }
+ SPIRV_CROSS_BRANCH
+ if (_12888)
+ {
+ _13141 = 0.0;
+ _16308 = _8219;
+ _17116 = _12904;
+ _17117 = _14786;
+ _17118 = _16306;
+ _15879 = _17115;
+ _7578 = 0.0;
+ break;
+ }
+ vec3 _13995 = -normalize(_10061.xyz - PerViewConstantBuffer_t._m7.xyz);
+ float _19347 = saturate(max((_16306.y - 0.75) * 4.0, 0.0));
+ float _12353 = sqrt(abs((_8396.x * _9068.y) - (_8396.y * _9068.x)) / max(length(cross(_18130, _7243)), 9.9999999392252902907785028219223e-09));
+ float _12407 = exp2(round(log2(0.25 / max(_12353, 9.9999999747524270787835121154785e-07))));
+ float _21040 = _12407 * 0.125;
+ vec4 _13138 = textureGrad(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m12], g_bindless_Sampler[_Globals_.g_sAniso]), (_23261.xy * _21040) + vec2(0.37000000476837158203125), _8396 * _21040, _9068 * _21040);
+ float _19245 = _13138.z;
+ float _13139;
+ float _13151;
+ float _23341;
+ SPIRV_CROSS_BRANCH
+ if (_23147 < _21267)
+ {
+ float _6204 = saturate((_19245 * 0.699999988079071044921875) + (_18787 * 0.300000011920928955078125));
+ float _9730 = saturate((saturate(1.0 - (_23147 / max(_21267, 9.9999997473787516355514526367188e-05))) - (_6204 * 0.60000002384185791015625)) * 2.5000002384185791015625);
+ float _10372 = _21267 * (1.0 - _9730);
+ _13139 = (1.0 - saturate(((1.0 - saturate(_13654 / max(_21267 - _23147, 0.001000000047497451305389404296875))) - (saturate(_6204 + (_19347 * 0.4000000059604644775390625)) * 0.60000002384185791015625)) * 2.5000002384185791015625)) * (_21267 - _10372);
+ _13151 = saturate(_9730 * 3.0);
+ _23341 = _10372;
+ }
+ else
+ {
+ _13139 = _13654;
+ _13151 = _Globals_.g_vFrostState.w;
+ _23341 = _23147;
+ }
+ float _23381;
+ SPIRV_CROSS_BRANCH
+ if (_Globals_.g_vFrostHeatPosOsAndAmount.w > 0.0)
+ {
+ _23381 = (_Globals_.g_vFrostHeatPosOsAndAmount.w * (1.0 - smoothstep(0.0, 20.0 * mix(0.25, 1.0, _Globals_.g_vFrostHeatPosOsAndAmount.w), distance(input_0.xyz, _Globals_.g_vFrostHeatPosOsAndAmount.xyz)))) * mix(0.5, 1.0, _20079);
+ }
+ else
+ {
+ _23381 = 0.0;
+ }
+ bool _12889;
+ if (_23381 > 0.0)
+ {
+ _12889 = _21267 > 0.0;
+ }
+ else
+ {
+ _12889 = false;
+ }
+ float _11921;
+ float _13140;
+ float _19857;
+ SPIRV_CROSS_BRANCH
+ if (_12889)
+ {
+ float _13023 = saturate(_23381 * 20.0);
+ float _20747 = min(_23341, _21267 * (1.0 - _13023));
+ _13140 = max(_13151, saturate(_13023 * 3.0));
+ _11921 = max(_13139, _21267 - _20747) * (1.0 - smoothstep(0.20000000298023223876953125, 0.4000000059604644775390625, _23381));
+ _19857 = _20747;
+ }
+ else
+ {
+ _13140 = _13151;
+ _11921 = _13139;
+ _19857 = _23341;
+ }
+ float _17489 = saturate(1.0 - (_19857 / max(_21267, 9.9999997473787516355514526367188e-05)));
+ float _8688 = saturate(_11921 / max(_21267 - _19857, 0.001000000047497451305389404296875));
+ float _23533 = _12407 * exp2((-0.25) + ((_17489 * mix(0.60000002384185791015625, 1.0, 1.0 - _8688)) * 3.0));
+ vec3 _12420 = _24347.xyz;
+ vec4 _12684 = textureGrad(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m12], g_bindless_Sampler[_Globals_.g_sAniso]), ((_23261.xy + ((vec2(dot(_13995, input_7.xyz), dot(_13995, _7425.xyz)) / vec2(max(dot(_13995, _12420), 0.25))) * ((-0.00999999977648258209228515625) * _12353))) * _12407) * mat2(vec2(0.798635542392730712890625, -0.6018149852752685546875), vec2(0.6018149852752685546875, 0.798635542392730712890625)), (_8396 * _23533) * mat2(vec2(0.798635542392730712890625, -0.6018149852752685546875), vec2(0.6018149852752685546875, 0.798635542392730712890625)), (_9068 * _23533) * mat2(vec2(0.798635542392730712890625, -0.6018149852752685546875), vec2(0.6018149852752685546875, 0.798635542392730712890625)));
+ vec2 _12795 = mat2(vec2(0.798635542392730712890625, -0.6018149852752685546875), vec2(0.6018149852752685546875, 0.798635542392730712890625)) * ((_12684.xy * 2.0) - vec2(1.0));
+ vec3 _22529 = _14786.xyz;
+ float _22007 = saturate(length(_22529 - _12420));
+ float _10634 = saturate(((mix(1.0, _22007, 0.4000000059604644775390625) * pow(_17476, 16.0)) * mix(1.0, saturate(normalize(input_1.xyz).z), 0.20000000298023223876953125)) + 0.199999988079071044921875);
+ float _23701 = (_17476 * _17476) * (1.0 - _22007);
+ float _12211 = mix(saturate(mix(_10634, _10634 * _12684.z, 0.60000002384185791015625) + ((_19245 - 0.5) * 0.300000011920928955078125)), saturate((_10634 * mix(1.0, _19245, 0.20000000298023223876953125)) * mix(0.699999988079071044921875, 1.0, _23701)), _19347) - 1.0;
+ float _18331 = _12211 + (_19857 * 0.4600000083446502685546875);
+ float _7308 = saturate(_18331 * mix(8.0, 2.5, _19347));
+ float _23574 = _12211 + (_21267 * 0.4600000083446502685546875);
+ float _12274 = mix(_7308, max(_7308, saturate(_23574 * 2.5)), _19347);
+ float _19452 = saturate(_18331 * 2.5);
+ float _16589;
+ SPIRV_CROSS_BRANCH
+ if (_11921 > 0.0)
+ {
+ _16589 = saturate(saturate(_23574 * 4.0) - saturate(_18331 * 4.0));
+ }
+ else
+ {
+ _16589 = 0.0;
+ }
+ uvec2 _10892 = uvec2(textureSize(g_bindless_Texture2D_float4[_Globals_.g_tColor], int(0u)));
+ vec2 _19999 = vec2(ivec2(int(_10892.x), int(_10892.y)));
+ float _11189 = log2(max(max(length(_8396 * _19999), length(_9068 * _19999)), 9.9999999747524270787835121154785e-07));
+ float _19321 = dot(textureLod(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tColor], g_bindless_Sampler[_Globals_.g_sAniso]), _23261.xy, max(log2(max(_19999.x, _19999.y) * 0.015625), _11189 + 2.0)).xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125));
+ float _6721 = (mix(0.800000011920928955078125, 1.0, _20079) * 0.5) + (1.7999999523162841796875 * saturate((abs(_19321 - dot(textureLod(sampler2D(g_bindless_Texture2D_float4[_Globals_.g_tColor], g_bindless_Sampler[_Globals_.g_sAniso]), _23261.xy, _11189).xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125))) / max(_19321, 0.001000000047497451305389404296875)) * 2.0));
+ float _20622 = 1.0 - _19347;
+ float _14198 = _12274 * _6721;
+ float _25171 = smoothstep(0.0, 0.100000001490116119384765625, _17489);
+ float _17785 = ((max(_16589, _14198 * _13140) * _8688) * _6721) * _25171;
+ vec2 _14970 = mix(_16306.xy, vec2(0.07999999821186065673828125), vec2(_17785 * (1.0 - (_19347 * 0.60000002384185791015625))));
+ vec3 _8752;
+ vec2 _13945;
+ SPIRV_CROSS_BRANCH
+ if (_17785 > 0.0)
+ {
+ vec3 _11314;
+ if (all(equal(_17115, vec3(1.0))))
+ {
+ _11314 = _22529;
+ }
+ else
+ {
+ _11314 = _17115.xyz;
+ }
+ float _19765 = ((saturate(((_12684.z - 1.0) + _8688) * 6.0) * _17785) * _20622) * _25171;
+ vec3 _15199 = normalize(vec3(_12795 * 2.5, 1.0));
+ _8752 = normalize(mix(normalize(mix(_11314, _12420, vec3((_17785 * 0.5) * _20622))), normalize((((input_7.xyz * _15199.x).xyz + (_7425.xyz * _15199.y)).xyz + (_24347.xyz * _15199.z)).xyz), vec3(_19765)));
+ _13945 = mix(_14970.xy, vec2(0.0500000007450580596923828125), vec2(_19765));
+ }
+ else
+ {
+ _8752 = _17115;
+ _13945 = _14970;
+ }
+ float _13876 = saturate((((((_12274 * mix(mix(0.0199999995529651641845703125, 0.0, _19347), 1.0, max(_19452 * _19452, mix(saturate(length(_12795) * 3.0), _12684.w, _19347)))) * mix(0.300000011920928955078125, 2.7000000476837158203125 * mix(0.5, 1.0, _23701), _19347)) * (0.75 + pow(1.0 - saturate(dot(_22529, _13995)), 3.0))) * mix(1.0, saturate(((_12684.w * 0.5) + 0.5) - _17489), _19347)) * _6721) * mix(1.0, 0.3499999940395355224609375, _13140 * _20622));
+ float _14683 = _13876 * mix(0.00999999977648258209228515625, 0.0500000007450580596923828125, _19347);
+ vec3 _15522 = dFdxFine(_9737);
+ vec3 _20236 = cross(dFdyFine(_9737), _22529);
+ float _23342 = dot(_15522, _20236);
+ vec3 _24600 = normalize((_22529 * abs(_23342)) - (((_20236 * dFdxFine(_14683)) + (cross(_22529, _15522) * dFdyFine(_14683))) * float(int(sign(_23342)))));
+ vec3 _10798 = normalize(vec3(_12795, 1.0));
+ float _10451 = max(0.0, (_13876 * _19452) * 0.5);
+ _13141 = (_10451 > 0.0) ? (-0.20000000298023223876953125) : 0.0;
+ _16308 = mix((_8219.xyz * mix(1.0, mix(0.800000011920928955078125, 0.550000011920928955078125, _19347), _17785)).xyz, vec3(0.800000011920928955078125, 0.86000001430511474609375, 0.920000016689300537109375), vec3(_13876));
+ _17116 = mix(_12904.xyz, vec3(0.0199999995529651641845703125), vec3(_13876 * 0.60000002384185791015625));
+ _17117 = normalize(mix(_24600.xyz, normalize((((input_7.xyz * _10798.x).xyz + (_7425.xyz * _10798.y)).xyz + (_24600.xyz * _10798.z)).xyz), vec3(_14198 * (1.0 - (_19347 * 0.89999997615814208984375)))));
+ _17118 = mix(_13945.xy, vec2(mix(0.4000000059604644775390625, 0.119999997317790985107421875, _13140)), vec2(_14198 * mix(0.5, 1.0, _19452)));
+ _15879 = _8752;
+ _7578 = _10451;
+ break;
+ } while(false);
+ vec3 _17892 = mix(_15879, _17117, bvec3(all(equal(_15879, vec3(1.0)))));
vec3 _10560 = _24347.xyz;
vec3 _11099 = dFdx(_10560);
vec3 _9175 = dFdy(_10560);
vec3 _10347 = _11099.xyz;
- vec3 _12420 = _9175.xyz;
- vec2 _11004 = max(_16306.xy, vec2(pow(saturate(max(dot(_10347, _10347), dot(_12420, _12420))), 0.333000004291534423828125)));
+ vec3 _12422 = _9175.xyz;
+ vec2 _11004 = max(_17118.xy, vec2(pow(saturate(max(dot(_10347, _10347), dot(_12422, _12422))), 0.333000004291534423828125)));
vec3 _10170 = -_24347;
- vec3 _24735 = _14786.xyz;
- vec4 _23875 = vec4(_24735, 1.0);
+ vec4 _23875 = vec4(_17117.xyz, 1.0);
vec3 _18708 = vec3(dot(PerViewLightingConstantBufferGpu_t._m5._m0[0].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t._m5._m0[1].xyzw, _23875), dot(PerViewLightingConstantBufferGpu_t._m5._m0[2].xyzw, _23875));
bvec4 _24465 = notEqual(PerViewConstantBufferCsgo_t._m1, ivec4(0));
float _21710;
if (_24465.x)
{
vec3 _11394 = _24347.xyz;
- vec2 _11087 = ((floor(_11408.xy * PerViewConstantBufferCsgo_t._m17) * PerViewConstantBufferCsgo_t._m16.xy) + (PerViewConstantBufferCsgo_t._m16.xy * 0.5)).xy;
+ vec2 _11087 = ((floor(_11408.xy * PerViewConstantBufferCsgo_t._m18) * PerViewConstantBufferCsgo_t._m17.xy) + (PerViewConstantBufferCsgo_t._m17.xy * 0.5)).xy;
vec4 _18418 = textureGather(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m8], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _11087).xyzw - _11408.zzzz;
float _18579 = _18418.w;
float _12013 = _18418.z;
bool _12285 = abs(_12013) < _18579;
vec2 _23168;
if (_12285)
{
- _23168 = vec2(PerViewConstantBufferCsgo_t._m16.x, 0.0);
+ _23168 = vec2(PerViewConstantBufferCsgo_t._m17.x, 0.0);
}
else
{
@@ -1322,15 +1521,15 @@ PS
vec2 _23169;
if (_12286)
{
- _23169 = vec2(0.0, PerViewConstantBufferCsgo_t._m16.y);
+ _23169 = vec2(0.0, PerViewConstantBufferCsgo_t._m17.y);
}
else
{
_23169 = _23168;
}
vec4 _10010 = normalize(vec4(PerViewLightingConstantBufferGpu_t._m7.x * fma(dot(_10170, normalize(vec3(PerViewLightingConstantBufferGpu_t._m6._m0[0].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m7.y * fma(dot(_10170, normalize(vec3(PerViewLightingConstantBufferGpu_t._m6._m0[1].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m7.z * fma(dot(_10170, normalize(vec3(PerViewLightingConstantBufferGpu_t._m6._m0[2].xy, 0.25))), 0.5, 0.5), PerViewLightingConstantBufferGpu_t._m7.w * fma(dot(_10170, normalize(vec3(PerViewLightingConstantBufferGpu_t._m6._m0[3].xy, 0.25))), 0.5, 0.5)));
vec4 _13232 = max(vec4(dot(PerViewLightingConstantBufferGpu_t._m6._m0[0].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m6._m0[1].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m6._m0[2].xyz, _11394), dot(PerViewLightingConstantBufferGpu_t._m6._m0[3].xyz, _11394)).xyzw, vec4(0.0)) * normalize(saturate(((_10010 - vec4(max(max(_10010.x, _10010.y), max(_10010.z, _10010.w)))) + vec4(0.20000000298023223876953125)) * vec4(5.0)));
- _21710 = (1.0 / (dot(_13232, vec4(1.0)) + PerViewLightingConstantBufferGpu_t._m8.x)) * (PerViewLightingConstantBufferGpu_t._m8.x + dot(_13232, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m7], g_bindless_Sampler[_Globals_.g_sPointClamp]), (_11087 + mix(_23169, PerViewConstantBufferCsgo_t._m16.xy, bvec2(abs(_18418.y) < (_12286 ? _15372 : _20965))).xy).xy, 0.0)));
+ _21710 = (1.0 / (dot(_13232, vec4(1.0)) + PerViewLightingConstantBufferGpu_t._m8.x)) * (PerViewLightingConstantBufferGpu_t._m8.x + dot(_13232, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m7], g_bindless_Sampler[_Globals_.g_sPointClamp]), (_11087 + mix(_23169, PerViewConstantBufferCsgo_t._m17.xy, bvec2(abs(_18418.y) < (_12286 ? _15372 : _20965))).xy).xy, 0.0)));
}
else
{
@@ -1339,187 +1538,198 @@ PS
float _21711;
if (notEqual(PerViewConstantBufferCsgo_t._m0, ivec4(0)).w)
{
- _21711 = _21710 * textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m9], g_bindless_Sampler[_Globals_.g_sUserConfig]), (_11408.xy * PerViewConstantBuffer_t._m3.xy).xy, 0.0).x;
+ _21711 = _21710 * textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m9], g_bindless_Sampler[_Globals_.g_sUserConfig]), (_11408.xy * PerViewConstantBuffer_t._m4.xy).xy, 0.0).x;
}
else
{
_21711 = _21710;
}
- float _21712;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _17117.xyz);
+ float _12320;
SPIRV_CROSS_BRANCH
- if (PerViewLightingConstantBufferGpu_t._m18 != 0)
+ if (_8634 > _13141)
{
- int _23989;
- int _10191;
- float _13138;
- vec3 _14975;
- int _13039 = 0;
- for (;;)
+ float _12508;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m18 != 0)
{
- if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))
- {
- _13138 = 1.0;
- _14975 = vec3(0.0);
- _10191 = -1;
- break;
- }
- vec4 _18322 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])
+ int _23989;
+ int _10191;
+ float _13142;
+ vec3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- vec3 _19470 = vec3(_12779, _18322.yz);
- vec2 _24804 = _19470.xy;
- vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));
- vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;
- vec3 _20489 = _19470;
- _20489.x = _20561.x;
- _20489.y = _20561.y;
- _13138 = saturate(_22193.x * _22193.y);
- _14975 = _20489;
- _10191 = _13039;
- break;
- }
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
- {
- vec2 _7045;
- vec2 _7046;
- vec2 _7735;
- float _8969;
- float _8970;
- float _15996;
- float _17299;
- vec2 _18870;
- vec4 _20581;
- vec4 _24370;
- uint _24711;
- float _23727;
- do
- {
- float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);
- _20581 = PerViewLightingConstantBufferGpu_t._m0;
- _24370 = PerViewLightingConstantBufferGpu_t._m1;
- _24711 = _Globals_.g_tShadowDepthBufferCmpSampler;
- _17299 = PerViewLightingConstantBufferGpu_t._m2.z;
- _15996 = PerViewLightingConstantBufferGpu_t._m3.z;
- _18870 = vec2(_17299, _15996);
- _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
- _7045 = vec2(_8969, _15996);
- _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
- _7046 = vec2(_17299, _8970);
- _7735 = vec2(_8969, _8970);
- float _15310 = dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));
- bool _12888;
- if (_15310 == 0.0)
- {
- _12888 = true;
- }
- else
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))
{
- _12888 = _15310 == 1.0;
+ _13142 = 1.0;
+ _14975 = vec3(0.0);
+ _10191 = -1;
+ break;
}
- if (_12888)
+ vec4 _18322 = vec4(input_2.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])
{
- _23727 = _15310;
+ vec3 _19470 = vec3(_12779, _18322.yz);
+ vec2 _24804 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));
+ vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;
+ vec3 _20489 = _19470;
+ _20489.x = _20561.x;
+ _20489.y = _20561.y;
+ _13142 = saturate(_22193.x * _22193.y);
+ _14975 = _20489;
+ _10191 = _13039;
break;
}
- _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _24370.xxxx)) + (textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3(_14975.xy, _21452), 0.0) * _24370.y);
- break;
- } while(false);
- float _12506;
- SPIRV_CROSS_BRANCH
- if (_13138 < 1.0)
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
+ }
+ float _21712;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))
+ vec2 _7045;
+ vec2 _7046;
+ vec2 _7735;
+ float _8969;
+ float _8970;
+ float _15996;
+ float _17299;
+ vec2 _18870;
+ vec4 _20581;
+ vec4 _24369;
+ uint _24711;
+ float _23727;
+ do
{
- int _15335 = _10191 + 1;
- vec4 _19671 = vec4(input_1.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];
- vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;
- vec3 _20490;
- _20490.x = _20562.x;
- _20490.y = _20562.y;
- float _12505;
- do
+ float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);
+ _20581 = PerViewLightingConstantBufferGpu_t._m0;
+ _24369 = PerViewLightingConstantBufferGpu_t._m1;
+ _24711 = _Globals_.g_tShadowDepthBufferCmpSampler;
+ _17299 = PerViewLightingConstantBufferGpu_t._m2.z;
+ _15996 = PerViewLightingConstantBufferGpu_t._m3.z;
+ _18870 = vec2(_17299, _15996);
+ _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
+ _7045 = vec2(_8969, _15996);
+ _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
+ _7046 = vec2(_17299, _8970);
+ _7735 = vec2(_8969, _8970);
+ float _15310 = dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));
+ bool _12890;
+ if (_15310 == 0.0)
{
- float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);
- float _15311 = dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));
- bool _12889;
- if (_15311 == 0.0)
- {
- _12889 = true;
- }
- else
- {
- _12889 = _15311 == 1.0;
- }
- if (_12889)
+ _12890 = true;
+ }
+ else
+ {
+ _12890 = _15310 == 1.0;
+ }
+ if (_12890)
+ {
+ _23727 = _15310;
+ break;
+ }
+ _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _24369.xxxx)) + (textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3(_14975.xy, _21452), 0.0) * _24369.y);
+ break;
+ } while(false);
+ float _12506;
+ SPIRV_CROSS_BRANCH
+ if (_13142 < 1.0)
+ {
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19671 = vec4(input_2.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];
+ vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;
+ vec3 _20490;
+ _20490.x = _20562.x;
+ _20490.y = _20562.y;
+ float _12505;
+ do
{
- _12505 = _15311;
+ float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);
+ float _15311 = dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));
+ bool _12891;
+ if (_15311 == 0.0)
+ {
+ _12891 = true;
+ }
+ else
+ {
+ _12891 = _15311 == 1.0;
+ }
+ if (_12891)
+ {
+ _12505 = _15311;
+ break;
+ }
+ _12505 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _24369.xxxx)) + (textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3(_20490.xy, _20322), 0.0) * _24369.y);
break;
- }
- _12505 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3((_20490.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _24370.xxxx)) + (textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_24711]), vec3(_20490.xy, _20322), 0.0) * _24370.y);
- break;
- } while(false);
- _7934 = _12505;
+ } while(false);
+ _7934 = _12505;
+ }
+ else
+ {
+ _7934 = 1.0;
+ }
+ _12506 = mix(_7934, _23727, _13142);
}
else
{
- _7934 = 1.0;
+ _12506 = _23727;
}
- _12506 = mix(_7934, _23727, _13138);
+ _21712 = _12506;
}
else
{
- _12506 = _23727;
+ _21712 = 1.0;
}
- _19363 = _12506;
- }
- else
- {
- _19363 = 1.0;
- }
- float _13279 = mix(_19363, 1.0, saturate((distance(_10061.xyz, PerViewConstantBuffer_t._m6) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));
- float _12507;
- if (_24465.y)
- {
- _12507 = min(_13279, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m10], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), (_11408.xy * PerViewConstantBuffer_t._m3.xy).xy, 0.0).z);
+ float _13279 = mix(_21712, 1.0, saturate((distance(_9737, PerViewConstantBuffer_t._m7) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));
+ float _12507;
+ if (_24465.y)
+ {
+ _12507 = min(_13279, textureLod(sampler2D(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m10], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), (_11408.xy * PerViewConstantBuffer_t._m4.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12507 = _13279;
+ }
+ _12508 = _12507;
}
else
{
- _12507 = _13279;
+ _12508 = 1.0;
}
- _21712 = _12507;
+ _12320 = _12508;
}
else
{
- _21712 = 1.0;
+ _12320 = 1.0;
}
vec3 _9716;
vec3 _24878;
SPIRV_CROSS_BRANCH
- if ((dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735) * _21712) > 0.0)
+ if ((_8634 * _12320) > 0.0)
{
- vec3 _15460 = mix(_17892, _24735, bvec3(all(equal(_17892, vec3(1.0)))));
- float _13811 = max(0.0, dot(_14786.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));
+ vec3 _15460 = mix(_17892, _17117.xyz, bvec3(all(equal(_17892, vec3(1.0)))));
+ float _13811 = max(0.0, dot(_17117.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));
vec3 _17874 = vec3(_13811);
vec3 _18223;
if (_13694 > 0.0)
{
float _8780 = dot(_15460, PerViewLightingConstantBufferGpu_t._m16.xyz);
float _8124 = saturate(_13694);
- _18223 = mix(_17874.xyz, vec3((((0.5 + (_13811 * 0.5)) + pow(1.0 - saturate(_8780), 4.0)) * saturate((_8780 + 0.20000000298023223876953125) * 4.0)) * saturate(mix(dot(mix(_24735, _15460, vec3(10.0)), PerViewLightingConstantBufferGpu_t._m16.xyz), 1.0, _8124))), vec3(_8124));
+ _18223 = mix(_17874.xyz, vec3((((0.5 + (_13811 * 0.5)) + pow(1.0 - saturate(_8780), 4.0)) * saturate((_8780 + 0.20000000298023223876953125) * 4.0)) * saturate(mix(dot(mix(_17117.xyz, _15460, vec3(10.0)), PerViewLightingConstantBufferGpu_t._m16.xyz), 1.0, _8124))), vec3(_8124));
}
else
{
_18223 = _17874;
}
vec2 _17301 = max(_11004, vec2(PerViewLightingConstantBufferGpu_t._m16.w));
- vec3 _21889 = (-normalize(_10061.xyz - PerViewConstantBuffer_t._m6.xyz)).xyz;
+ vec3 _21889 = (-normalize(_10061.xyz - PerViewConstantBuffer_t._m7.xyz)).xyz;
vec3 _12281 = normalize(PerViewLightingConstantBufferGpu_t._m16.xyz + _21889).xyz;
vec3 _19012 = _15460.xyz;
float _12386 = dot(_12281, _19012);
@@ -1529,9 +1739,9 @@ PS
float _16150 = _9850 + 1.0;
float _6835 = (_16150 * _16150) * 0.125;
float _19569 = 1.0 - _6835;
- vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _21712).xyz;
+ vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _12320).xyz;
_9716 = PerViewLightingConstantBufferGpu_t._m9.xyz + (_18223.xyz * _16808);
- _24878 = (((_22671.xyz + ((vec3(1.0) - _22671.xyz) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * ((_24198 * _24198) / ((4.0 * ((_13811 * _19569) + _6835)) * ((max(0.0, dot(_19012, _21889)) * _19569) + _6835)))).xyz * _13811).xyz * _16808;
+ _24878 = (((_17116.xyz + ((vec3(1.0) - _17116.xyz) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * ((_24198 * _24198) / ((4.0 * ((_13811 * _19569) + _6835)) * ((max(0.0, dot(_19012, _21889)) * _19569) + _6835)))).xyz * _13811).xyz * _16808;
}
else
{
@@ -1540,32 +1750,32 @@ PS
}
bvec4 _24467 = notEqual(PerViewConstantBufferCsgo_t._m2, ivec4(0));
bool _20061 = _24467.x;
- vec4 _19364;
+ vec4 _19363;
if (_20061)
{
- vec4 _18621 = vec4(_10061.xyz, 1.0).xyzw * PerViewConstantBufferCsgo_t._m15;
+ vec4 _18621 = vec4(_9737, 1.0).xyzw * PerViewConstantBufferCsgo_t._m16;
float _20176 = _18621.w;
vec2 _11414 = _18621.xy / vec2(_20176);
vec4 _6651;
- _6651.x = clamp(((_11414.x + 1.0) * PerViewConstantBuffer_t._m2.x) * 0.5, 0.0, PerViewConstantBuffer_t._m2.x - 1.0);
- _6651.y = clamp(((1.0 - _11414.y) * PerViewConstantBuffer_t._m2.y) * 0.5, 0.0, PerViewConstantBuffer_t._m2.y - 1.0);
+ _6651.x = clamp(((_11414.x + 1.0) * PerViewConstantBuffer_t._m3.x) * 0.5, 0.0, PerViewConstantBuffer_t._m3.x - 1.0);
+ _6651.y = clamp(((1.0 - _11414.y) * PerViewConstantBuffer_t._m3.y) * 0.5, 0.0, PerViewConstantBuffer_t._m3.y - 1.0);
_6651.w = _20176;
- _19364 = _6651;
+ _19363 = _6651;
}
else
{
- _19364 = _11408;
+ _19363 = _11408;
}
uvec2 _7663 = uvec2(PerViewLightingConstantBufferGpu_t._m12.x);
- uvec2 _12083 = uvec2(_19364.xy - PerViewConstantBuffer_t._m1.xy) >> _7663;
+ uvec2 _12083 = uvec2(_19363.xy - PerViewConstantBuffer_t._m2.xy) >> _7663;
uint _10838 = PerViewLightingConstantBufferGpu_t._m10.y + (((_12083.y * PerViewLightingConstantBufferGpu_t._m12.y) + _12083.x) * PerViewLightingConstantBufferGpu_t._m10.z);
- uint _23393 = PerViewLightingConstantBufferGpu_t._m10.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t._m13.x, 0.0, PerViewLightingConstantBufferGpu_t._m13.y)) * PerViewLightingConstantBufferGpu_t._m10.z);
- vec3 _13139;
+ uint _23393 = PerViewLightingConstantBufferGpu_t._m10.x + (uint(clamp(_19363.w * PerViewLightingConstantBufferGpu_t._m13.x, 0.0, PerViewLightingConstantBufferGpu_t._m13.y)) * PerViewLightingConstantBufferGpu_t._m10.z);
+ vec3 _13143;
vec3 _16324;
- _13139 = _9716;
+ _13143 = _9716;
_16324 = _24878;
uint _21567;
- vec3 _13140;
+ vec3 _13144;
vec3 _16325;
uint _17017 = 0u;
for (;;)
@@ -1575,8 +1785,8 @@ PS
break;
}
uint _14475 = subgroupOr(g_CullBits_1._m0[_10838 + _17017] & g_CullBits_1._m0[_23393 + _17017]);
- _13140 = _16324;
- _16325 = _13139;
+ _13144 = _16324;
+ _16325 = _13143;
uint _20344;
vec3 _13212;
vec3 _15670;
@@ -1591,7 +1801,7 @@ PS
_20344 = _17018 & (_17018 - 1u);
do
{
- vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(input_1.xyz, 1.0);
+ vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(input_2.xyz, 1.0);
vec3 _10521 = _24893.xyz / vec3(_24893.w);
vec4 _22905;
_22905.x = _10521.x;
@@ -1608,18 +1818,18 @@ PS
{
_7426 = false;
}
- bool _12890;
+ bool _12892;
if (!_7426)
{
- _12890 = true;
+ _12892 = true;
}
else
{
- _12890 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(input_1.xyz, 1.0)).xyz), vec3(1.0)));
+ _12892 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(input_2.xyz, 1.0)).xyz), vec3(1.0)));
}
- if (_12890)
+ if (_12892)
{
- _13212 = _13140;
+ _13212 = _13144;
_15670 = _16325;
break;
}
@@ -1652,7 +1862,7 @@ PS
float _11633;
if (g_BarnLights_1._m0[_12608]._m2.w != 0.0)
{
- vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - input_1.xyz;
+ vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - input_2.xyz;
float _18345 = dot(_10017, _10017);
float _17647 = sqrt(_18345);
vec3 _20958 = _10017 - _16268;
@@ -1730,7 +1940,7 @@ PS
}
else
{
- vec3 _12508;
+ vec3 _12509;
if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)
{
vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);
@@ -1746,7 +1956,7 @@ PS
vec3 _20492 = _14081;
_20492.x = _20564.x;
_20492.y = _20564.y;
- _12508 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m28], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _20492.xyz, 0.0).xyz;
+ _12509 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m28], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), _20492.xyz, 0.0).xyz;
}
else
{
@@ -1755,13 +1965,13 @@ PS
vec3 _20491 = _13791;
_20491.x = _20563.x;
_20491.y = _20563.y;
- _12508 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m28], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _20491.xyz, 0.0).xyz;
+ _12509 = _17828.xyz * textureLod(sampler3D(g_bindless_Texture3D_float4[PerViewLightingConstantBufferGpu_t._m28], g_bindless_Sampler[_Globals_.g_sCookieSampler]), _20491.xyz, 0.0).xyz;
}
- _21548 = _12508;
+ _21548 = _12509;
}
if (all(equal(_21548.xyz, vec3(0.0))))
{
- _13212 = _13140;
+ _13212 = _13144;
_15670 = _16325;
break;
}
@@ -1772,10 +1982,10 @@ PS
if ((g_BarnLights_1._m0[_12608]._m13 & 4u) != 0u)
{
vec2 _6281 = _22905.yx * vec2(1.0, -1.0);
- vec3 _23714 = _21642;
- _23714.x = _6281.x;
- _23714.y = _6281.y;
- _19629 = _23714;
+ vec3 _23715 = _21642;
+ _23715.x = _6281.x;
+ _23715.y = _6281.y;
+ _19629 = _23715;
}
else
{
@@ -1784,30 +1994,30 @@ PS
float _24972;
do
{
- float _21462 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);
+ float _21464 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);
vec2 _10393 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;
- float _15312 = dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _21462), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _21462), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _21462), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _21462), 0.0)).xyzw, vec4(0.25));
- bool _12891;
+ float _15312 = dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _21464), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _21464), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _21464), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _21464), 0.0)).xyzw, vec4(0.25));
+ bool _12893;
if (_15312 == 0.0)
{
- _12891 = true;
+ _12893 = true;
}
else
{
- _12891 = _15312 == 1.0;
+ _12893 = _15312 == 1.0;
}
- if (_12891)
+ if (_12893)
{
_24972 = _15312;
break;
}
- _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _21462), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _21462), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _21462), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _21462), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_10393, _21462), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
+ _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _21464), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _21464), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _21464), 0.0), textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3((_10393 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _21464), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_bindless_Texture2D_float4[PerViewLightingConstantBufferGpu_t._m27], g_bindless_Sampler_1[_Globals_.g_tShadowDepthBufferCmpSampler]), vec3(_10393, _21464), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
break;
} while(false);
vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12608]._m12);
if (all(equal(_19878.xyz, vec3(0.0))))
{
- _13212 = _13140;
+ _13212 = _13144;
_15670 = _16325;
break;
}
@@ -1817,22 +2027,22 @@ PS
{
_21549 = _21548;
}
- vec3 _15462 = mix(_17892, _24735, bvec3(all(equal(_17892, vec3(1.0)))));
- float _13812 = max(0.0, dot(_14786.xyz, _11179.xyz));
+ vec3 _15462 = mix(_17892, _17117.xyz, bvec3(all(equal(_17892, vec3(1.0)))));
+ float _13812 = max(0.0, dot(_17117.xyz, _11179.xyz));
vec3 _17875 = vec3(_13812);
vec3 _18224;
if (_13694 > 0.0)
{
float _8781 = dot(_15462, _11179.xyz);
float _8125 = saturate(_13694);
- _18224 = mix(_17875.xyz, vec3((((0.5 + (_13812 * 0.5)) + pow(1.0 - saturate(_8781), 4.0)) * saturate((_8781 + 0.20000000298023223876953125) * 4.0)) * saturate(mix(dot(mix(_24735, _15462, vec3(10.0)), _11179.xyz), 1.0, _8125))), vec3(_8125));
+ _18224 = mix(_17875.xyz, vec3((((0.5 + (_13812 * 0.5)) + pow(1.0 - saturate(_8781), 4.0)) * saturate((_8781 + 0.20000000298023223876953125) * 4.0)) * saturate(mix(dot(mix(_17117.xyz, _15462, vec3(10.0)), _11179.xyz), 1.0, _8125))), vec3(_8125));
}
else
{
_18224 = _17875;
}
vec2 _17302 = max(_11004, vec2(g_BarnLights_1._m0[_12608]._m11));
- vec3 _21890 = (-normalize(_10061.xyz - PerViewConstantBuffer_t._m6.xyz)).xyz;
+ vec3 _21890 = (-normalize(_10061.xyz - PerViewConstantBuffer_t._m7.xyz)).xyz;
vec3 _12282 = normalize(_11179.xyz + _21890).xyz;
vec3 _19014 = _15462.xyz;
float _12387 = dot(_12282, _19014);
@@ -1842,190 +2052,206 @@ PS
float _16151 = _9851 + 1.0;
float _6836 = (_16151 * _16151) * 0.125;
float _19571 = 1.0 - _6836;
- _13212 = _13140.xyz + ((((_22671.xyz + ((vec3(1.0) - _22671.xyz) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(_11179.xyz, _12282))), 5.0))) * ((_24199 * _24199) / ((4.0 * ((_13812 * _19571) + _6836)) * ((max(0.0, dot(_19014, _21890)) * _19571) + _6836)))).xyz * _13812).xyz * _21549.xyz);
+ _13212 = _13144.xyz + ((((_17116.xyz + ((vec3(1.0) - _17116.xyz) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(_11179.xyz, _12282))), 5.0))) * ((_24199 * _24199) / ((4.0 * ((_13812 * _19571) + _6836)) * ((max(0.0, dot(_19014, _21890)) * _19571) + _6836)))).xyz * _13812).xyz * _21549.xyz);
_15670 = _16325.xyz + (_18224.xyz * _21549.xyz);
break;
} while(false);
- _13140 = _13212;
+ _13144 = _13212;
_16325 = _15670;
_17018 = _20344;
continue;
}
_21567 = _17017 + 1u;
- _13139 = _16325;
- _16324 = _13140;
+ _13143 = _16325;
+ _16324 = _13144;
_17017 = _21567;
continue;
}
- vec3 _10145 = normalize(_10061.xyz - PerViewConstantBuffer_t._m6.xyz);
+ vec3 _10145 = normalize(_10061.xyz - PerViewConstantBuffer_t._m7.xyz);
vec3 _19257 = -_10145;
float _17138 = _11004.x + _11004.y;
float _19582 = _17138 * _17138;
float _17751 = dot(_11004.xy, vec2(0.5));
vec3 _6520 = _17892.xyz;
vec3 _19081 = _17892.xyz;
- float _12853 = PerViewLightingConstantBufferGpu_t._m14.y * sqrt(_17751);
- vec3 _11901 = _10061.xyz;
+ float _12587 = PerViewLightingConstantBufferGpu_t._m14.y * sqrt(_17751);
vec3 _11008;
vec4 _14444;
- if (PerViewConstantBufferCsgo_t._m29 != 0.0)
+ if (PerViewConstantBufferCsgo_t._m30 != 0.0)
{
- float _9642 = dot(vec4(((_11901 + PerViewConstantBuffer_t._m5.xyz) + ((-PerViewConstantBuffer_t._m7) * PerViewConstantBufferCsgo_t._m29)).xyz, 1.0), vec4(PerViewConstantBuffer_t._m7.xyz, dot((PerViewConstantBuffer_t._m5.xyz + PerViewConstantBuffer_t._m6.xyz).xyz + (PerViewConstantBuffer_t._m7.xyz * PerViewConstantBuffer_t._m4), PerViewConstantBuffer_t._m7.xyz)));
+ float _9642 = dot(vec4(((_9737 + PerViewConstantBuffer_t._m6.xyz) + ((-PerViewConstantBuffer_t._m8) * PerViewConstantBufferCsgo_t._m30)).xyz, 1.0), vec4(PerViewConstantBuffer_t._m8.xyz, dot((PerViewConstantBuffer_t._m6.xyz + PerViewConstantBuffer_t._m7.xyz).xyz + (PerViewConstantBuffer_t._m8.xyz * PerViewConstantBuffer_t._m5), PerViewConstantBuffer_t._m8.xyz)));
vec3 _21713;
if (_9642 <= 0.0)
{
_21713 = _10061;
}
else
{
- _21713 = _11901 + ((-PerViewConstantBuffer_t._m7.xyz) * _9642);
+ _21713 = _9737 + ((-PerViewConstantBuffer_t._m8.xyz) * _9642);
}
- vec4 _19975 = vec4(_21713.xyz, 1.0) * PerViewConstantBufferCsgo_t._m15;
+ vec4 _19975 = vec4(_21713.xyz, 1.0) * PerViewConstantBufferCsgo_t._m16;
float _20177 = _19975.w;
vec2 _11415 = _19975.xy / vec2(_20177);
vec4 _6652;
- _6652.x = clamp(((_11415.x + 1.0) * PerViewConstantBuffer_t._m2.x) * 0.5, 0.0, PerViewConstantBuffer_t._m2.x - 1.0);
- _6652.y = clamp(((1.0 - _11415.y) * PerViewConstantBuffer_t._m2.y) * 0.5, 0.0, PerViewConstantBuffer_t._m2.y - 1.0);
+ _6652.x = clamp(((_11415.x + 1.0) * PerViewConstantBuffer_t._m3.x) * 0.5, 0.0, PerViewConstantBuffer_t._m3.x - 1.0);
+ _6652.y = clamp(((1.0 - _11415.y) * PerViewConstantBuffer_t._m3.y) * 0.5, 0.0, PerViewConstantBuffer_t._m3.y - 1.0);
_6652.w = _20177;
_11008 = _21713;
_14444 = _6652;
}
else
{
- _11008 = _11901;
+ _11008 = _9737;
_14444 = _11408.xyzw;
}
float _22047 = _17751 * _17751;
float _20711 = saturate(1.0 - _22047);
vec3 _25271 = normalize(mix(_6520, reflect(_10145.xyz, _19081).xyz, vec3(_20711 * (sqrt(_20711) + _22047))));
- uvec2 _6815 = uvec2(_14444.xy - PerViewConstantBuffer_t._m1.xy) >> _7663;
+ uvec2 _6815 = uvec2(_14444.xy - PerViewConstantBuffer_t._m2.xy) >> _7663;
uint _12130 = PerViewLightingConstantBufferGpu_t._m11.y + (((_6815.y * PerViewLightingConstantBufferGpu_t._m12.y) + _6815.x) * PerViewLightingConstantBufferGpu_t._m11.z);
uint _23394 = PerViewLightingConstantBufferGpu_t._m11.x + (uint(clamp(_14444.w * PerViewLightingConstantBufferGpu_t._m13.x, 0.0, PerViewLightingConstantBufferGpu_t._m13.y)) * PerViewLightingConstantBufferGpu_t._m11.z);
- vec4 _13141;
- float _16308;
- vec3 _17116;
- _13141 = vec4(0.0);
- _16308 = 0.00999999977648258209228515625;
- _17116 = vec3(0.0);
+ vec4 _13145;
+ float _16309;
+ vec3 _17119;
+ _13145 = vec4(0.0);
+ _16309 = 0.00999999977648258209228515625;
+ _17119 = vec3(0.0);
uint _8896;
- vec4 _13144;
+ vec4 _13148;
vec3 _14891;
- float _16310;
+ float _16311;
bool _18360;
uint _17020 = 0u;
bool _17133 = false;
for (;;)
{
- bool _12892;
+ bool _12894;
if (_17020 < PerViewLightingConstantBufferGpu_t._m11.z)
{
- _12892 = !_17133;
+ _12894 = !_17133;
}
else
{
- _12892 = false;
+ _12894 = false;
}
- if (!_12892)
+ if (!_12894)
{
break;
}
uint _14476 = subgroupOr(g_CullBits_1._m0[_12130 + _17020] & g_CullBits_1._m0[_23394 + _17020]);
- vec3 _13142;
- vec4 _16309;
- _13142 = _17116;
- _16309 = _13141;
+ vec3 _13146;
+ vec4 _16310;
+ _13146 = _17119;
+ _16310 = _13145;
uint _10156;
- vec3 _13143;
+ vec3 _13147;
vec4 _16381;
float _16479;
uint _17021 = _14476;
- float _17134 = _16308;
+ float _17134 = _16309;
for (;;)
{
if (!(_17021 != 0u))
{
- _13144 = _16309;
- _16310 = _17134;
- _14891 = _13142;
+ _13148 = _16310;
+ _16311 = _17134;
+ _14891 = _13146;
_18360 = _17133;
break;
}
uint _18154 = uint(findLSB(_17021));
int _12609 = int(_18154 + (_17020 * 32u));
_10156 = _17021 & (_17021 - 1u);
- vec3 _7748 = (PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m0 * vec4(_11008.xyz, 1.0)).xyz;
- vec3 _8793 = saturate((_7748 - PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m1) * PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m5.xyz);
- vec3 _19651 = saturate((PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m3 - _7748) * PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m5.xyz);
+ vec3 _7750 = (PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m0 * vec4(_11008.xyz, 1.0)).xyz;
+ vec3 _8793 = saturate((_7750 - PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m1) * PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m5.xyz);
+ vec3 _19651 = saturate((PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m3 - _7750) * PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m5.xyz);
float _17265 = min(min(_8793.x, min(_8793.y, _8793.z)), min(_19651.x, min(_19651.y, _19651.z)));
if (_17265 == 0.0)
{
- _13143 = _13142;
- _16381 = _16309;
+ _13147 = _13146;
+ _16381 = _16310;
_16479 = _17134;
- _13142 = _13143;
- _16309 = _16381;
+ _13146 = _13147;
+ _16310 = _16381;
_17134 = _16479;
_17021 = _10156;
continue;
}
vec3 _19630;
- if (PerViewConstantBufferCsgo_t._m28 != 0.0)
+ if (PerViewConstantBufferCsgo_t._m29 != 0.0)
{
vec3 _19779 = PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m1 + ((PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m3 - PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m1) * 0.5);
- _19630 = ((_7748 - _19779) * PerViewConstantBufferCsgo_t._m28) + _19779;
+ _19630 = ((_7750 - _19779) * PerViewConstantBufferCsgo_t._m29) + _19779;
}
else
{
- _19630 = _7748;
+ _19630 = _7750;
}
vec3 _7648 = (PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m0 * vec4(_25271.xyz, 0.0)).xyz;
vec3 _11253 = max(((PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m3.xyz - _19630.xyz) / _7648).xyz, ((PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m1.xyz - _19630.xyz) / _7648).xyz);
float _11076 = ((_17265 * _17265) * (((-2.0) * _17265) + 3.0)) * (1.0 - _17134);
float _13713 = _17134 + _11076;
- vec3 _15431 = _13142 + ((textureLod(samplerCubeArray(g_bindless_TextureCubeArray[PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m4], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), vec4(mix(_19630.xyz + (_7648 * abs(min(_11253.x, min(_11253.y, _11253.z)))), _7648, vec3(_17751)).xyz, float(PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m2)), _12853).xyz * PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m6) * _11076);
- vec4 _7460 = _16309 + (PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m7 * _11076);
+ vec3 _15431 = _13146 + ((textureLod(samplerCubeArray(g_bindless_TextureCubeArray[PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m4], g_bindless_Sampler[_Globals_.g_sTrilinearWrap]), vec4(mix(_19630.xyz + (_7648 * abs(min(_11253.x, min(_11253.y, _11253.z)))), _7648, vec3(_17751)).xyz, float(PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m2)), _12587).xyz * PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m6) * _11076);
+ vec4 _7460 = _16310 + (PerViewLightingConstantBufferGpu_t._m15._m0[_12609]._m7 * _11076);
if (_13713 > 0.9900000095367431640625)
{
- _13144 = _7460;
- _16310 = _13713;
+ _13148 = _7460;
+ _16311 = _13713;
_14891 = _15431;
_18360 = true;
break;
}
- _13143 = _15431;
+ _13147 = _15431;
_16381 = _7460;
_16479 = _13713;
- _13142 = _13143;
- _16309 = _16381;
+ _13146 = _13147;
+ _16310 = _16381;
_17134 = _16479;
_17021 = _10156;
continue;
}
_8896 = _17020 + 1u;
- _13141 = _13144;
- _16308 = _16310;
- _17116 = _14891;
+ _13145 = _13148;
+ _16309 = _16311;
+ _17119 = _14891;
_17133 = _18360;
_17020 = _8896;
continue;
}
vec4 _11487 = textureLod(sampler2DArray(g_bindless_Texture2DArray_float4[PerViewConstantBufferCsgo_t._m5], g_bindless_Sampler[_Globals_.g_sBilinearClamp]), vec3((vec2(_17751, sqrt(1.0 - max(0.0, dot(_19257.xyz, _6520)))) * 0.984375) + vec2(0.0078125), 1.0).xyz, 0.0);
- vec3 _7300 = mix(_11487.xxx, _11487.yyy, _22671);
+ vec3 _7300 = mix(_11487.xxx, _11487.yyy, _17116);
float _21809 = 1.0 - _11487.y;
- vec3 _15517 = _22671 + ((vec3(1.0) - _22671) * vec3(0.0476190485060214996337890625));
+ vec3 _15517 = _17116 + ((vec3(1.0) - _17116) * vec3(0.0476190485060214996337890625));
vec3 _23208 = ((_7300 * _15517) / (vec3(1.0) - (_15517 * _21809))) * _21809;
vec3 _13436 = vec3(_21711 * _17476).xyz;
- vec3 _22686 = (_13139.xyz + ((_18708 * (vec3(1.0) - (_7300 + _23208))).xyz * _13436).xyz) * (_20195.xyz * pow(1.0 - _20079, _Globals_.g_flMetalnessTransitionBias)).xyz;
- vec4 _11205 = vec4(_22686, input_4.w);
- _11205.x = _22686.x;
+ vec3 _22437 = (_18708 * (vec3(1.0) - (_7300 + _23208))).xyz * _13436;
+ vec3 _9982;
+ vec3 _22798;
+ SPIRV_CROSS_BRANCH
+ if (_7578 > 0.0)
+ {
+ float _17864 = saturate(_8634);
+ float _10543 = saturate((_8634 + 0.20000000298023223876953125) * 0.833333313465118408203125) * 0.833333313465118408203125;
+ _9982 = mix(_22437, mix(pow(_22437, vec3(1.39999997615814208984375, 0.60000002384185791015625, 0.449999988079071044921875)), _22437, vec3(saturate(_17476 * 0.75))), vec3(_7578));
+ _22798 = _13143 + ((PerViewLightingConstantBufferGpu_t._m17.xyz * (_12320 * _7578)) * (((vec3(min(_10543, _17864)) + (vec3(0.5, 0.75, 1.0) * max(_10543 - _17864, 0.0))) * mix(1.0, (0.63999998569488525390625 * pow(1.36000001430511474609375 + (1.2000000476837158203125 * dot(_19257, PerViewLightingConstantBufferGpu_t._m16.xyz)), -1.5)) * (1.32679998874664306640625 + (_17864 * (2.138000011444091796875 + (_17864 * (1.677700042724609375 + (_17864 * (-0.361699998378753662109375))))))), 0.300000011920928955078125)) - vec3(_17864)));
+ }
+ else
+ {
+ _9982 = _22437;
+ _22798 = _13143;
+ }
+ vec3 _22686 = (_22798.xyz + _9982.xyz) * _16308.xyz;
+ float _12931 = _22686.x;
+ vec4 _11205 = vec4(_12931, _22686.yz, input_5.w);
+ _11205.x = _12931;
_11205.y = _22686.y;
_11205.z = _22686.z;
- vec3 _15752 = _11205.xyz + ((_16324 * (vec3(1.0) + (_22671 * ((0.125 * (_19582 * _19582)) * saturate(dot(_17892, _19257)))))).xyz * _13436).xyz;
+ vec3 _15752 = _11205.xyz + ((_16324 * (vec3(1.0) + (_17116 * ((0.125 * (_19582 * _19582)) * saturate(dot(_17892, _19257)))))).xyz * _13436).xyz;
vec4 _20493 = _11205;
_20493.x = _15752.x;
_20493.y = _15752.y;
_20493.z = _15752.z;
- vec3 _15733 = _20493.xyz + ((((_17116 / vec3(_16308)).xyz * min(dot(_18708.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125)) / dot(vec4(_19081, 1.0), (_13141 / vec4(_16308)).xyzw), max((_17751 * PerViewLightingConstantBufferGpu_t._m4.x) + PerViewLightingConstantBufferGpu_t._m4.y, 1.0))).xyz * (_7300 + _23208)).xyz * _13436).xyz;
+ vec3 _15733 = _20493.xyz + ((((_17119 / vec3(_16309)).xyz * min(dot(_18708.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125)) / dot(vec4(_19081, 1.0), (_13145 / vec4(_16309)).xyzw), max((_17751 * PerViewLightingConstantBufferGpu_t._m4.x) + PerViewLightingConstantBufferGpu_t._m4.y, 1.0))).xyz * (_7300 + _23208)).xyz * _13436).xyz;
vec4 _13888 = _20493;
_13888.x = _15733.x;
_13888.y = _15733.y;
@@ -2034,29 +2260,29 @@ PS
if (_Globals_.g_bFogEnabled != 0)
{
vec3 _21493;
- vec3 _6538 = _11901 - PerViewConstantBuffer_t._m6.xyz;
- vec3 _9057 = _6538.xyz;
+ vec3 _23187 = _9737 - PerViewConstantBuffer_t._m7.xyz;
+ vec3 _9057 = _23187.xyz;
vec3 _19340;
do
{
- _21493 = _6538.xyz;
- bool _12893;
- if (dot(_21493, _21493) > PerViewConstantBufferCsgo_t._m21.x)
+ _21493 = _23187.xyz;
+ bool _12895;
+ if (dot(_21493, _21493) > PerViewConstantBufferCsgo_t._m22.x)
{
- _12893 = (_10061.z * PerViewConstantBufferCsgo_t._m21.z) < PerViewConstantBufferCsgo_t._m21.y;
+ _12895 = (_10061.z * PerViewConstantBufferCsgo_t._m22.z) < PerViewConstantBufferCsgo_t._m22.y;
}
else
{
- _12893 = false;
+ _12895 = false;
}
SPIRV_CROSS_BRANCH
- if (_12893)
+ if (_12895)
{
float _17979 = length(_21493);
- vec2 _9342 = saturate(PerViewConstantBufferCsgo_t._m18.xy + (PerViewConstantBufferCsgo_t._m18.zw * vec2(mix(_17979, _17979 * PerViewConstantBufferCsgo_t._m30.y, _Globals_.g_flFogModificationAmount), _10061.z)));
- float _13533 = (pow(_9342.x, PerViewConstantBufferCsgo_t._m19.x) * pow(_9342.y, PerViewConstantBufferCsgo_t._m19.y)) * PerViewConstantBufferCsgo_t._m20.w;
- float _12715 = mix(_13533, _13533 * PerViewConstantBufferCsgo_t._m30.z, _Globals_.g_flFogModificationAmount);
- _19340 = mix(_13888.xyz, vec4(PerViewConstantBufferCsgo_t._m20.xyz, _12715).xyz, vec3(_12715));
+ vec2 _9342 = saturate(PerViewConstantBufferCsgo_t._m19.xy + (PerViewConstantBufferCsgo_t._m19.zw * vec2(mix(_17979, _17979 * PerViewConstantBufferCsgo_t._m32.y, _Globals_.g_flFogModificationAmount), _10061.z)));
+ float _13533 = (pow(_9342.x, PerViewConstantBufferCsgo_t._m20.x) * pow(_9342.y, PerViewConstantBufferCsgo_t._m20.y)) * PerViewConstantBufferCsgo_t._m21.w;
+ float _12715 = mix(_13533, _13533 * PerViewConstantBufferCsgo_t._m32.z, _Globals_.g_flFogModificationAmount);
+ _19340 = mix(_13888.xyz, vec4(PerViewConstantBufferCsgo_t._m21.xyz, _12715).xyz, vec3(_12715));
break;
}
_19340 = _13888.xyz;
@@ -2069,21 +2295,21 @@ PS
vec3 _19341;
do
{
- bool _12894;
- if (dot(_9057, _9057) > PerViewConstantBufferCsgo_t._m25.x)
+ bool _12896;
+ if (dot(_9057, _9057) > PerViewConstantBufferCsgo_t._m26.x)
{
- _12894 = (PerViewConstantBufferCsgo_t._m25.z * _10061.z) < PerViewConstantBufferCsgo_t._m25.y;
+ _12896 = (PerViewConstantBufferCsgo_t._m26.z * _10061.z) < PerViewConstantBufferCsgo_t._m26.y;
}
else
{
- _12894 = false;
+ _12896 = false;
}
- if (_12894)
+ if (_12896)
{
float _17980 = length(_21493);
- float _14602 = saturate(pow(max(0.0, (mix(_17980, _17980 * PerViewConstantBufferCsgo_t._m30.y, _Globals_.g_flFogModificationAmount) * PerViewConstantBufferCsgo_t._m22.y) + PerViewConstantBufferCsgo_t._m22.x), PerViewConstantBufferCsgo_t._m22.w)) * saturate(pow(max(0.0, (_10061.z * PerViewConstantBufferCsgo_t._m23.y) + PerViewConstantBufferCsgo_t._m23.x), PerViewConstantBufferCsgo_t._m23.z));
- float _16973 = saturate(_14602) * mix(PerViewConstantBufferCsgo_t._m25.w, PerViewConstantBufferCsgo_t._m25.w * PerViewConstantBufferCsgo_t._m30.z, _Globals_.g_flFogModificationAmount);
- _19341 = mix(_23944.xyz, vec4((textureLod(samplerCube(g_bindless_TextureCube_float4[PerViewConstantBufferCsgo_t._m6], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), normalize((PerViewConstantBufferCsgo_t._m24 * vec4(_9057, 0.0)).xyz).xyz, PerViewConstantBufferCsgo_t._m23.w * saturate(1.0 - (_14602 * PerViewConstantBufferCsgo_t._m22.z))) * PerViewConstantBufferCsgo_t._m26.x).xyz, _16973).xyz, vec3(_16973));
+ float _14602 = saturate(pow(max(0.0, (mix(_17980, _17980 * PerViewConstantBufferCsgo_t._m32.y, _Globals_.g_flFogModificationAmount) * PerViewConstantBufferCsgo_t._m23.y) + PerViewConstantBufferCsgo_t._m23.x), PerViewConstantBufferCsgo_t._m23.w)) * saturate(pow(max(0.0, (_10061.z * PerViewConstantBufferCsgo_t._m24.y) + PerViewConstantBufferCsgo_t._m24.x), PerViewConstantBufferCsgo_t._m24.z));
+ float _16973 = saturate(_14602) * mix(PerViewConstantBufferCsgo_t._m26.w, PerViewConstantBufferCsgo_t._m26.w * PerViewConstantBufferCsgo_t._m32.z, _Globals_.g_flFogModificationAmount);
+ _19341 = mix(_23944.xyz, vec4((textureLod(samplerCube(g_bindless_TextureCube_float4[PerViewConstantBufferCsgo_t._m6], g_bindless_Sampler[_Globals_.g_sTrilinearClamp]), normalize((PerViewConstantBufferCsgo_t._m25 * vec4(_9057, 0.0)).xyz).xyz, PerViewConstantBufferCsgo_t._m24.w * saturate(1.0 - (_14602 * PerViewConstantBufferCsgo_t._m23.z))) * PerViewConstantBufferCsgo_t._m27.x).xyz, _16973).xyz, vec3(_16973));
break;
}
_19341 = _23944.xyz;
@@ -2101,34 +2327,34 @@ PS
vec3 _19342;
if (_Globals_.g_flSpawnInvulnerability > 0.0)
{
- float _11148 = 1.0 - saturate(dot(_19257, _24735));
- _19342 = mix(_19366.xyz, _Globals_.g_cInvulnerabilityColor * (mix(dot(_19366.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125)), 0.5, 0.5) + (4.0 * pow(mix(_11148 * texelFetch(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], ivec3(ivec2(_11408.xy) & PerViewConstantBufferCsgo_t._m14, 0).xy, 0).y, 1.0, _11148), mix(3.0, 6.0, 1.0 + (sin(PerViewConstantBuffer_t._m0 * 20.0) * 0.5))))), vec3(_Globals_.g_flSpawnInvulnerability));
+ float _11148 = 1.0 - saturate(dot(_19257, _17117.xyz));
+ _19342 = mix(_19366.xyz, _Globals_.g_cInvulnerabilityColor * (mix(dot(_19366.xyz, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125)), 0.5, 0.5) + (4.0 * pow(mix(_11148 * texelFetch(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], ivec3(ivec2(_11408.xy) & PerViewConstantBufferCsgo_t._m15, 0).xy, 0).y, 1.0, _11148), mix(3.0, 6.0, 1.0 + (sin(PerViewConstantBuffer_t._m1 * 20.0) * 0.5))))), vec3(_Globals_.g_flSpawnInvulnerability));
}
else
{
_19342 = _19366.xyz;
}
- vec4 _23946 = _19366;
- _23946.x = _19342.x;
- _23946.y = _19342.y;
- _23946.z = _19342.z;
+ vec4 _23947 = _19366;
+ _23947.x = _19342.x;
+ _23947.y = _19342.y;
+ _23947.z = _19342.z;
SPIRV_CROSS_BRANCH
if (_Globals_.g_vKeychainGhostHandData.w > 0.0)
{
- float _11567 = saturate((smoothstep(6.0, 2.0, distance(_Globals_.g_vKeychainGhostHandData.xyz, _11901)) - 1.0) * (-1.0));
- if ((texelFetch(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], ivec3(ivec2(_11408.xy) & PerViewConstantBufferCsgo_t._m14, 0).xy, 0).y - mix((_11567 * 0.5099999904632568359375) + 0.5, (_11567 * 0.90999996662139892578125) + 0.100000001490116119384765625, smoothstep(0.100000001490116119384765625, 1.0, _Globals_.g_vKeychainGhostHandData.w))) < 0.0)
+ float _11567 = saturate((smoothstep(6.0, 2.0, distance(_Globals_.g_vKeychainGhostHandData.xyz, _9737)) - 1.0) * (-1.0));
+ if ((texelFetch(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], ivec3(ivec2(_11408.xy) & PerViewConstantBufferCsgo_t._m15, 0).xy, 0).y - mix((_11567 * 0.5099999904632568359375) + 0.5, (_11567 * 0.90999996662139892578125) + 0.100000001490116119384765625, smoothstep(0.100000001490116119384765625, 1.0, _Globals_.g_vKeychainGhostHandData.w))) < 0.0)
{
discard;
}
}
- if (input_4.w < 1.0)
+ if (input_5.w < 1.0)
{
- if ((fma(input_4.w, 2.0, -1.5) + texelFetch(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], ivec3(ivec2(_11408.xy) & PerViewConstantBufferCsgo_t._m14, 0).xy, 0).y) < 0.0)
+ if ((fma(input_5.w, 2.0, -1.5) + texelFetch(g_bindless_Texture2D_float4[PerViewConstantBufferCsgo_t._m4], ivec3(ivec2(_11408.xy) & PerViewConstantBufferCsgo_t._m15, 0).xy, 0).y) < 0.0)
{
discard;
}
}
- output_0 = _23946;
+ output_0 = _23947;
}
game/csgo/shaders_vulkan_dir/shaders/vfx/csgo_weapon_sticker.slang
modified • +164 / -153 • changes: 317
Show patch
@@ -300,7 +300,7 @@ PS
Texture2D g_tStickerScratches < Channel(R, Box(TextureStickerScratches), Linear); OutputFormat(BC7); SrgbRead(false); >;
float3 g_vAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.045,.4,1.15).x,-1.4427*log(max(.0001,1-float3(-.045,.4,1.15).y)),2-float3(-.045,.4,1.15).z)); >;
float3 g_vDarkMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.1,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.1,.4,1.08).y)),2-float3(-.1,.4,1.08).z)); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float3 g_vHoloAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.05,.35,1.15).x,-1.4427*log(max(.0001,1-float3(-.05,.35,1.15).y)),2-float3(-.05,.35,1.15).z)); >;
float3 g_vMetallicAlbedoLevels < UiType(VectorText); Expression(float3(-float3(-.45,.4,1.08).x,-1.4427*log(max(.0001,1-float3(-.45,.4,1.08).y)),2-float3(-.45,.4,1.08).z)); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
@@ -390,12 +390,12 @@ PS
#extension GL_EXT_samplerless_texture_functions : require
#extension GL_KHR_shader_subgroup_arithmetic : require
- struct _701
+ struct _953
{
vec4 _m0[3];
};
- struct _911
+ struct _1163
{
vec4 _m0[4];
};
@@ -411,12 +411,12 @@ PS
vec4 _m6;
};
- struct _1269
+ struct _2904
{
_1677 _m0[128];
};
- struct _2848
+ struct _954
{
mat4 _m0[4];
};
@@ -527,15 +527,15 @@ PS
layout(set = 1) uniform _1503 PerViewConstantBuffer_t;
- struct _2145
+ struct _1655
{
vec4 _m0;
vec4 _m1;
vec4 _m2;
vec4 _m3;
vec4 _m4;
- _701 _m5;
- _911 _m6;
+ _953 _m5;
+ _1163 _m6;
vec4 _m7;
vec4 _m8;
vec4 _m9;
@@ -544,7 +544,7 @@ PS
uvec4 _m12;
vec4 _m13;
vec4 _m14;
- _1269 _m15;
+ _2904 _m15;
vec4 _m16;
vec4 _m17;
int _m18;
@@ -554,11 +554,11 @@ PS
float _m22;
float _m23;
float _m24;
- _2848 _m25;
- _911 _m26;
+ _954 _m25;
+ _1163 _m26;
};
- layout(set = 3) uniform _2145 PerViewLightingConstantBufferGpu_t;
+ layout(set = 3) uniform _1655 PerViewLightingConstantBufferGpu_t;
layout(set = 3, binding = 30, std430) readonly buffer g_CullBits
{
@@ -571,33 +571,33 @@ PS
} g_BarnLights_1;
layout(set = 1, binding = 51) uniform texture2D g_tColor;
- layout(set = 1, binding = 20) uniform sampler g_sUserConfigAllowGlobalMipBias;
+ layout(set = 1, binding = 21) uniform sampler g_sUserConfigAllowGlobalMipBias;
layout(set = 1, binding = 54) uniform texture2D g_tAmbientOcclusion;
- layout(set = 1, binding = 19) uniform sampler g_sUserConfig;
+ layout(set = 1, binding = 20) uniform sampler g_sUserConfig;
layout(set = 1, binding = 55) uniform texture2D g_tMetalness;
layout(set = 1, binding = 52) uniform texture2D g_tNormal;
layout(set = 1, binding = 14) uniform sampler g_sAniso;
layout(set = 1, binding = 57) uniform texture2D g_tSticker0;
layout(set = 1, binding = 59) uniform texture2D g_tNormalRoughnessSticker0;
layout(set = 1, binding = 61) uniform texture2D g_tSfxMaskSticker0;
- layout(set = 1, binding = 25) uniform sampler g_sPoint;
+ layout(set = 1, binding = 26) uniform sampler g_sPoint;
layout(set = 1, binding = 60) uniform texture2D g_tGlitterNormalSticker0;
- layout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;
+ layout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;
layout(set = 1, binding = 58) uniform texture2D g_tHoloSpectrumSticker0;
- layout(set = 1, binding = 26) uniform sampler g_sAnisoClampV;
+ layout(set = 1, binding = 27) uniform sampler g_sAnisoClampV;
layout(set = 1, binding = 56) uniform texture2D g_tStickerScratches;
layout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;
- layout(set = 1, binding = 22) uniform sampler g_sCookieSampler;
+ layout(set = 1, binding = 23) uniform sampler g_sCookieSampler;
layout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;
- layout(set = 1, binding = 18) uniform sampler g_sPointClamp;
+ layout(set = 1, binding = 19) uniform sampler g_sPointClamp;
layout(set = 1, binding = 39) uniform texture2D g_tSsao;
- layout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
+ layout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
layout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;
layout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;
- layout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;
+ layout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;
layout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;
layout(set = 1, binding = 40) uniform textureCubeArray g_tEnvironmentMap;
- layout(set = 1, binding = 15) uniform sampler g_sBilinearClamp;
+ layout(set = 1, binding = 16) uniform sampler g_sBilinearClamp;
layout(set = 1, binding = 35) uniform texture2DArray g_tBRDFLookup;
layout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;
@@ -1451,162 +1451,173 @@ PS
{
_21712 = _21711;
}
- float _21713;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735);
+ float _12320;
SPIRV_CROSS_BRANCH
- if (PerViewLightingConstantBufferGpu_t._m18 != 0)
+ if (_8634 > 0.0)
{
- int _23989;
- int _10191;
- float _13147;
- vec3 _14975;
- int _13039 = 0;
- for (;;)
- {
- if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))
- {
- _13147 = 1.0;
- _14975 = vec3(0.0);
- _10191 = -1;
- break;
- }
- vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])
- {
- vec3 _19470 = vec3(_12779, _18322.yz);
- vec2 _24804 = _19470.xy;
- vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));
- vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;
- vec3 _20493 = _19470;
- _20493.x = _20561.x;
- _20493.y = _20561.y;
- _13147 = saturate(_22193.x * _22193.y);
- _14975 = _20493;
- _10191 = _13039;
- break;
- }
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
+ float _12508;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m18 != 0)
{
- vec2 _7045;
- vec2 _7046;
- vec2 _7735;
- float _8969;
- float _8970;
- float _15996;
- float _17302;
- vec2 _18870;
- vec4 _20581;
- vec4 _22024;
- float _23728;
- do
+ int _23989;
+ int _10191;
+ float _13147;
+ vec3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);
- _20581 = PerViewLightingConstantBufferGpu_t._m0;
- _22024 = PerViewLightingConstantBufferGpu_t._m1;
- _17302 = PerViewLightingConstantBufferGpu_t._m2.z;
- _15996 = PerViewLightingConstantBufferGpu_t._m3.z;
- _18870 = vec2(_17302, _15996);
- _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
- _7045 = vec2(_8969, _15996);
- _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
- _7046 = vec2(_17302, _8970);
- _7735 = vec2(_8969, _8970);
- float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));
- bool _12892;
- if (_15310 == 0.0)
- {
- _12892 = true;
- }
- else
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t._m18))
{
- _12892 = _15310 == 1.0;
+ _13147 = 1.0;
+ _14975 = vec3(0.0);
+ _10191 = -1;
+ break;
}
- if (_12892)
+ vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_13039];
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m20[_13039])
{
- _23728 = _15310;
+ vec3 _19470 = vec3(_12779, _18322.yz);
+ vec2 _24804 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m22)) + vec2(PerViewLightingConstantBufferGpu_t._m21));
+ vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m26._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_13039].xy;
+ vec3 _20493 = _19470;
+ _20493.x = _20561.x;
+ _20493.y = _20561.y;
+ _13147 = saturate(_22193.x * _22193.y);
+ _14975 = _20493;
+ _10191 = _13039;
break;
}
- _23728 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17302, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22024.y);
- break;
- } while(false);
- float _12506;
- SPIRV_CROSS_BRANCH
- if (_13147 < 1.0)
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
+ }
+ float _19363;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))
+ vec2 _7045;
+ vec2 _7046;
+ vec2 _7735;
+ float _8969;
+ float _8970;
+ float _15996;
+ float _17302;
+ vec2 _18870;
+ vec4 _20581;
+ vec4 _22024;
+ float _23728;
+ do
{
- int _15335 = _10191 + 1;
- vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];
- vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;
- vec3 _20494;
- _20494.x = _20562.x;
- _20494.y = _20562.y;
- float _12505;
- do
+ float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m19);
+ _20581 = PerViewLightingConstantBufferGpu_t._m0;
+ _22024 = PerViewLightingConstantBufferGpu_t._m1;
+ _17302 = PerViewLightingConstantBufferGpu_t._m2.z;
+ _15996 = PerViewLightingConstantBufferGpu_t._m3.z;
+ _18870 = vec2(_17302, _15996);
+ _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
+ _7045 = vec2(_8969, _15996);
+ _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
+ _7046 = vec2(_17302, _8970);
+ _7735 = vec2(_8969, _8970);
+ float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));
+ bool _12892;
+ if (_15310 == 0.0)
{
- float _20324 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);
- float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _18870).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _7045).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _7046).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _7735).xy, _20324), 0.0)).xyzw, vec4(0.25));
- bool _12893;
- if (_15311 == 0.0)
- {
- _12893 = true;
- }
- else
- {
- _12893 = _15311 == 1.0;
- }
- if (_12893)
+ _12892 = true;
+ }
+ else
+ {
+ _12892 = _15310 == 1.0;
+ }
+ if (_12892)
+ {
+ _23728 = _15310;
+ break;
+ }
+ _23728 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17302, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22024.y);
+ break;
+ } while(false);
+ float _12506;
+ SPIRV_CROSS_BRANCH
+ if (_13147 < 1.0)
+ {
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m18 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m25._m0[_15335];
+ vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m26._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m26._m0[_15335].xy;
+ vec3 _20494;
+ _20494.x = _20562.x;
+ _20494.y = _20562.y;
+ float _12505;
+ do
{
- _12505 = _15311;
+ float _20324 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m19);
+ float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _18870).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _7045).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _7046).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + _7735).xy, _20324), 0.0)).xyzw, vec4(0.25));
+ bool _12893;
+ if (_15311 == 0.0)
+ {
+ _12893 = true;
+ }
+ else
+ {
+ _12893 = _15311 == 1.0;
+ }
+ if (_12893)
+ {
+ _12505 = _15311;
+ break;
+ }
+ _12505 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(_17302, 0.0)).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(_8969, 0.0)).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(0.0, _8970)).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(0.0, _15996)).xy, _20324), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20494.xy, _20324), 0.0) * _22024.y);
break;
- }
- _12505 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(_17302, 0.0)).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(_8969, 0.0)).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(0.0, _8970)).xy, _20324), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20494.xy + vec2(0.0, _15996)).xy, _20324), 0.0)).xyzw, _22024.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20494.xy, _20324), 0.0) * _22024.y);
- break;
- } while(false);
- _7934 = _12505;
+ } while(false);
+ _7934 = _12505;
+ }
+ else
+ {
+ _7934 = 1.0;
+ }
+ _12506 = mix(_7934, _23728, _13147);
}
else
{
- _7934 = 1.0;
+ _12506 = _23728;
}
- _12506 = mix(_7934, _23728, _13147);
+ _19363 = _12506;
}
else
{
- _12506 = _23728;
+ _19363 = 1.0;
}
- _19363 = _12506;
- }
- else
- {
- _19363 = 1.0;
- }
- float _13279 = mix(_19363, 1.0, saturate((distance(_7639.xyz, PerViewConstantBuffer_t._m4) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));
- float _12507;
- if (_24465.y)
- {
- _12507 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_21678.xy * PerViewConstantBuffer_t._m3.xy).xy, 0.0).z);
+ float _13279 = mix(_19363, 1.0, saturate((distance(_7639.xyz, PerViewConstantBuffer_t._m4) * PerViewLightingConstantBufferGpu_t._m24) + PerViewLightingConstantBufferGpu_t._m23));
+ float _12507;
+ if (_24465.y)
+ {
+ _12507 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_21678.xy * PerViewConstantBuffer_t._m3.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12507 = _13279;
+ }
+ _12508 = _12507;
}
else
{
- _12507 = _13279;
+ _12508 = 1.0;
}
- _21713 = _12507;
+ _12320 = _12508;
}
else
{
- _21713 = 1.0;
+ _12320 = 1.0;
}
vec3 _9716;
vec3 _24878;
SPIRV_CROSS_BRANCH
- if ((dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _24735) * _21713) > 0.0)
+ if ((_8634 * _12320) > 0.0)
{
float _11797 = max(0.0, dot(_14788.xyz, PerViewLightingConstantBufferGpu_t._m16.xyz));
vec2 _9840 = max(_11004, vec2(PerViewLightingConstantBufferGpu_t._m16.w));
@@ -1621,7 +1632,7 @@ PS
float _16150 = _9850 + 1.0;
float _6835 = (_16150 * _16150) * 0.125;
float _19569 = 1.0 - _6835;
- vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _21713).xyz;
+ vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m17.xyz * _12320).xyz;
_9716 = PerViewLightingConstantBufferGpu_t._m9.xyz + (vec3(_11797).xyz * _16808);
_24878 = (((_22995 + ((vec3(1.0) - _22995) * pow(max(9.9999999747524270787835121154785e-07, 1.0 - max(0.0, dot(PerViewLightingConstantBufferGpu_t._m16.xyz, _12281))), 5.0))) * ((_24198 * _24198) / ((4.0 * ((_11797 * _19569) + _6835)) * ((max(0.0, dot(_19012, _21889)) * _19569) + _6835)))).xyz * _11797).xyz * _16808;
}
@@ -1822,7 +1833,7 @@ PS
}
else
{
- vec3 _12508;
+ vec3 _12509;
if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)
{
vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);
@@ -1838,7 +1849,7 @@ PS
vec3 _20497 = _14081;
_20497.x = _20564.x;
_20497.y = _20564.y;
- _12508 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20497.xyz, 0.0).xyz;
+ _12509 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20497.xyz, 0.0).xyz;
}
else
{
@@ -1847,9 +1858,9 @@ PS
vec3 _20496 = _13791;
_20496.x = _20563.x;
_20496.y = _20563.y;
- _12508 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20496.xyz, 0.0).xyz;
+ _12509 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20496.xyz, 0.0).xyz;
}
- _21548 = _12508;
+ _21548 = _12509;
}
if (all(equal(_21548.xyz, vec3(0.0))))
{
@@ -1877,8 +1888,8 @@ PS
do
{
float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m19);
- vec2 _14615 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;
- float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));
+ vec2 _14616 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;
+ float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));
bool _12895;
if (_15312 == 0.0)
{
@@ -1893,7 +1904,7 @@ PS
_24972 = _15312;
break;
}
- _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14615, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
+ _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14616, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
break;
} while(false);
vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12608]._m12);
game/csgo/shaders_vulkan_dir/shaders/vfx/generic.slang
modified • +170 / -159 • changes: 329
Show patch
@@ -330,7 +330,7 @@ PS
Texture2D g_tSsao < Attribute("SSAOOcclusionFactor"); SrgbRead(false); >;
Texture2D g_tTintMask < Channel(G, Box(TextureTintMask), Linear); OutputFormat(DXT1); SrgbRead(false); >;
Texture2D g_tZeroth_Moment < Attribute("zeroth_moment"); SrgbRead(true); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float2 g_vMetalnessScaleAndBias < UiType(VectorText); Expression(float2(max(g_vMetalnessRange.x,g_vMetalnessRange.y)-g_vMetalnessRange.x,g_vMetalnessRange.x)); >;
float2 g_vReflectanceScaleAndBias < UiType(VectorText); Expression(float2(max(g_vReflectanceRange.x,g_vReflectanceRange.y)-g_vReflectanceRange.x,g_vReflectanceRange.x)); >;
float2 g_vRoughnessScaleAndBias < UiType(VectorText); Expression(float2(max(1-g_vGlossinessRange.x,1-g_vGlossinessRange.y)-(1-g_vGlossinessRange.y),1-g_vGlossinessRange.y)); >;
@@ -346,9 +346,9 @@ PS
CreateInputTexture2D(TextureGlossiness, Linear, 8, "", "_gloss", "Lighting,30/Gloss,20/10", Default4(0.5, 0.5, 0.5, 0));
CreateInputTexture2D(TextureMetalness, Linear, 8, "", "_metal", "Lighting,30/Metalness,30/10", Default4(0, 0, 0, 0));
CreateInputTexture2D(TextureReflectance, Linear, 8, "", "_refl", "Lighting,30/Reflectance,10/10", Default4(0.1, 0.1, 0.1, 0));
- float2 g_vGlossinessRange < Default(0); UiType(VectorText); UiGroup("Lighting,30/Gloss/20"); >;
- float2 g_vMetalnessRange < Default(0); UiType(VectorText); UiGroup("Lighting,30/Metalness/20"); >;
- float2 g_vReflectanceRange < Default(0); UiType(VectorText); UiGroup("Lighting,30/Reflectance/20"); >;
+ float2 g_vGlossinessRange < Default2(0, 1); UiType(VectorText); UiGroup("Lighting,30/Gloss/20"); >;
+ float2 g_vMetalnessRange < Default2(0, 1); UiType(VectorText); UiGroup("Lighting,30/Metalness/20"); >;
+ float2 g_vReflectanceRange < Default2(0, 1); UiType(VectorText); UiGroup("Lighting,30/Reflectance/20"); >;
// Normal Map
CreateInputTexture2D(TextureNormal, Linear, 8, "NormalizeNormals", "_normal", "Normal Map,20", Default4(0.5, 0.5, 1, 0));
@@ -407,17 +407,17 @@ PS
#endif
#extension GL_KHR_shader_subgroup_arithmetic : require
- struct _2116
+ struct _2368
{
vec4 _m0[3];
};
- struct _2326
+ struct _2578
{
vec4 _m0[4];
};
- struct _1802
+ struct _2918
{
mat4 _m0[4];
};
@@ -487,14 +487,14 @@ PS
layout(set = 1) uniform _2806 PerViewConstantBufferCsgo_t;
- struct _295
+ struct _2166
{
vec4 _m0;
vec4 _m1;
vec4 _m2;
vec4 _m3;
- _2116 _m4;
- _2326 _m5;
+ _2368 _m4;
+ _2578 _m5;
vec4 _m6;
vec4 _m7;
vec4 _m8;
@@ -510,11 +510,11 @@ PS
float _m18;
float _m19;
float _m20;
- _1802 _m21;
- _2326 _m22;
+ _2918 _m21;
+ _2578 _m22;
};
- layout(set = 3) uniform _295 PerViewLightingConstantBufferGpu_t;
+ layout(set = 3) uniform _2166 PerViewLightingConstantBufferGpu_t;
struct _1194
{
@@ -537,18 +537,18 @@ PS
} g_BarnLights_1;
layout(set = 1, binding = 51) uniform texture2D g_tColor;
- layout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;
+ layout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;
layout(set = 1, binding = 52) uniform texture2D g_tNormal;
layout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;
- layout(set = 1, binding = 22) uniform sampler g_sCookieSampler;
+ layout(set = 1, binding = 23) uniform sampler g_sCookieSampler;
layout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;
- layout(set = 1, binding = 18) uniform sampler g_sPointClamp;
+ layout(set = 1, binding = 19) uniform sampler g_sPointClamp;
layout(set = 1, binding = 39) uniform texture2D g_tSsao;
- layout(set = 1, binding = 19) uniform sampler g_sUserConfig;
- layout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
+ layout(set = 1, binding = 20) uniform sampler g_sUserConfig;
+ layout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
layout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;
layout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;
- layout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;
+ layout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;
layout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;
layout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;
@@ -691,167 +691,178 @@ PS
{
_21710 = _21709;
}
- float _21711;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m12.xyz, _24735);
+ float _12320;
SPIRV_CROSS_BRANCH
- if (PerViewLightingConstantBufferGpu_t._m14 != 0)
+ if (_8634 > 0.0)
{
- int _23989;
- int _10191;
- float _13136;
- vec3 _14975;
- int _13039 = 0;
- for (;;)
- {
- if (!(_13039 < PerViewLightingConstantBufferGpu_t._m14))
- {
- _13136 = 1.0;
- _14975 = vec3(0.0);
- _10191 = -1;
- break;
- }
- vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m21._m0[_13039];
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m16[_13039])
- {
- vec3 _19470 = vec3(_12779, _18322.yz);
- vec2 _24804 = _19470.xy;
- vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m18)) + vec2(PerViewLightingConstantBufferGpu_t._m17));
- vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m22._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m22._m0[_13039].xy;
- vec3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13136 = saturate(_22193.x * _22193.y);
- _14975 = _20488;
- _10191 = _13039;
- break;
- }
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
+ float _12504;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m14 != 0)
{
- vec2 _7045;
- vec2 _7046;
- vec2 _7735;
- float _8969;
- float _8970;
- float _15996;
- float _17299;
- vec2 _18870;
- vec4 _20581;
- vec4 _22023;
- float _23727;
- do
+ int _23989;
+ int _10191;
+ float _13136;
+ vec3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m15);
- _20581 = PerViewLightingConstantBufferGpu_t._m0;
- _22023 = PerViewLightingConstantBufferGpu_t._m1;
- _17299 = PerViewLightingConstantBufferGpu_t._m2.z;
- _15996 = PerViewLightingConstantBufferGpu_t._m3.z;
- _18870 = vec2(_17299, _15996);
- _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
- _7045 = vec2(_8969, _15996);
- _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
- _7046 = vec2(_17299, _8970);
- _7735 = vec2(_8969, _8970);
- float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));
- bool _12887;
- if (_15310 == 0.0)
- {
- _12887 = true;
- }
- else
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t._m14))
{
- _12887 = _15310 == 1.0;
+ _13136 = 1.0;
+ _14975 = vec3(0.0);
+ _10191 = -1;
+ break;
}
- if (_12887)
+ vec4 _18322 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m21._m0[_13039];
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m16[_13039])
{
- _23727 = _15310;
+ vec3 _19470 = vec3(_12779, _18322.yz);
+ vec2 _24804 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m18)) + vec2(PerViewLightingConstantBufferGpu_t._m17));
+ vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m22._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m22._m0[_13039].xy;
+ vec3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13136 = saturate(_22193.x * _22193.y);
+ _14975 = _20488;
+ _10191 = _13039;
break;
}
- _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22023.y);
- break;
- } while(false);
- float _12502;
- SPIRV_CROSS_BRANCH
- if (_13136 < 1.0)
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
+ }
+ float _19363;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t._m14 - 1))
+ vec2 _7045;
+ vec2 _7046;
+ vec2 _7735;
+ float _8969;
+ float _8970;
+ float _15996;
+ float _17299;
+ vec2 _18870;
+ vec4 _20581;
+ vec4 _22023;
+ float _23727;
+ do
{
- int _15335 = _10191 + 1;
- vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m21._m0[_15335];
- vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m22._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m22._m0[_15335].xy;
- vec3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- float _12501;
- do
+ float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m15);
+ _20581 = PerViewLightingConstantBufferGpu_t._m0;
+ _22023 = PerViewLightingConstantBufferGpu_t._m1;
+ _17299 = PerViewLightingConstantBufferGpu_t._m2.z;
+ _15996 = PerViewLightingConstantBufferGpu_t._m3.z;
+ _18870 = vec2(_17299, _15996);
+ _8969 = PerViewLightingConstantBufferGpu_t._m2.y;
+ _7045 = vec2(_8969, _15996);
+ _8970 = PerViewLightingConstantBufferGpu_t._m3.y;
+ _7046 = vec2(_17299, _8970);
+ _7735 = vec2(_8969, _8970);
+ float _15310 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _18870).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7045).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7046).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + _7735).xy, _21452), 0.0)).xyzw, vec4(0.25));
+ bool _12887;
+ if (_15310 == 0.0)
{
- float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m15);
- float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));
- bool _12888;
- if (_15311 == 0.0)
- {
- _12888 = true;
- }
- else
- {
- _12888 = _15311 == 1.0;
- }
- if (_12888)
+ _12887 = true;
+ }
+ else
+ {
+ _12887 = _15310 == 1.0;
+ }
+ if (_12887)
+ {
+ _23727 = _15310;
+ break;
+ }
+ _23727 = ((_15310 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_17299, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(_8969, 0.0)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _8970)).xy, _21452), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14975.xy + vec2(0.0, _15996)).xy, _21452), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, _21452), 0.0) * _22023.y);
+ break;
+ } while(false);
+ float _12502;
+ SPIRV_CROSS_BRANCH
+ if (_13136 < 1.0)
+ {
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m14 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19671 = vec4(input_0.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m21._m0[_15335];
+ vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m22._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m22._m0[_15335].xy;
+ vec3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ float _12501;
+ do
{
- _12501 = _15311;
+ float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m15);
+ float _15311 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _18870).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7045).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7046).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + _7735).xy, _20322), 0.0)).xyzw, vec4(0.25));
+ bool _12888;
+ if (_15311 == 0.0)
+ {
+ _12888 = true;
+ }
+ else
+ {
+ _12888 = _15311 == 1.0;
+ }
+ if (_12888)
+ {
+ _12501 = _15311;
+ break;
+ }
+ _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22023.y);
break;
- }
- _12501 = ((_15311 * (_20581.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_17299, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(_8969, 0.0)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _8970)).xy, _20322), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_20489.xy + vec2(0.0, _15996)).xy, _20322), 0.0)).xyzw, _22023.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, _20322), 0.0) * _22023.y);
- break;
- } while(false);
- _7934 = _12501;
+ } while(false);
+ _7934 = _12501;
+ }
+ else
+ {
+ _7934 = 1.0;
+ }
+ _12502 = mix(_7934, _23727, _13136);
}
else
{
- _7934 = 1.0;
+ _12502 = _23727;
}
- _12502 = mix(_7934, _23727, _13136);
+ _19363 = _12502;
}
else
{
- _12502 = _23727;
+ _19363 = 1.0;
}
- _19363 = _12502;
- }
- else
- {
- _19363 = 1.0;
- }
- float _13279 = mix(_19363, 1.0, saturate((distance(_11095.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m20) + PerViewLightingConstantBufferGpu_t._m19));
- float _12503;
- if (_24465.y)
- {
- _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ float _13279 = mix(_19363, 1.0, saturate((distance(_11095.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m20) + PerViewLightingConstantBufferGpu_t._m19));
+ float _12503;
+ if (_24465.y)
+ {
+ _12503 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_11408.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12503 = _13279;
+ }
+ _12504 = _12503;
}
else
{
- _12503 = _13279;
+ _12504 = 1.0;
}
- _21711 = _12503;
+ _12320 = _12504;
}
else
{
- _21711 = 1.0;
+ _12320 = 1.0;
}
- vec3 _21712;
+ vec3 _21711;
SPIRV_CROSS_BRANCH
- if ((dot(PerViewLightingConstantBufferGpu_t._m12.xyz, _24735) * _21711) > 0.0)
+ if ((_8634 * _12320) > 0.0)
{
- _21712 = PerViewLightingConstantBufferGpu_t._m8.xyz + (vec3(max(0.0, dot(_24299.xyz, PerViewLightingConstantBufferGpu_t._m12.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m13.xyz * _21711).xyz);
+ _21711 = PerViewLightingConstantBufferGpu_t._m8.xyz + (vec3(max(0.0, dot(_24299.xyz, PerViewLightingConstantBufferGpu_t._m12.xyz))).xyz * (PerViewLightingConstantBufferGpu_t._m13.xyz * _12320).xyz);
}
else
{
- _21712 = PerViewLightingConstantBufferGpu_t._m8.xyz;
+ _21711 = PerViewLightingConstantBufferGpu_t._m8.xyz;
}
bvec4 _24467 = notEqual(PerViewConstantBufferCsgo_t._m2, ivec4(0));
bool _20061 = _24467.x;
@@ -875,7 +886,7 @@ PS
uint _10838 = PerViewLightingConstantBufferGpu_t._m9.y + (((_12083.y * PerViewLightingConstantBufferGpu_t._m10.y) + _12083.x) * PerViewLightingConstantBufferGpu_t._m9.z);
uint _23393 = PerViewLightingConstantBufferGpu_t._m9.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t._m11.x, 0.0, PerViewLightingConstantBufferGpu_t._m11.y)) * PerViewLightingConstantBufferGpu_t._m9.z);
vec3 _13155;
- _13155 = _21712;
+ _13155 = _21711;
uint _21567;
vec3 _13156;
uint _16208 = 0u;
@@ -888,7 +899,7 @@ PS
uint _14475 = subgroupOr(g_CullBits_1._m0[_10838 + _16208] & g_CullBits_1._m0[_23393 + _16208]);
_13156 = _13155;
uint _20344;
- vec3 _12505;
+ vec3 _12506;
uint _16209 = _14475;
for (;;)
{
@@ -928,7 +939,7 @@ PS
}
if (_12889)
{
- _12505 = _13156;
+ _12506 = _13156;
break;
}
float _23571 = 2.0 * g_BarnLights_1._m0[_12608]._m5.y;
@@ -1038,7 +1049,7 @@ PS
}
else
{
- vec3 _12504;
+ vec3 _12505;
if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)
{
vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);
@@ -1054,7 +1065,7 @@ PS
vec3 _20491 = _14081;
_20491.x = _20564.x;
_20491.y = _20564.y;
- _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;
+ _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20491.xyz, 0.0).xyz;
}
else
{
@@ -1063,13 +1074,13 @@ PS
vec3 _20490 = _13791;
_20490.x = _20563.x;
_20490.y = _20563.y;
- _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;
+ _12505 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20490.xyz, 0.0).xyz;
}
- _21548 = _12504;
+ _21548 = _12505;
}
if (all(equal(_21548.xyz, vec3(0.0))))
{
- _12505 = _13156;
+ _12506 = _13156;
break;
}
vec3 _19630;
@@ -1092,8 +1103,8 @@ PS
do
{
float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t._m15);
- vec2 _14615 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;
- float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));
+ vec2 _14616 = vec3(fma(_19629.xy, g_BarnLights_1._m0[_12608]._m8.zw, g_BarnLights_1._m0[_12608]._m8.xy), _19629.z).xy;
+ float _15312 = dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0)).xyzw, vec4(0.25));
bool _12890;
if (_15312 == 0.0)
{
@@ -1108,13 +1119,13 @@ PS
_24972 = _15312;
break;
}
- _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14615 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14615, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
+ _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t._m0.w * 4.0)) + dot(vec4(textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.z, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(PerViewLightingConstantBufferGpu_t._m2.y, 0.0)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.y)).xy, _11455), 0.0), textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3((_14616 + vec2(0.0, PerViewLightingConstantBufferGpu_t._m3.z)).xy, _11455), 0.0)).xyzw, PerViewLightingConstantBufferGpu_t._m1.xxxx)) + (textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14616, _11455), 0.0) * PerViewLightingConstantBufferGpu_t._m1.y);
break;
} while(false);
vec3 _19878 = _21548.xyz * mix(1.0, _24972, g_BarnLights_1._m0[_12608]._m12);
if (all(equal(_19878.xyz, vec3(0.0))))
{
- _12505 = _13156;
+ _12506 = _13156;
break;
}
_19630 = _19878;
@@ -1123,10 +1134,10 @@ PS
{
_19630 = _21548;
}
- _12505 = _13156.xyz + (vec3(max(0.0, dot(_24299.xyz, _11179.xyz))).xyz * _19630.xyz);
+ _12506 = _13156.xyz + (vec3(max(0.0, dot(_24299.xyz, _11179.xyz))).xyz * _19630.xyz);
break;
} while(false);
- _13156 = _12505;
+ _13156 = _12506;
_16209 = _20344;
continue;
}
game/csgo/shaders_vulkan_dir/shaders/vfx/grasstile.slang
modified • +163 / -152 • changes: 315
Show patch
@@ -330,7 +330,7 @@ PS
Texture2D g_tParticleShadowBuffer < Attribute("ParticleShadowBuffer"); SrgbRead(false); >;
Texture2D g_tShadowDepthBufferDepth < Attribute("ShadowDepthBuffer"); SrgbRead(false); >;
Texture2D g_tSsao < Attribute("SSAOOcclusionFactor"); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float3 g_vGrassColorTint < UiType(Color); Expression(SrgbGammaToLinear(this)); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
@@ -353,17 +353,17 @@ PS
// Source 2 Viewer - https://valveresourceformat.github.io
// SPIR-V source, HLSL reflection with SPIRV-Cross by KhronosGroup
- struct _1108
+ struct _1402
{
float4 _m0[3];
};
- struct _1890
+ struct _2100
{
float4 _m0[4];
};
- struct _2452
+ struct _371
{
column_major float4x4 _m0[4];
};
@@ -430,7 +430,7 @@ PS
float4 PerViewLightingConstantBufferGpu_t_1_m1 : packoffset(c1);
float4 PerViewLightingConstantBufferGpu_t_1_m2 : packoffset(c2);
float4 PerViewLightingConstantBufferGpu_t_1_m3 : packoffset(c3);
- _1108 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c7);
+ _1402 PerViewLightingConstantBufferGpu_t_1_m4 : packoffset(c7);
float4 PerViewLightingConstantBufferGpu_t_1_m5 : packoffset(c18);
uint4 PerViewLightingConstantBufferGpu_t_1_m6 : packoffset(c19);
uint4 PerViewLightingConstantBufferGpu_t_1_m7 : packoffset(c22);
@@ -444,8 +444,8 @@ PS
float PerViewLightingConstantBufferGpu_t_1_m15 : packoffset(c1955.y);
float PerViewLightingConstantBufferGpu_t_1_m16 : packoffset(c1955.z);
float PerViewLightingConstantBufferGpu_t_1_m17 : packoffset(c1955.w);
- _2452 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);
- _1890 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);
+ _371 PerViewLightingConstantBufferGpu_t_1_m18 : packoffset(c1956);
+ _2100 PerViewLightingConstantBufferGpu_t_1_m19 : packoffset(c1988);
};
cbuffer PerViewConstantBuffer_t : register(b1, space1)
@@ -463,14 +463,14 @@ PS
Texture2D<float4> g_tGrassQuadSpecularArray : register(t44, space1);
SamplerState AddressU_Clamp_AddressV_Clamp_Filter_Anisotropic_MaxAniso_8 : register(s15, space1);
Texture2D<float4> g_tAmbientOcclusion : register(t53, space1);
- SamplerState g_sUserConfig : register(s21, space1);
- SamplerComparisonState g_tShadowDepthBufferCmpSampler : register(s25, space1);
+ SamplerState g_sUserConfig : register(s22, space1);
+ SamplerComparisonState g_tShadowDepthBufferCmpSampler : register(s26, space1);
Texture2D<float4> g_tShadowDepthBufferDepth : register(t36, space1);
Texture2D<float4> g_tParticleShadowBuffer : register(t51, space1);
- SamplerState g_sTrilinearClamp : register(s19, space1);
- SamplerState g_sTrilinearWrap : register(s18, space1);
+ SamplerState g_sTrilinearClamp : register(s20, space1);
+ SamplerState g_sTrilinearWrap : register(s19, space1);
Texture3D<float4> g_tLightCookieTexture : register(t34, space1);
- SamplerState g_sCookieSampler : register(s24, space1);
+ SamplerState g_sCookieSampler : register(s25, space1);
TextureCube<float4> g_tFogCubeTexture : register(t42, space1);
static float4 gl_FragCoord;
@@ -513,167 +513,178 @@ PS
float4 _19068 = g_tAmbientOcclusion.Sample(g_sUserConfig, input_2.xy);
float3 _24735 = _7029.xyz;
float4 _23875 = float4(_24735, 1.0f);
- float _21709;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735);
+ float _12320;
[branch]
- if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)
+ if (_8634 > 0.0f)
{
- int _23989;
- int _10191;
- float _13136;
- float3 _14975;
- int _13039 = 0;
- for (;;)
- {
- if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))
- {
- _13136 = 1.0f;
- _14975 = 0.0f.xxx;
- _10191 = -1;
- break;
- }
- float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_0.xyz, 1.0f));
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])
- {
- float3 _19470 = float3(_12779, _18322.yz);
- float2 _24804 = _19470.xy;
- float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);
- float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;
- float3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13136 = saturate(_22193.x * _22193.y);
- _14975 = _20488;
- _10191 = _13039;
- break;
- }
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _19363;
- if (_10191 >= 0)
+ float _12504;
+ [branch]
+ if (PerViewLightingConstantBufferGpu_t_1_m11 != 0)
{
- float2 _7045;
- float2 _7046;
- float2 _7735;
- float _8969;
- float _8970;
- float _15996;
- float _17299;
- float2 _18870;
- float4 _20581;
- float4 _22023;
- float _23727;
- do
+ int _23989;
+ int _10191;
+ float _13136;
+ float3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12);
- _20581 = PerViewLightingConstantBufferGpu_t_1_m0;
- _22023 = PerViewLightingConstantBufferGpu_t_1_m1;
- _17299 = PerViewLightingConstantBufferGpu_t_1_m2.z;
- _15996 = PerViewLightingConstantBufferGpu_t_1_m3.z;
- _18870 = float2(_17299, _15996);
- _8969 = PerViewLightingConstantBufferGpu_t_1_m2.y;
- _7045 = float2(_8969, _15996);
- _8970 = PerViewLightingConstantBufferGpu_t_1_m3.y;
- _7046 = float2(_17299, _8970);
- _7735 = float2(_8969, _8970);
- float _15310 = dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _18870).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _7045).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _7046).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _7735).xy, _21452)).xyzw, 0.25f.xxxx);
- bool _12885;
- if (_15310 == 0.0f)
- {
- _12885 = true;
- }
- else
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t_1_m11))
{
- _12885 = _15310 == 1.0f;
+ _13136 = 1.0f;
+ _14975 = 0.0f.xxx;
+ _10191 = -1;
+ break;
}
- if (_12885)
+ float4 _18322 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_13039], float4(input_0.xyz, 1.0f));
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t_1_m13[_13039])
{
- _23727 = _15310;
+ float3 _19470 = float3(_12779, _18322.yz);
+ float2 _24804 = _19470.xy;
+ float2 _22193 = 1.0f.xx - clamp((abs(_24804) * PerViewLightingConstantBufferGpu_t_1_m15.xx) + PerViewLightingConstantBufferGpu_t_1_m14.xx, 0.0f.xx, 1.0f.xx);
+ float2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_13039].xy;
+ float3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13136 = saturate(_22193.x * _22193.y);
+ _14975 = _20488;
+ _10191 = _13039;
break;
}
- _23727 = ((_15310 * (_20581.w * 4.0f)) + dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(_17299, 0.0f)).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(_8969, 0.0f)).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(0.0f, _8970)).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(0.0f, _15996)).xy, _21452)).xyzw, _22023.xxxx)) + (g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, _14975.xy, _21452) * _22023.y);
- break;
- } while(false);
- float _12502;
- [branch]
- if (_13136 < 1.0f)
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
+ }
+ float _19363;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))
+ float2 _7045;
+ float2 _7046;
+ float2 _7735;
+ float _8969;
+ float _8970;
+ float _15996;
+ float _17299;
+ float2 _18870;
+ float4 _20581;
+ float4 _22023;
+ float _23727;
+ do
{
- int _15335 = _10191 + 1;
- float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_0.xyz, 1.0f));
- float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;
- float3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- float _12501;
- do
+ float _21452 = saturate(_14975.z + PerViewLightingConstantBufferGpu_t_1_m12);
+ _20581 = PerViewLightingConstantBufferGpu_t_1_m0;
+ _22023 = PerViewLightingConstantBufferGpu_t_1_m1;
+ _17299 = PerViewLightingConstantBufferGpu_t_1_m2.z;
+ _15996 = PerViewLightingConstantBufferGpu_t_1_m3.z;
+ _18870 = float2(_17299, _15996);
+ _8969 = PerViewLightingConstantBufferGpu_t_1_m2.y;
+ _7045 = float2(_8969, _15996);
+ _8970 = PerViewLightingConstantBufferGpu_t_1_m3.y;
+ _7046 = float2(_17299, _8970);
+ _7735 = float2(_8969, _8970);
+ float _15310 = dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _18870).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _7045).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _7046).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + _7735).xy, _21452)).xyzw, 0.25f.xxxx);
+ bool _12885;
+ if (_15310 == 0.0f)
{
- float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12);
- float _15311 = dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _18870).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _7045).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _7046).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _7735).xy, _20322)).xyzw, 0.25f.xxxx);
- bool _12886;
- if (_15311 == 0.0f)
- {
- _12886 = true;
- }
- else
- {
- _12886 = _15311 == 1.0f;
- }
- if (_12886)
+ _12885 = true;
+ }
+ else
+ {
+ _12885 = _15310 == 1.0f;
+ }
+ if (_12885)
+ {
+ _23727 = _15310;
+ break;
+ }
+ _23727 = ((_15310 * (_20581.w * 4.0f)) + dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(_17299, 0.0f)).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(_8969, 0.0f)).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(0.0f, _8970)).xy, _21452), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14975.xy + float2(0.0f, _15996)).xy, _21452)).xyzw, _22023.xxxx)) + (g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, _14975.xy, _21452) * _22023.y);
+ break;
+ } while(false);
+ float _12502;
+ [branch]
+ if (_13136 < 1.0f)
+ {
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t_1_m11 - 1))
+ {
+ int _15335 = _10191 + 1;
+ float4 _19671 = mul(PerViewLightingConstantBufferGpu_t_1_m18._m0[_15335], float4(input_0.xyz, 1.0f));
+ float2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t_1_m19._m0[_15335].xy;
+ float3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ float _12501;
+ do
{
- _12501 = _15311;
+ float _20322 = saturate(_19671.z + PerViewLightingConstantBufferGpu_t_1_m12);
+ float _15311 = dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _18870).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _7045).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _7046).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + _7735).xy, _20322)).xyzw, 0.25f.xxxx);
+ bool _12886;
+ if (_15311 == 0.0f)
+ {
+ _12886 = true;
+ }
+ else
+ {
+ _12886 = _15311 == 1.0f;
+ }
+ if (_12886)
+ {
+ _12501 = _15311;
+ break;
+ }
+ _12501 = ((_15311 * (_20581.w * 4.0f)) + dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(_17299, 0.0f)).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(_8969, 0.0f)).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(0.0f, _8970)).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(0.0f, _15996)).xy, _20322)).xyzw, _22023.xxxx)) + (g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, _20489.xy, _20322) * _22023.y);
break;
- }
- _12501 = ((_15311 * (_20581.w * 4.0f)) + dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(_17299, 0.0f)).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(_8969, 0.0f)).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(0.0f, _8970)).xy, _20322), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_20489.xy + float2(0.0f, _15996)).xy, _20322)).xyzw, _22023.xxxx)) + (g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, _20489.xy, _20322) * _22023.y);
- break;
- } while(false);
- _7934 = _12501;
+ } while(false);
+ _7934 = _12501;
+ }
+ else
+ {
+ _7934 = 1.0f;
+ }
+ _12502 = lerp(_7934, _23727, _13136);
}
else
{
- _7934 = 1.0f;
+ _12502 = _23727;
}
- _12502 = lerp(_7934, _23727, _13136);
+ _19363 = _12502;
}
else
{
- _12502 = _23727;
+ _19363 = 1.0f;
}
- _19363 = _12502;
- }
- else
- {
- _19363 = 1.0f;
- }
- float _12513 = lerp(_19363, 1.0f, saturate((distance(_10753.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));
- float _12503;
- if (bool4(PerViewConstantBufferCsgo_t_1_m0.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m0.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m0.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m0.w != int4(0, 0, 0, 0).w).y)
- {
- _12503 = min(_12513, g_tParticleShadowBuffer.SampleLevel(g_sTrilinearClamp, (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);
+ float _12513 = lerp(_19363, 1.0f, saturate((distance(_10753.xyz, PerViewConstantBuffer_t_1_m3) * PerViewLightingConstantBufferGpu_t_1_m17) + PerViewLightingConstantBufferGpu_t_1_m16));
+ float _12503;
+ if (bool4(PerViewConstantBufferCsgo_t_1_m0.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m0.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m0.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m0.w != int4(0, 0, 0, 0).w).y)
+ {
+ _12503 = min(_12513, g_tParticleShadowBuffer.SampleLevel(g_sTrilinearClamp, (_11408.xy * PerViewConstantBuffer_t_1_m2.xy).xy, 0.0f).z);
+ }
+ else
+ {
+ _12503 = _12513;
+ }
+ _12504 = _12503;
}
else
{
- _12503 = _12513;
+ _12504 = 1.0f;
}
- _21709 = _12503;
+ _12320 = _12504;
}
else
{
- _21709 = 1.0f;
+ _12320 = 1.0f;
}
- float3 _21710;
+ float3 _21709;
[branch]
- if ((dot(PerViewLightingConstantBufferGpu_t_1_m9.xyz, _24735) * _21709) > 0.0f)
+ if ((_8634 * _12320) > 0.0f)
{
- _21710 = PerViewLightingConstantBufferGpu_t_1_m5.xyz + (max(0.0f, dot(_7029.xyz, PerViewLightingConstantBufferGpu_t_1_m9.xyz)).xxx.xyz * (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _21709).xyz);
+ _21709 = PerViewLightingConstantBufferGpu_t_1_m5.xyz + (max(0.0f, dot(_7029.xyz, PerViewLightingConstantBufferGpu_t_1_m9.xyz)).xxx.xyz * (PerViewLightingConstantBufferGpu_t_1_m10.xyz * _12320).xyz);
}
else
{
- _21710 = PerViewLightingConstantBufferGpu_t_1_m5.xyz;
+ _21709 = PerViewLightingConstantBufferGpu_t_1_m5.xyz;
}
bool4 _24465 = bool4(PerViewConstantBufferCsgo_t_1_m1.x != int4(0, 0, 0, 0).x, PerViewConstantBufferCsgo_t_1_m1.y != int4(0, 0, 0, 0).y, PerViewConstantBufferCsgo_t_1_m1.z != int4(0, 0, 0, 0).z, PerViewConstantBufferCsgo_t_1_m1.w != int4(0, 0, 0, 0).w);
bool _20059 = _24465.x;
@@ -697,7 +708,7 @@ PS
uint _10838 = PerViewLightingConstantBufferGpu_t_1_m6.y + (((_12083.y * PerViewLightingConstantBufferGpu_t_1_m7.y) + _12083.x) * PerViewLightingConstantBufferGpu_t_1_m6.z);
uint _23393 = PerViewLightingConstantBufferGpu_t_1_m6.x + (uint(clamp(_19364.w * PerViewLightingConstantBufferGpu_t_1_m8.x, 0.0f, PerViewLightingConstantBufferGpu_t_1_m8.y)) * PerViewLightingConstantBufferGpu_t_1_m6.z);
float3 _13155;
- _13155 = _21710;
+ _13155 = _21709;
uint _21567;
float3 _13156;
uint _16208 = 0u;
@@ -710,7 +721,7 @@ PS
uint _14475 = WaveActiveBitOr(g_CullBits.Load<uint>((_10838 + _16208) * 4 + 0) & g_CullBits.Load<uint>((_23393 + _16208) * 4 + 0));
_13156 = _13155;
uint _20344;
- float3 _12505;
+ float3 _12506;
uint _16209 = _14475;
for (;;)
{
@@ -753,7 +764,7 @@ PS
}
if (_12887)
{
- _12505 = _13156;
+ _12506 = _13156;
break;
}
float _23571 = 2.0f * g_BarnLights.Load<float4>(_12608 * 480 + 176).y;
@@ -863,7 +874,7 @@ PS
}
else
{
- float3 _12504;
+ float3 _12505;
if (g_BarnLights.Load<float4>(_12608 * 480 + 160).w < 0.0f)
{
float4 _17795 = float4(-g_BarnLights.Load<float4>(_12608 * 480 + 176).xyz, g_BarnLights.Load<float4>(_12608 * 480 + 176).w);
@@ -879,7 +890,7 @@ PS
float3 _20491 = _14081;
_20491.x = _20564.x;
_20491.y = _20564.y;
- _12504 = _17828.xyz * g_tLightCookieTexture.SampleLevel(g_sTrilinearWrap, _20491.xyz, 0.0f).xyz;
+ _12505 = _17828.xyz * g_tLightCookieTexture.SampleLevel(g_sTrilinearWrap, _20491.xyz, 0.0f).xyz;
}
else
{
@@ -888,13 +899,13 @@ PS
float3 _20490 = _13791;
_20490.x = _20563.x;
_20490.y = _20563.y;
- _12504 = _17828.xyz * g_tLightCookieTexture.SampleLevel(g_sCookieSampler, _20490.xyz, 0.0f).xyz;
+ _12505 = _17828.xyz * g_tLightCookieTexture.SampleLevel(g_sCookieSampler, _20490.xyz, 0.0f).xyz;
}
- _21548 = _12504;
+ _21548 = _12505;
}
if (all(bool3(_21548.xyz.x == 0.0f.xxx.x, _21548.xyz.y == 0.0f.xxx.y, _21548.xyz.z == 0.0f.xxx.z)))
{
- _12505 = _13156;
+ _12506 = _13156;
break;
}
float3 _19630;
@@ -917,8 +928,8 @@ PS
do
{
float _11455 = saturate(_19629.z + PerViewLightingConstantBufferGpu_t_1_m12);
- float2 _14615 = float3(mad(_19629.xy, g_BarnLights.Load<float4>(_12608 * 480 + 208).zw, g_BarnLights.Load<float4>(_12608 * 480 + 208).xy), _19629.z).xy;
- float _15312 = dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(PerViewLightingConstantBufferGpu_t_1_m2.z, PerViewLightingConstantBufferGpu_t_1_m3.z)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(PerViewLightingConstantBufferGpu_t_1_m2.y, PerViewLightingConstantBufferGpu_t_1_m3.z)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(PerViewLightingConstantBufferGpu_t_1_m2.z, PerViewLightingConstantBufferGpu_t_1_m3.y)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(PerViewLightingConstantBufferGpu_t_1_m2.y, PerViewLightingConstantBufferGpu_t_1_m3.y)).xy, _11455)).xyzw, 0.25f.xxxx);
+ float2 _14616 = float3(mad(_19629.xy, g_BarnLights.Load<float4>(_12608 * 480 + 208).zw, g_BarnLights.Load<float4>(_12608 * 480 + 208).xy), _19629.z).xy;
+ float _15312 = dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(PerViewLightingConstantBufferGpu_t_1_m2.z, PerViewLightingConstantBufferGpu_t_1_m3.z)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(PerViewLightingConstantBufferGpu_t_1_m2.y, PerViewLightingConstantBufferGpu_t_1_m3.z)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(PerViewLightingConstantBufferGpu_t_1_m2.z, PerViewLightingConstantBufferGpu_t_1_m3.y)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(PerViewLightingConstantBufferGpu_t_1_m2.y, PerViewLightingConstantBufferGpu_t_1_m3.y)).xy, _11455)).xyzw, 0.25f.xxxx);
bool _12888;
if (_15312 == 0.0f)
{
@@ -933,14 +944,14 @@ PS
_24972 = _15312;
break;
}
- _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t_1_m0.w * 4.0f)) + dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(PerViewLightingConstantBufferGpu_t_1_m2.z, 0.0f)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(PerViewLightingConstantBufferGpu_t_1_m2.y, 0.0f)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(0.0f, PerViewLightingConstantBufferGpu_t_1_m3.y)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14615 + float2(0.0f, PerViewLightingConstantBufferGpu_t_1_m3.z)).xy, _11455)).xyzw, PerViewLightingConstantBufferGpu_t_1_m1.xxxx)) + (g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, _14615, _11455) * PerViewLightingConstantBufferGpu_t_1_m1.y);
+ _24972 = ((_15312 * (PerViewLightingConstantBufferGpu_t_1_m0.w * 4.0f)) + dot(float4(g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(PerViewLightingConstantBufferGpu_t_1_m2.z, 0.0f)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(PerViewLightingConstantBufferGpu_t_1_m2.y, 0.0f)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(0.0f, PerViewLightingConstantBufferGpu_t_1_m3.y)).xy, _11455), g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, (_14616 + float2(0.0f, PerViewLightingConstantBufferGpu_t_1_m3.z)).xy, _11455)).xyzw, PerViewLightingConstantBufferGpu_t_1_m1.xxxx)) + (g_tShadowDepthBufferDepth.SampleCmpLevelZero(g_tShadowDepthBufferCmpSampler, _14616, _11455) * PerViewLightingConstantBufferGpu_t_1_m1.y);
break;
} while(false);
float3 _19878 = _21548.xyz * lerp(1.0f, _24972, g_BarnLights.Load<float>(_12608 * 480 + 260));
float3 _16449 = _19878.xyz;
if (all(bool3(_16449.x == 0.0f.xxx.x, _16449.y == 0.0f.xxx.y, _16449.z == 0.0f.xxx.z)))
{
- _12505 = _13156;
+ _12506 = _13156;
break;
}
_19630 = _19878;
@@ -949,10 +960,10 @@ PS
{
_19630 = _21548;
}
- _12505 = _13156.xyz + (max(0.0f, dot(_7029.xyz, _11179.xyz)).xxx.xyz * _19630.xyz);
+ _12506 = _13156.xyz + (max(0.0f, dot(_7029.xyz, _11179.xyz)).xxx.xyz * _19630.xyz);
break;
} while(false);
- _13156 = _12505;
+ _13156 = _12506;
_16209 = _20344;
continue;
}
game/csgo/shaders_vulkan_dir/shaders/vfx/inferno.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -176,7 +176,7 @@ PS
layout(set = 1, binding = 50) uniform texture2D g_tSceneDepth;
layout(set = 1, binding = 51) uniform texture3D g_tSmokeNoiseTex;
- layout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;
+ layout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;
layout(location = 0) in vec2 input_0;
layout(location = 2) in vec3 input_2;
game/csgo/shaders_vulkan_dir/shaders/vfx/lpv_debug_grid.slang
modified • +104 / -93 • changes: 197
Show patch
@@ -288,7 +288,7 @@ PS
Texture2D g_tParticleShadowBuffer < Attribute("ParticleShadowBuffer"); SrgbRead(false); >;
Texture2D g_tShadowDepthBufferDepth < Attribute("ShadowDepthBuffer"); SrgbRead(false); >;
Texture2D g_tSsao < Attribute("SSAOOcclusionFactor"); SrgbRead(false); >;
- float3 g_vFlatOverlayColor < Default2(1, 0); Attribute("FlatOverlayColor"); UiType(VectorText); >;
+ float3 g_vFlatOverlayColor < Default3(1, 0, 1); Attribute("FlatOverlayColor"); UiType(VectorText); >;
float4 g_vShaderIDColor < Source(ShaderIDColor); UiType(VectorText); >;
// Fog
@@ -329,17 +329,17 @@ PS
#endif
#extension GL_KHR_shader_subgroup_arithmetic : require
- struct _2339
+ struct _2549
{
vec4 _m0[3];
};
- struct _2549
+ struct _2759
{
vec4 _m0[4];
};
- struct _1069
+ struct _1999
{
mat4 _m0[4];
};
@@ -417,10 +417,10 @@ PS
layout(set = 1) uniform _1092 _Globals_;
- struct _2731
+ struct _2703
{
- _2339 _m0;
- _2549 _m1;
+ _2549 _m0;
+ _2759 _m1;
vec4 _m2;
vec4 _m3;
vec4 _m4;
@@ -437,11 +437,11 @@ PS
float _m15;
float _m16;
float _m17;
- _1069 _m18;
- _2549 _m19;
+ _1999 _m18;
+ _2759 _m19;
};
- layout(set = 3) uniform _2731 PerViewLightingConstantBufferGpu_t;
+ layout(set = 3) uniform _2703 PerViewLightingConstantBufferGpu_t;
layout(set = 3, binding = 30, std430) readonly buffer g_CullBits
{
@@ -454,14 +454,14 @@ PS
} g_BarnLights_1;
layout(set = 1, binding = 38) uniform texture2D g_tDynamicAmbientOcclusionDepth;
- layout(set = 1, binding = 22) uniform sampler g_sCookieSampler;
+ layout(set = 1, binding = 23) uniform sampler g_sCookieSampler;
layout(set = 1, binding = 37) uniform texture2D g_tDynamicAmbientOcclusion;
- layout(set = 1, binding = 18) uniform sampler g_sPointClamp;
- layout(set = 1, binding = 23) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
+ layout(set = 1, binding = 19) uniform sampler g_sPointClamp;
+ layout(set = 1, binding = 24) uniform samplerShadow g_tShadowDepthBufferCmpSampler;
layout(set = 1, binding = 36) uniform texture2D g_tShadowDepthBufferDepth;
layout(set = 1, binding = 49) uniform texture2D g_tParticleShadowBuffer;
- layout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;
- layout(set = 1, binding = 16) uniform sampler g_sTrilinearWrap;
+ layout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;
+ layout(set = 1, binding = 17) uniform sampler g_sTrilinearWrap;
layout(set = 1, binding = 34) uniform texture3D g_tLightCookieTexture;
layout(set = 1, binding = 41) uniform textureCubeArray g_tFallbackCubemap;
layout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;
@@ -544,100 +544,110 @@ PS
{
_21709 = 1.0;
}
- vec3 _6606 = _21875.xyz;
- float _21710;
+ float _8634 = dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _24735);
+ float _12320;
SPIRV_CROSS_BRANCH
- if (PerViewLightingConstantBufferGpu_t._m11 != 0)
+ if (_8634 > 0.0)
{
- int _23989;
- int _10191;
- float _13136;
- vec3 _14975;
- int _13039 = 0;
- for (;;)
+ float _12503;
+ SPIRV_CROSS_BRANCH
+ if (PerViewLightingConstantBufferGpu_t._m11 != 0)
{
- if (!(_13039 < PerViewLightingConstantBufferGpu_t._m11))
+ int _23989;
+ int _10191;
+ float _13136;
+ vec3 _14975;
+ int _13039 = 0;
+ for (;;)
{
- _13136 = 1.0;
- _14975 = vec3(0.0);
- _10191 = -1;
- break;
- }
- vec4 _18322 = vec4(_21875.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_13039];
- float _12779 = _18322.x;
- if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m13[_13039])
- {
- vec3 _19470 = vec3(_12779, _18322.yz);
- vec2 _24804 = _19470.xy;
- vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m15)) + vec2(PerViewLightingConstantBufferGpu_t._m14));
- vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_13039].xy;
- vec3 _20488 = _19470;
- _20488.x = _20561.x;
- _20488.y = _20561.y;
- _13136 = saturate(_22193.x * _22193.y);
- _14975 = _20488;
- _10191 = _13039;
- break;
+ if (!(_13039 < PerViewLightingConstantBufferGpu_t._m11))
+ {
+ _13136 = 1.0;
+ _14975 = vec3(0.0);
+ _10191 = -1;
+ break;
+ }
+ vec4 _18322 = vec4(_21875.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_13039];
+ float _12779 = _18322.x;
+ if (max(abs(_12779), abs(_18322.y)) < PerViewLightingConstantBufferGpu_t._m13[_13039])
+ {
+ vec3 _19470 = vec3(_12779, _18322.yz);
+ vec2 _24804 = _19470.xy;
+ vec2 _22193 = vec2(1.0) - saturate((abs(_24804) * vec2(PerViewLightingConstantBufferGpu_t._m15)) + vec2(PerViewLightingConstantBufferGpu_t._m14));
+ vec2 _20561 = (_24804 * PerViewLightingConstantBufferGpu_t._m19._m0[_13039].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_13039].xy;
+ vec3 _20488 = _19470;
+ _20488.x = _20561.x;
+ _20488.y = _20561.y;
+ _13136 = saturate(_22193.x * _22193.y);
+ _14975 = _20488;
+ _10191 = _13039;
+ break;
+ }
+ _23989 = _13039 + 1;
+ _13039 = _23989;
+ continue;
}
- _23989 = _13039 + 1;
- _13039 = _23989;
- continue;
- }
- float _18423;
- if (_10191 >= 0)
- {
- float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);
- float _12501;
- SPIRV_CROSS_BRANCH
- if (_13136 < 1.0)
+ float _18423;
+ if (_10191 >= 0)
{
- float _7934;
- if (_10191 < (PerViewLightingConstantBufferGpu_t._m11 - 1))
+ float _18270 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_14975.xy, saturate(_14975.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);
+ float _12501;
+ SPIRV_CROSS_BRANCH
+ if (_13136 < 1.0)
{
- int _15335 = _10191 + 1;
- vec4 _19671 = vec4(_21875.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_15335];
- vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_15335].xy;
- vec3 _20489;
- _20489.x = _20562.x;
- _20489.y = _20562.y;
- _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);
+ float _7934;
+ if (_10191 < (PerViewLightingConstantBufferGpu_t._m11 - 1))
+ {
+ int _15335 = _10191 + 1;
+ vec4 _19671 = vec4(_21875.xyz, 1.0) * PerViewLightingConstantBufferGpu_t._m18._m0[_15335];
+ vec2 _20562 = (_19671.xy * PerViewLightingConstantBufferGpu_t._m19._m0[_15335].zw) + PerViewLightingConstantBufferGpu_t._m19._m0[_15335].xy;
+ vec3 _20489;
+ _20489.x = _20562.x;
+ _20489.y = _20562.y;
+ _7934 = textureLod(sampler2DShadow(g_tShadowDepthBufferDepth, g_tShadowDepthBufferCmpSampler), vec3(_20489.xy, saturate(_19671.z + PerViewLightingConstantBufferGpu_t._m12)), 0.0);
+ }
+ else
+ {
+ _7934 = 1.0;
+ }
+ _12501 = mix(_7934, _18270, _13136);
}
else
{
- _7934 = 1.0;
+ _12501 = _18270;
}
- _12501 = mix(_7934, _18270, _13136);
+ _18423 = _12501;
}
else
{
- _12501 = _18270;
+ _18423 = 1.0;
}
- _18423 = _12501;
- }
- else
- {
- _18423 = 1.0;
- }
- float _13279 = mix(_18423, 1.0, saturate((distance(_19221.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m17) + PerViewLightingConstantBufferGpu_t._m16));
- float _12502;
- if (_24464.y)
- {
- _12502 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_17590.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ float _13279 = mix(_18423, 1.0, saturate((distance(_19221.xyz, PerViewConstantBuffer_t._m3) * PerViewLightingConstantBufferGpu_t._m17) + PerViewLightingConstantBufferGpu_t._m16));
+ float _12502;
+ if (_24464.y)
+ {
+ _12502 = min(_13279, textureLod(sampler2D(g_tParticleShadowBuffer, g_sTrilinearClamp), (_17590.xy * PerViewConstantBuffer_t._m2.xy).xy, 0.0).z);
+ }
+ else
+ {
+ _12502 = _13279;
+ }
+ _12503 = _12502;
}
else
{
- _12502 = _13279;
+ _12503 = 1.0;
}
- _21710 = _12502;
+ _12320 = _12503;
}
else
{
- _21710 = 1.0;
+ _12320 = 1.0;
}
vec3 _9716;
vec3 _24878;
SPIRV_CROSS_BRANCH
- if ((dot(PerViewLightingConstantBufferGpu_t._m9.xyz, _24735) * _21710) > 0.0)
+ if ((_8634 * _12320) > 0.0)
{
float _11797 = max(0.0, dot(_10560, PerViewLightingConstantBufferGpu_t._m9.xyz));
vec2 _9840 = max(_21813, vec2(PerViewLightingConstantBufferGpu_t._m9.w));
@@ -648,7 +658,7 @@ PS
float _25211 = _9850 * _9850;
float _19095 = _25211 * _25211;
float _15346 = ((_12386 * _12386) * (_19095 - 1.0)) + 1.0;
- vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m10.xyz * _21710).xyz;
+ vec3 _16808 = (PerViewLightingConstantBufferGpu_t._m10.xyz * _12320).xyz;
_9716 = ((_12351.xyz * (_19095 / (((_15346 * _15346) * (_19210 * _19210)) * ((_9850 * 4.0) + 2.0)))).xyz * _11797).xyz * _16808;
_24878 = PerViewLightingConstantBufferGpu_t._m4.xyz + (vec3(_11797).xyz * _16808);
}
@@ -709,6 +719,7 @@ PS
_20344 = _17018 & (_17018 - 1u);
do
{
+ vec3 _22962 = _21875.xyz;
vec4 _24893 = g_BarnLights_1._m0[_12608]._m0 * vec4(_21875.xyz, 1.0);
vec3 _10521 = _24893.xyz / vec3(_24893.w);
vec4 _22905;
@@ -733,7 +744,7 @@ PS
}
else
{
- _12885 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(_6606, 1.0)).xyz), vec3(1.0)));
+ _12885 = !all(lessThanEqual(abs((g_BarnLights_1._m0[_12608]._m15 * vec4(_22962, 1.0)).xyz), vec3(1.0)));
}
if (_12885)
{
@@ -770,7 +781,7 @@ PS
float _11633;
if (g_BarnLights_1._m0[_12608]._m2.w != 0.0)
{
- vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - _6606;
+ vec3 _10017 = g_BarnLights_1._m0[_12608]._m2.xyz - _22962;
float _18345 = dot(_10017, _10017);
float _17647 = sqrt(_18345);
vec3 _12302 = _10017 - _16268;
@@ -848,7 +859,7 @@ PS
}
else
{
- vec3 _12503;
+ vec3 _12504;
if (g_BarnLights_1._m0[_12608]._m4.w < 0.0)
{
vec4 _17795 = vec4(-g_BarnLights_1._m0[_12608]._m5.xyz, g_BarnLights_1._m0[_12608]._m5.w);
@@ -864,7 +875,7 @@ PS
vec3 _20492 = _14081;
_20492.x = _20564.x;
_20492.y = _20564.y;
- _12503 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;
+ _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sTrilinearWrap), _20492.xyz, 0.0).xyz;
}
else
{
@@ -873,9 +884,9 @@ PS
vec3 _20491 = _13791;
_20491.x = _20563.x;
_20491.y = _20563.y;
- _12503 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;
+ _12504 = _17828.xyz * textureLod(sampler3D(g_tLightCookieTexture, g_sCookieSampler), _20491.xyz, 0.0).xyz;
}
- _21548 = _12503;
+ _21548 = _12504;
}
if (all(equal(_21548.xyz, vec3(0.0))))
{
@@ -919,9 +930,9 @@ PS
float _19211 = max(0.0, dot(_11179.xyz, _12282));
float _9851 = _9841.x;
float _25212 = _9851 * _9851;
- float _19097 = _25212 * _25212;
- float _15348 = ((_12387 * _12387) * (_19097 - 1.0)) + 1.0;
- _13212 = _13138.xyz + (((_12351.xyz * (_19097 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0) + 2.0)))).xyz * _11798).xyz * _22671.xyz);
+ float _19096 = _25212 * _25212;
+ float _15348 = ((_12387 * _12387) * (_19096 - 1.0)) + 1.0;
+ _13212 = _13138.xyz + (((_12351.xyz * (_19096 / (((_15348 * _15348) * (_19211 * _19211)) * ((_9851 * 4.0) + 2.0)))).xyz * _11798).xyz * _22671.xyz);
_15670 = _16325.xyz + (vec3(_11798).xyz * _22671.xyz);
break;
} while(false);
game/csgo/shaders_vulkan_dir/shaders/vfx/luminaire.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -273,7 +273,7 @@ PS
layout(set = 1) uniform _1008 PerViewConstantBuffer_t;
layout(set = 1, binding = 42) uniform textureCube g_tFogCubeTexture;
- layout(set = 1, binding = 17) uniform sampler g_sTrilinearClamp;
+ layout(set = 1, binding = 18) uniform sampler g_sTrilinearClamp;
layout(location = 0) in vec3 input_0;
layout(location = 0) out vec4 output_0;
game/csgo/shaders_vulkan_dir/shaders/vfx/mboit_mixed_combine.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -154,7 +154,7 @@ PS
};
Texture2D<float4> g_tZeroth_Moment : register(t31, space1);
- SamplerState g_sBilinearClamp : register(s15, space1);
+ SamplerState g_sBilinearClamp : register(s16, space1);
Texture2D<float4> g_tMoments : register(t32, space1);
Texture2D<float4> g_tMoments_Extra : register(t33, space1);
game/csgo/shaders_vulkan_dir/shaders/vfx/mboitfinal.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -134,7 +134,7 @@ PS
};
Texture2D<float4> g_tMoitFinal : register(t30, space1);
- SamplerState g_sPointClamp : register(s18, space1);
+ SamplerState g_sPointClamp : register(s19, space1);
Texture2D<float4> g_tZeroth_Moment : register(t31, space1);
static float4 gl_FragCoord;
game/csgo/shaders_vulkan_dir/shaders/vfx/overlay_smoke.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -110,7 +110,7 @@ PS
};
Texture2D<float4> g_tSmokeAccum : register(t30, space1);
- SamplerState g_sBilinearClamp : register(s15, space1);
+ SamplerState g_sBilinearClamp : register(s16, space1);
static float2 input_0;
static float4 output_0;
game/csgo/shaders_vulkan_dir/shaders/vfx/post_process.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -181,7 +181,7 @@ PS
layout(set = 1) uniform _1245 PostProcessingConstantBuffer_t;
layout(set = 1, binding = 50) uniform texture2D g_tColorBuffer;
- layout(set = 1, binding = 25) uniform sampler Filter_MinMagLinearMipPoint;
+ layout(set = 1, binding = 26) uniform sampler Filter_MinMagLinearMipPoint;
layout(location = 0) out vec4 output_0;
game/csgo/shaders_vulkan_dir/shaders/vfx/screenparticlescombine.slang
modified • +1 / -1 • changes: 2
Show patch
@@ -98,7 +98,7 @@ PS
};
Texture2D<float4> g_tScreenParticles : register(t30, space1);
- SamplerState g_sBilinearClamp : register(s15, space1);
+ SamplerState g_sBilinearClamp : register(s16, space1);
static float4 gl_FragCoord;
static float4 output_0;
game/csgo/shaders_vulkan_dir/shaders/vfx/simple.slang
modified • +0 / -0 • changes: 0
No patch available (GitHub often omits patches for large/binary diffs).
game/csgo/shaders_vulkan_dir/shaders/vfx/sky.slang
modified • +1 / -1 • changes: 2
No patch available (GitHub often omits patches for large/binary diffs).
game/csgo/shaders_vulkan_dir/shaders/vfx/smoke_volume.slang
modified • +1 / -1 • changes: 2
No patch available (GitHub often omits patches for large/binary diffs).
game/csgo/shaders_vulkan_dir/shaders/vfx/smoke_volume_depth.slang
modified • +1 / -1 • changes: 2
No patch available (GitHub often omits patches for large/binary diffs).
game/csgo/shaders_vulkan_dir/shaders/vfx/smoke_volume_lpv.slang
modified • +4 / -4 • changes: 8
No patch available (GitHub often omits patches for large/binary diffs).
game/csgo/shaders_vulkan_dir/shaders/vfx/spritecard.slang
modified • +6 / -6 • changes: 12
No patch available (GitHub often omits patches for large/binary diffs).
game/csgo/shaders_vulkan_dir/shaders/vfx/tools_wireframe.slang
modified • +1 / -1 • changes: 2
No patch available (GitHub often omits patches for large/binary diffs).
game/csgo/steam.inf
modified • +6 / -6 • changes: 12
No patch available (GitHub often omits patches for large/binary diffs).
manifests/manifest_2347770.txt
modified • +22 / -21 • changes: 43
No patch available (GitHub often omits patches for large/binary diffs).
manifests/manifest_2347771.txt
modified • +66 / -65 • changes: 131
No patch available (GitHub often omits patches for large/binary diffs).
manifests/manifest_2347773.txt
modified • +36 / -36 • changes: 72
No patch available (GitHub often omits patches for large/binary diffs).
manifests/manifest_2347779.txt
modified • +34 / -34 • changes: 68
No patch available (GitHub often omits patches for large/binary diffs).
manifests/manifest_731.txt
modified • +2 / -2 • changes: 4
No patch available (GitHub often omits patches for large/binary diffs).
manifests/manifest_732.txt
modified • +2 / -2 • changes: 4
No patch available (GitHub often omits patches for large/binary diffs).
manifests/manifest_733.txt
modified • +2 / -2 • changes: 4
No patch available (GitHub often omits patches for large/binary diffs).
manifests/manifest_734.txt
modified • +2 / -2 • changes: 4
No patch available (GitHub often omits patches for large/binary diffs).
manifests/manifest_735.txt
modified • +2 / -2 • changes: 4
No patch available (GitHub often omits patches for large/binary diffs).
5.11.2026, 00.55.25
Assets/UI/maps update (content/csgo_addons/cs_script_demo/maps/scripts/chess.js, content/csgo_addons/cs_script_demo/maps/scripts/grenadetraining.js, content/csgo_addons/cs_script_demo/maps/scripts/mdlchange.js).
Files changed: 39 • +597 / -515
scriptsuiassetsmisccontent-change
Changed files
content/csgo_addons/cs_script_demo/maps/scripts/chess.js
modified • +10 / -10 • changes: 20
Show patch
@@ -1,6 +1,6 @@
// @ts-nocheck
-import { Instance, PointTemplate } from "cs_script/point_script";
+import { Instance, PointTemplate, Entities } from "cs_script/point_script";
function ChessJS() {
/**
@@ -3474,7 +3474,7 @@ let chess = new Chess();
const centers = {};
function FindCenters() {
- const entities = Instance.FindEntitiesByClass("info_target");
+ const entities = Entities.FindByClass("info_target");
for (const ent of entities) {
const name = ent.GetEntityName();
if (/^[a-h][1-8]$/.test(name)) {
@@ -3501,14 +3501,14 @@ async function RunChess() {
await AnimateMove(move);
}
- Instance.EntFireAtName({ name: `snd.chess.${chess.turn()}.win`, input: "StartSound" });
+ Entities.FireInput({ name: `snd.chess.${chess.turn()}.win`, input: "StartSound" });
Instance.SetNextThink(Instance.GetGameTime() + 10);
bIsRunning = false;
}
function RenderPieces() {
/** @type{import("cs_script/point_script").BaseModelEntity[]} */
- const existing = Instance.FindEntitiesByName("chess.piece.*");
+ const existing = Entities.FindByName("chess.piece.*");
for (const line of chess.board()) {
for (const square of line) {
@@ -3545,12 +3545,12 @@ function RenderPieces() {
}
function PlaySoundOnEnt(soundEntName, targetEntName) {
- Instance.EntFireAtName({ name: soundEntName, input: "SetSourceEntity", value: targetEntName });
- Instance.EntFireAtName({ name: soundEntName, input: "StartSound" });
+ Entities.FireInput({ name: soundEntName, input: "SetSourceEntity", value: targetEntName });
+ Entities.FireInput({ name: soundEntName, input: "StartSound" });
}
async function AnimateMove(move) {
- const piece = Instance.FindEntitiesByName(`chess.piece.${move.color}.${move.piece}`).find((p) => p.square === move.from);
+ const piece = Entities.FindByName(`chess.piece.${move.color}.${move.piece}`).find((p) => p.square === move.from);
if (!piece) {
RenderPieces();
return;
@@ -3568,7 +3568,7 @@ async function AnimateMove(move) {
if (move.isCapture()) {
PlaySoundOnEnt("chess.snd.capture", piece.GetEntityName());
const capturedColor = move.color === WHITE ? BLACK : WHITE;
- const captured = Instance.FindEntitiesByName(`chess.piece.${capturedColor}.${move.captured}`).find((p) => p.square === move.to);
+ const captured = Entities.FindByName(`chess.piece.${capturedColor}.${move.captured}`).find((p) => p.square === move.to);
if (captured) {
await DiePiece(captured);
}
@@ -3623,9 +3623,9 @@ async function DiePiece(piece) {
}
function SpawnPiece(type, color) {
- let spawner = Instance.FindEntityByName(`chess.template.${type}.${color}`);
+ let [spawner] = Entities.FindByName(`chess.template.${type}.${color}`);
if (!spawner) {
- spawner = Instance.FindEntityByName(`chess.template.${type}`);
+ [spawner] = Entities.FindByName(`chess.template.${type}`);
}
if (spawner instanceof PointTemplate) {
const spawned = spawner.ForceSpawn();
content/csgo_addons/cs_script_demo/maps/scripts/grenadetraining.js
modified • +32 / -32 • changes: 64
Show patch
@@ -1,4 +1,4 @@
-import { Console, Entity, Instance } from "cs_script/point_script";
+import { Console, Entity, Instance, Entities } from "cs_script/point_script";
let Rounds = 0;
let Hits = 0;
@@ -11,9 +11,9 @@ let TargetHard = "targetbox.hard";
function SetNextTarget() {
Rounds++;
- Instance.EntFireAtName({ name: "worldtext.rounds", input: "SetMessage", value: Rounds });
- Instance.EntFireAtName({ name: "cover.*", input: "Enable" });
- Instance.EntFireAtName({ name: "tele.reset", input: "Teleport" });
+ Entities.FireInput({ name: "worldtext.rounds", input: "SetMessage", value: Rounds });
+ Entities.FireInput({ name: "cover.*", input: "Enable" });
+ Entities.FireInput({ name: "tele.reset", input: "Teleport" });
// Roll 1-11, if it duplicates last value choose value 12.
let NewTarget = Math.floor(Math.random() * 11) + 1;
@@ -24,27 +24,27 @@ function SetNextTarget() {
if (Rounds > 7) difficulty = "hard";
else if (Rounds > 4) difficulty = "med";
- Instance.EntFireAtName({ name: `cover.${Target}`, input: "Disable" });
- Instance.EntFireAtName({ name: `tele.${Target}`, input: "TeleportEntity", value: `targetbox.${difficulty}` });
+ Entities.FireInput({ name: `cover.${Target}`, input: "Disable" });
+ Entities.FireInput({ name: `tele.${Target}`, input: "TeleportEntity", value: `targetbox.${difficulty}` });
}
// called if player leaves play area at any time
Instance.OnScriptInput("ResetAndCleanUp", () => {
- Instance.EntFireAtName({ name: "trigger.start", input: "Enable" });
- Instance.EntFireAtName({ name: "trigger.end_early", input: "Disable" });
- Instance.EntFireAtName({ name: "worldtext.go_here", input: "Enable" });
- Instance.EntFireAtName({ name: "relay.start_countdown", input: "CancelPending" });
-
- Instance.EntFireAtName({ name: "worldtext.training_countdown_dyn", input: "SetMessage", value: "3" });
- Instance.EntFireAtName({ name: "worldtext.training_countdown_static", input: "Disable" });
- Instance.EntFireAtName({ name: "worldtext.training_countdown_dyn", input: "Disable" });
- Instance.EntFireAtName({ name: "board.timer", input: "Disable" });
- Instance.EntFireAtName({ name: "board.timer", input: "ResetTimer" });
- Instance.EntFireAtName({ name: "snd.tick", input: "StopSound" });
- Instance.EntFireAtName({ name: "tele.reset", input: "Teleport" });
- Instance.EntFireAtName({ name: "cover.*", input: "Enable" });
- Instance.EntFireAtName({ name: "worldtext.hits", input: "SetMessage", value: "0" });
- Instance.EntFireAtName({ name: "worldtext.rounds", input: "SetMessage", value: "0" });
+ Entities.FireInput({ name: "trigger.start", input: "Enable" });
+ Entities.FireInput({ name: "trigger.end_early", input: "Disable" });
+ Entities.FireInput({ name: "worldtext.go_here", input: "Enable" });
+ Entities.FireInput({ name: "relay.start_countdown", input: "CancelPending" });
+
+ Entities.FireInput({ name: "worldtext.training_countdown_dyn", input: "SetMessage", value: "3" });
+ Entities.FireInput({ name: "worldtext.training_countdown_static", input: "Disable" });
+ Entities.FireInput({ name: "worldtext.training_countdown_dyn", input: "Disable" });
+ Entities.FireInput({ name: "board.timer", input: "Disable" });
+ Entities.FireInput({ name: "board.timer", input: "ResetTimer" });
+ Entities.FireInput({ name: "snd.tick", input: "StopSound" });
+ Entities.FireInput({ name: "tele.reset", input: "Teleport" });
+ Entities.FireInput({ name: "cover.*", input: "Enable" });
+ Entities.FireInput({ name: "worldtext.hits", input: "SetMessage", value: "0" });
+ Entities.FireInput({ name: "worldtext.rounds", input: "SetMessage", value: "0" });
Console.SetConvar("sv_infinite_ammo", 0);
const player = Instance.GetPlayerController(0)?.GetPlayerPawn();
@@ -53,10 +53,10 @@ Instance.OnScriptInput("ResetAndCleanUp", () => {
});
Instance.OnScriptInput("StartTraining", () => {
- Instance.EntFireAtName({ name: "trigger.start", input: "Disable" });
- Instance.EntFireAtName({ name: "trigger.end_early", input: "Enable" });
- Instance.EntFireAtName({ name: "worldtext.go_here", input: "Disable" });
- Instance.EntFireAtName({ name: "relay.start_countdown", input: "Trigger" });
+ Entities.FireInput({ name: "trigger.start", input: "Disable" });
+ Entities.FireInput({ name: "trigger.end_early", input: "Enable" });
+ Entities.FireInput({ name: "worldtext.go_here", input: "Disable" });
+ Entities.FireInput({ name: "relay.start_countdown", input: "Trigger" });
Console.SetConvar("sv_infinite_ammo", 1);
const player = Instance.GetPlayerController(0)?.GetPlayerPawn();
@@ -70,8 +70,8 @@ Instance.OnScriptInput("StartTraining", () => {
// called from grenade trigger inside target area
Instance.OnScriptInput("GrenadeHit", () => {
Hits++;
- Instance.EntFireAtName({ name: "snd.hit", input: "StartSound" });
- Instance.EntFireAtName({ name: "worldtext.hits", input: "SetMessage", value: Hits });
+ Entities.FireInput({ name: "snd.hit", input: "StartSound" });
+ Entities.FireInput({ name: "worldtext.hits", input: "SetMessage", value: Hits });
if (trackedProjectile && trackedProjectile.IsValid()) {
trackedProjectile.Remove();
trackedProjectile = undefined;
@@ -83,11 +83,11 @@ Instance.OnScriptInput("SetNextTarget", () => {
if (Rounds < 10) {
SetNextTarget();
} else {
- Instance.EntFireAtName({ name: "snd.end", input: "StartSound" });
- Instance.EntFireAtName({ name: "board.timer", input: "Disable" });
- Instance.EntFireAtName({ name: "board.timer", input: "ResetTimer" });
- Instance.EntFireAtName({ name: "tele.reset", input: "Teleport" });
- Instance.EntFireAtName({ name: "cover.*", input: "Enable" });
+ Entities.FireInput({ name: "snd.end", input: "StartSound" });
+ Entities.FireInput({ name: "board.timer", input: "Disable" });
+ Entities.FireInput({ name: "board.timer", input: "ResetTimer" });
+ Entities.FireInput({ name: "tele.reset", input: "Teleport" });
+ Entities.FireInput({ name: "cover.*", input: "Enable" });
}
});
content/csgo_addons/cs_script_demo/maps/scripts/mdlchange.js
modified • +2 / -2 • changes: 4
Show patch
@@ -1,7 +1,7 @@
-import { Instance, BaseModelEntity, Console } from "cs_script/point_script";
+import { Instance, BaseModelEntity, Console, Entities } from "cs_script/point_script";
function GetProp() {
- const ent = Instance.FindEntityByName("mdlchange.prop_dyn");
+ const [ent] = Entities.FindByName("mdlchange.prop_dyn");
if (ent instanceof BaseModelEntity) return ent;
}
function Init() {
content/csgo_addons/cs_script_demo/maps/scripts/point_script.d.ts
modified • +58 / -21 • changes: 79
Show patch
@@ -43,12 +43,15 @@ declare module "cs_script/point_script"
export const GameRules: IGameRules;
+ export const Entities: IEntities;
+
type Vector = { x: number, y: number, z: number };
type RotationVector = { x: number, y: number, z: number };
type QAngle = { pitch: number, yaw: number, roll: number };
type ColorArg = { r: number, g: number, b: number, a?: number };
type Color = { r: number, g: number, b: number, a: number };
type InputValue = boolean | number | string | Vector | Color | undefined;
+ type EntityKeyValue = boolean | number | string | Vector | QAngle;
/**
* The API provided to scripts attached to a point_script entity.
@@ -110,6 +113,8 @@ declare module "cs_script/point_script"
OnPlayerDisconnect(callback: (event: { playerSlot: number }) => void): void;
/** Called when a player respawns, changes team, or is placed back at spawn due to a round restart */
OnPlayerReset(callback: (event: { player: CSPlayerPawn }) => void): void
+ /** Called when a player takes or releases control of a bot. */
+ OnBotControl(callback: (event: { controller: CSPlayerController }) => void): void;
/** Called when a player changes team */
OnPlayerTeamChanged(callback: (event: { player: CSPlayerPawn, oldTeam: number }) => void): void
/** Called when a new round begins */
@@ -191,23 +196,6 @@ declare module "cs_script/point_script"
/** Called when a button in a CustomHudLayout is clicked. */
OnCustomHudClicked( callback: (event: {player: CSPlayerController, layout: CustomHudLayout, buttonId: string}) => void ): void;
- /** Fire the input on all targets matching the specified names. */
- EntFireAtName(config: { name: string, input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number }): void;
- /** Fire the input on the specified target. */
- EntFireAtTarget(config: { target: Entity, input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number }): void;
- /** Connect the output of an entity to a callback. The return value is a connection id that can be used in `DisconnectOutput` */
- ConnectOutput(target: Entity, output: string, callback: (inputData: { value?: InputValue, caller?: Entity, activator?: Entity }) => any): number | undefined;
- /** Find entities by name. */
- DisconnectOutput(connectionId: number): void;
-
- /** Find the first entity matching the specified name. */
- FindEntityByName(name: string): Entity | undefined;
- /** Find entities matching the specified name. */
- FindEntitiesByName(name: string): Entity[];
- /** Find the first entity of the specified class name. */
- FindEntityByClass(className: string): Entity | undefined;
- /** Find entities of the specified class name. */
- FindEntitiesByClass(className: string): Entity[];
/** Get the player controller in the given slot. */
GetPlayerController(playerSlot: number): CSPlayerController | undefined;
/** Get all the player controllers. Includes disconnected players. */
@@ -240,11 +228,12 @@ declare module "cs_script/point_script"
/**
* Loads resources on the server and clients to avoid hitches when later referenced.
- * Supports .vmdl, .vpcf, .vmat, and .vsnd resources.
+ * `resources` supports .vmdl, .vpcf, .vmat, and .vsnd resources.
+ * `entities` takes entity class names or subclass names.
* @experimental This feature is experimental and may experience breaking changes.
* Please send feedback to CSGOTeamFeedback@valvesoftware.com with "cs_script Feedback" in the subject line.
*/
- Precache(config: { resources: string[] }): CSPrecache | undefined;
+ Precache(config: { resources?: string[], entities?: string[] }): CSPrecache | undefined;
/** @deprecated This method will be removed in a future update */
OnBeforePlayerDamage(callback: () => any): void;
@@ -260,9 +249,13 @@ declare module "cs_script/point_script"
DebugBox(mins: Vector, maxs: Vector, duration: number, color: ColorArg): void;
/** @deprecated This overload will be removed in a future update */
DebugSphere(center: Vector, radius: number, duration: number, color: ColorArg): void;
- /** @deprecated This overload will be removed in a future update */
+ /** @deprecated This method will be removed in a future update */
+ EntFireAtName(config: { name: string, input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number }): void;
+ /** @deprecated This method will be removed in a future update */
EntFireAtName(name: string, input: string, inputData?: InputValue | { value?: InputValue, caller?: Entity, activator?: Entity }, delay?: number): void;
- /** @deprecated This overload will be removed in a future update */
+ /** @deprecated This method will be removed in a future update */
+ EntFireAtTarget(config: { target: Entity, input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number }): void;
+ /** @deprecated This method will be removed in a future update */
EntFireAtTarget(target: Entity, input: string, inputData?: InputValue | { value?: InputValue, caller?: Entity, activator?: Entity }, delay?: number): void;
/** @deprecated This method will be removed in a future update */
Msg(text: any): void;
@@ -286,6 +279,18 @@ declare module "cs_script/point_script"
SetRoundRemainingTime(time: number): void;
/** @deprecated This method will be removed in a future update */
AddTeamMoney(team: number, reason: CSTeamMoneyReason, amount?: number): void;
+ /** @deprecated This method will be removed in a future update */
+ FindEntityByName(name: string): Entity | undefined;
+ /** @deprecated This method will be removed in a future update */
+ FindEntitiesByName(name: string): Entity[];
+ /** @deprecated This method will be removed in a future update */
+ FindEntityByClass(className: string): Entity | undefined;
+ /** @deprecated This method will be removed in a future update */
+ FindEntitiesByClass(className: string): Entity[];
+ /** @deprecated This method will be removed in a future update */
+ ConnectOutput(target: Entity, output: string, callback: (inputData: { value?: InputValue, caller?: Entity, activator?: Entity }) => any): number | undefined;
+ /** @deprecated This method will be removed in a future update */
+ DisconnectOutput(connectionId: number): void;
}
/**
@@ -362,6 +367,32 @@ declare module "cs_script/point_script"
AddTeamMoney(team: number, reason: CSTeamMoneyReason, amount?: number): void;
}
+ /**
+ * An API provided to scripts for general entity interaction.
+ * Access these functions by importing Entities from "cs_script/point_script".
+ */
+ interface IEntities
+ {
+ /**
+ * Spawns a set of entities.
+ * @experimental This feature is experimental and may experience breaking changes.
+ * Please send feedback to CSGOTeamFeedback@valvesoftware.com with "cs_script Feedback" in the subject line.
+ */
+ Spawn(entities: ({ classname: string, origin?: Vector, angles?: QAngle } & { [key: string]: EntityKeyValue })[]): Entity[];
+
+ /** Find all entities with the specified name. */
+ FindByName(name: string): Entity[];
+ /** Find all entities of the specified class name. */
+ FindByClass(className: string): Entity[];
+
+ /** Fire the input on all entities with the specified name. */
+ FireInput(config: { name: string, input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number }): void;
+ /** Connect the output of an entity to a callback. The return value is a connection id that can be used in `DisconnectOutput` */
+ ConnectOutput(config: { target: Entity, output: string, callback: (inputData: { value?: InputValue, caller?: Entity, activator?: Entity }) => any }): number | undefined;
+ /** Disconnect an output connection made by `ConnectOutput`. */
+ DisconnectOutput(connectionId: number): void;
+ }
+
export enum CSMoveType {
INVALID = -1,
NONE,
@@ -806,6 +837,8 @@ declare module "cs_script/point_script"
TakeDamage(takeDamage: EntityDamage): number;
Kill(): void;
Remove(): void;
+ /** Fire the input on this entity. */
+ FireInput(config: { input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number }): void;
/** @deprecated This overload will be removed in a future update */
Teleport(newPosition: Vector | null, newAngles: QAngle | null, newVelocity: Vector | null): void;
@@ -927,6 +960,8 @@ declare module "cs_script/point_script"
GetPlayerName(): string;
GetPlayerPawn(): CSPlayerPawn | undefined;
GetObserverPawn(): CSObserverPawn | undefined;
+ IsControllingBot(): boolean;
+ GetControlledBotPawn(): CSPlayerPawn | undefined;
GetScore(): number;
/** Add to the player's score. Negative values are allowed but the score will not go below zero. */
AddScore(points: number): void;
@@ -961,6 +996,8 @@ declare module "cs_script/point_script"
GetPlayerController(): CSPlayerController | undefined;
/** Gets the controller that this player pawn was originally spawned for. */
GetOriginalPlayerController(): CSPlayerController;
+ /** Reset the player to full health and ammo. If dead they will be alive with the default weapon loadout. Cancels any bot takeover. */
+ Reset(): void;
/** @returns `true` if specified inputs are pressed at the end of the current tick. */
IsInputPressed(inputs: CSInputs): boolean;
/** @returns `true` if specified inputs went from released to pressed at some point during the current tick. */
content/csgo_addons/cs_script_demo/maps/scripts/setup.js
modified • +12 / -5 • changes: 17
Show patch
@@ -1,4 +1,4 @@
-import { CSDamageFlags, CSDamageTypes, Entity, Instance, Console } from "cs_script/point_script";
+import { CSDamageFlags, CSDamageTypes, Entity, Instance, Console, Entities } from "cs_script/point_script";
Console.SetConvar("sv_cheats", true);
Console.SetConvar("mp_warmup_offline_enabled", true);
@@ -16,12 +16,19 @@ Instance.OnPlayerActivate(({ player }) => {
ShowWelcome(player.GetPlayerSlot());
});
-Instance.OnModifyPlayerDamage(({ player }) => {
- if (player.GetOriginalPlayerController().IsBot()) {
+Instance.OnModifyPlayerDamage(({ player, damageTypes }) => {
+ if (player.GetOriginalPlayerController().IsBot() && !(damageTypes & CSDamageTypes.BLAST)) {
return { damageFlags: CSDamageFlags.PREVENT_DEATH };
}
});
+Instance.OnPlayerKill(async ({ player }) => {
+ await Instance.Delay(1);
+ if (player.IsValid() && !player.IsAlive()) {
+ player.Reset();
+ }
+});
+
Instance.OnPlayerDamage((event) => {
if (event.damageTypes == CSDamageTypes.SLASH) {
Instance.QueueAfterThinks(() => {
@@ -35,9 +42,9 @@ Instance.OnPlayerDamage((event) => {
let welcomeLayout = null;
function GetWelcomeLayout() {
if (!(welcomeLayout instanceof Entity) || !welcomeLayout.IsValid()) {
- welcomeLayout = Instance.FindEntitiesByName("welcome_layout")[0];
+ [welcomeLayout] = Entities.FindByName("welcome_layout");
}
- return Instance.FindEntitiesByName("welcome_layout")[0];
+ return Entities.FindByName("welcome_layout")[0];
}
function ShowWelcome(playerSlot) {
game/bin/built_from_cl.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -1 +1 @@
-11198114
+11206685
game/bin/win64/pulse_system_strings.txt
modified • +3 / -0 • changes: 3
Show patch
@@ -39,6 +39,7 @@
%s:autowake
%s:interrupt
%s:wait
+%s_c
(%s:%d)
(debug)
*** Test failure: "%s"
@@ -863,6 +864,7 @@ PrintStringWithLeafSuggestions: %s\n
Probable infinite loop detected! Terminating pulse cursor after %d consecutive instructions (%s)
Probable runaway cursor creation detected! Permanently disabling this graph instance (%s)
Process Selector
+Pulse graphs not allowed from untrusted addons.\n
Pulse system: minimal vpulse definition loading enabled - graphs may be incomplete!\n
Pulse: %s
PulseSystemEventCursorResult_t
@@ -1364,6 +1366,7 @@ propattr_flatten_into_parent_row
propdataname
public_output::%s
public_output::%s::%s
+pulse/pulse_enabled_for_untrusted_addons
pulse_bindings
pulse_editor
pulse_fingerprints
game/csgo/bin/win64/client_strings.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -21990,6 +21990,7 @@ RestorePetItemData
ResurrectedUnreachables%d
RetakeLoadout
RetakeLoadoutMenu--loadout-container-%d
+RetakeLoadoutMenu--loadout-container-0
RetakeLoadoutMenuCardContainer
RetakeLoadoutMenuLoadoutContainer
Retakes
game/csgo/bin/win64/server_strings.txt
modified • +37 / -4 • changes: 41
Show patch
@@ -985,6 +985,7 @@ $tH@T\tI
%.3f sec delay
%.5f (%.5f)
%.6f
+%.9g %.9g %.9g
%0*d
%0.15f
%0.21f
@@ -1525,18 +1526,23 @@ $tH@T\tI
(command: string)
(config:{before?:function,after?:function})
(config:{center: Vector, radius: number, duration: number, color: Color})
+(config:{input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number})
(config:{mins: Vector, maxs: Vector, duration: number, color: Color})
(config:{name: string, input: string, value:any, caller:Entity, activator:Entity, delay:number})
-(config:{resources: string[]})
+(config:{name: string, input: string, value?: InputValue, caller?: Entity, activator?: Entity, delay?: number})
+(config:{resources?: string[], entities?: string[]})
(config:{start: Vector, end: Vector, duration: number, color: Color})
(config:{target: Entity, input: string, value:any, caller:Entity, activator:Entity, delay:number})
+(config:{target: Entity, output: string, callback: function})
(config:{text: string, x: number, y: number, duration: number, color: Color})
+(connectionId: number)
(connectionId:number)
(damage: number, info?: Object)
(data: string)
(debug)
(default)
(delay: number)
+(entities:{classname: string, origin?: Vector, angles?: QAngle, [key: string]: EntityKeyValue}[])
(entmodel:Entity,index?:number)
(exception)
(followConfig: CameraFollowConfig)
@@ -2632,6 +2638,7 @@ $tH@T\tI
.?AV?$CEntitySpawnerBase@VCTriggerMultiple@@@@
.?AV?$CEntitySpawnerBase@VCVoteController@@@@
.?AV?$CEntitySpawnerBase@VCWorld@@@@
+.?AV?$CEntityWithSubclassSpawner@VCBaseEntity@@@@
.?AV?$CErrorContextValue@PEBVKeyValues3@@@@
.?AV?$CFixedSizeCircularBuffer@UCDebugSnapshotFrame_t@@$0HNA@H@@
.?AV?$CFixedSizeCircularBuffer@UShootPositionHistoryEntry_t@CCSPlayer_WeaponServices@@$0CA@H@@
@@ -8412,6 +8419,7 @@ $tH@T\tI
?BooleanValue@Value@v8@@QEBA_NPEAVIsolate@2@@Z
?Call@Function@v8@@QEAA?AV?$MaybeLocal@VValue@v8@@@2@V?$Local@VContext@v8@@@2@V?$Local@VValue@v8@@@2@HQEAV52@@Z
?CompileModule@ScriptCompiler@v8@@SA?AV?$MaybeLocal@VModule@v8@@@2@PEAVIsolate@2@PEAVSource@12@W4CompileOptions@12@W4NoCacheReason@12@@Z
+?CreateDataProperty@Object@v8@@QEAA?AV?$Maybe@_N@2@V?$Local@VContext@v8@@@2@IV?$Local@VValue@v8@@@2@@Z
?CreateHandle@HandleScope@v8@@KAPEA_KPEAVIsolate@internal@2@_K@Z
?CreateSyntheticModule@Module@v8@@SA?AV?$Local@VModule@v8@@@2@PEAVIsolate@2@V?$Local@VString@v8@@@2@AEBV?$MemorySpan@$$CBV?$Local@VString@v8@@@v8@@@2@P6A?AV?$MaybeLocal@VValue@v8@@@2@V?$Local@VContext@v8@@@2@V32@@Z@Z
?CurrentStackTrace@StackTrace@v8@@SA?AV?$Local@VStackTrace@v8@@@2@PEAVIsolate@2@HW4StackTraceOptions@12@@Z
@@ -8438,6 +8446,7 @@ $tH@T\tI
?GetLineNumber@Message@v8@@QEBA?AV?$Maybe@H@2@V?$Local@VContext@v8@@@2@@Z
?GetLocation@StackFrame@v8@@QEBA?AVLocation@2@XZ
?GetMicrotaskQueue@Context@v8@@QEAAPEAVMicrotaskQueue@2@XZ
+?GetOwnPropertyNames@Object@v8@@QEAA?AV?$MaybeLocal@VArray@v8@@@2@V?$Local@VContext@v8@@@2@@Z
?GetPromise@Resolver@Promise@v8@@QEAA?AV?$Local@VPromise@v8@@@3@XZ
?GetScriptName@StackFrame@v8@@QEBA?AV?$Local@VString@v8@@@2@XZ
?GetStackTrace@Exception@v8@@SA?AV?$Local@VStackTrace@v8@@@2@V?$Local@VValue@v8@@@2@@Z
@@ -8473,7 +8482,6 @@ $tH@T\tI
?NewInstance@Function@v8@@QEBA?AV?$MaybeLocal@VObject@v8@@@2@V?$Local@VContext@v8@@@2@HQEAV?$Local@VValue@v8@@@2@@Z
?PerformMicrotaskCheckpoint@Isolate@v8@@QEAAXXZ
?Resolve@Resolver@Promise@v8@@QEAA?AV?$Maybe@_N@3@V?$Local@VContext@v8@@@3@V?$Local@VValue@v8@@@3@@Z
-?Set@Object@v8@@QEAA?AV?$Maybe@_N@2@V?$Local@VContext@v8@@@2@IV?$Local@VValue@v8@@@2@@Z
?Set@Object@v8@@QEAA?AV?$Maybe@_N@2@V?$Local@VContext@v8@@@2@V?$Local@VValue@v8@@@2@1@Z
?Set@Template@v8@@QEAAXV?$Local@VName@v8@@@2@V?$Local@VData@v8@@@2@W4PropertyAttribute@2@@Z
?SetAlignedPointerInInternalField@Object@v8@@QEAAXHPEAX@Z
@@ -14444,6 +14452,7 @@ FindAllByTarget
FindAllInSphere
FindAllMatchingSnapshots
FindBestGoal: Calling GetNearestNavAreaAndGravityOrientedGoalPos defaultGravity[%s]
+FindByClass
FindByClassname
FindByClassnameNearest
FindByClassnameWithin
@@ -14492,6 +14501,7 @@ FireEntityIOInputVec
FireEvent: event '%s' not registered.\n
FireGameEvent
FireGameEventLocal
+FireInput
Fired after spawning an instance of this template.
Fired when a round starts.
Fired when a round winner is determined.
@@ -14939,6 +14949,7 @@ GetConst R%d <- C%d (%s)
GetContext
GetContext( name ): looks up a context and returns it if available. May return string, float, or null (if the context isn't found).
GetContextForScript
+GetControlledBotPawn
GetController
GetController() : Returns the controller for this pawn
GetConvarBoolean
@@ -15640,6 +15651,7 @@ IsClient
IsClientLoaded
IsClientLoading
IsConnected
+IsControllingBot
IsCrouched
IsCrouching
IsDedicatedServer
@@ -16149,16 +16161,25 @@ Metal.Medium
Metal.SawbladeStick
Metal.Small
Method %s.%s cannot be used on official servers.
+Method %s.%s invoked by a script with no parent entity.
Method %s.%s invoked in incorrect scope.
+Method %s.%s invoked on an invalid entity.
Method %s.%s invoked with bad '%s' property for argument %d (%s). Got %s.
+Method %s.%s invoked with bad 'angles' for entities[%d]. Got %s.
+Method %s.%s invoked with bad 'origin' for entities[%d]. Got %s.
+Method %s.%s invoked with bad classname for entities[%d]. Got %s.
+Method %s.%s invoked with bad entities[%d]. Got %s.
Method %s.%s invoked with bad value for argument %d (%s). Got %s.
Method %s.%s invoked with bad value for argument 0 (reason). Got %s.
Method %s.%s invoked with bad value for argument 0 (team). Got %s.
+Method %s.%s invoked with bad value for key "%s" for entities[%d]. Got %s.
Method %s.%s invoked with incompatible value for convar "%s". %s cannot be converted to %s.
Method %s.%s invoked with incorrect 'this' value.
Method %s.%s invoked with missing '%s' property for argument %d (%s).
Method %s.%s invoked with name of incompatible convar "%s". Use %s.%s.
Method %s.%s invoked with name of unknown convar "%s".
+Method %s.%s invoked with output "%s", which %s does not have.
+Method %s.%s invoked with reserved key "%s" for entities[%d].
Method %s.%s invoked with unrecognized 'this' value.
Method %s.%s requires %d argument%s but got %d. %s
Method CSPlayerPawn.GetCustomCamera failed to spawn a custom_player_camera.
@@ -16188,8 +16209,10 @@ Method Instance.EntFireAtTarget invoked with bad value for argument 0 (target).
Method Instance.EntFireAtTarget invoked with bad value for argument 1 (input). Got %s.
Method Instance.EntFireAtTarget invoked with bad value for argument 2 (inputData). Got %s.
Method Instance.Precache failed.
+Method Instance.Precache invoked with bad entity "%s". It is not an entity classname or subclass.
Method Instance.Precache invoked with bad resource "%s".
Method Instance.Precache invoked with bad resource "%s". There is no compiled "%s_c".
+Method Instance.Precache invoked with no resources or entities.
Method Instance.SpawnGrenadeProjectile requires at least thrower or position be specified.
Microsoft CSP Name
Microsoft Commercial Code Signing
@@ -16644,6 +16667,7 @@ OnBombExplode
OnBombPlant
OnBombPlantAbort
OnBombPlantStart
+OnBotControl
OnBufferNotStarved(), resolved starve queue\n
OnBulletImpact
OnCase%02d
@@ -16745,7 +16769,6 @@ Out:\n%s
Outflow List
Output
Output connection not found\n
-Output not found: "%s"\n
OutputConnection:
OutputConnection:%d
Outro Playback Rate
@@ -21526,6 +21549,7 @@ ca dn length mismatch
ca dn too long
caIssuers
caRepository
+cable_*
cableclass
callback
called a function that was disabled at compile-time
@@ -21835,6 +21859,7 @@ conflicting engine id
connect error
connection id is different
connection type not set
+connectionId
cons:
cont [ %d ]
contains
@@ -21951,7 +21976,7 @@ cs_rush
cs_script/%s
cs_shelter
cs_siege
-cs_spawn_group_resources
+cs_spawn_group_precache
cs_thunder
cs_usercmd.proto
cs_win_panel_match
@@ -22715,6 +22740,7 @@ entindex_ability
entindex_attacker
entindex_inflictor
entindex_killed
+entities
entity %s at %s has physics attachment to more than one entity with the name %s!!!\n
entity context menu
entityArray
@@ -23124,6 +23150,7 @@ fullname
fullpos
func(%lu)
func_
+func_*
func_areaportal
func_breakable with invalid propdata %d.\n
func_breakable_surf
@@ -23830,6 +23857,7 @@ info_node_hint
info_player_logo
info_spawngroup_load
info_spawngroup_load_unload w/o specifying map name, removing entity!!!\n
+info_target*
inherit_all_joints
inherit_owner
inherit_owner_index
@@ -24283,6 +24311,7 @@ lifestage_adult
lifestage_chick
lifestage_egg
light
+light_*
light_capsule
light_dynamic at [%d %d %d] has invalid exponent value (%d must be between %d and %d).\n
light_style_output_event0
@@ -25767,6 +25796,7 @@ producedAt
profile level %g
projectile
prop.breakable.01
+prop_*
prop_car_alarm
prop_car_glass
prop_contexts
@@ -26646,6 +26676,7 @@ smokegrenade_detonate
smokegrenade_expired
smokegrenade_projectile.ventr
smokegrenade_projectile_server
+snd_*
snd_mouth
sniper_warning
sniperk
@@ -27453,6 +27484,7 @@ transition volume passed
transition volume screened out
transitioning
tried to use unsupported cipher
+trigger_*
trigger_changelevel to %s doesn't have a landmark
trigger_changelevel to map %s has a landmark embedded in solid!\nThis will break level transitions!\n
trigger_survival_playarea
@@ -27865,6 +27897,7 @@ weapon pistol rifle survivor common_male
weapon.C4.Impact
weapon_
weapon_%s
+weapon_*
weapon_action_speedscale
weapon_ak47.ventr
weapon_ak47_server
game/csgo/cfg/gamemode_retakecasual.cfg
modified • +2 / -2 • changes: 4
Show patch
@@ -46,7 +46,7 @@ mp_defuser_allocation 2 // 0=none, 1=random, 2=everyone
mp_force_pick_time 15
mp_forcecamera 1 // Set to 1 for team only spectating.
mp_free_armor 0
-mp_freezetime 7
+mp_freezetime 5
mp_friendlyfire 1
mp_win_panel_display_time 3
mp_respawn_immunitytime 0
@@ -100,7 +100,7 @@ mp_default_team_winner_no_objective -1 // 2 == CTs, 3 == Ts
//occlusion_test_async 1
spec_replay_enable 0
-mp_round_restart_delay 5
+mp_round_restart_delay 3
sv_gameinstructor_enable 0
game/csgo/pak01_dir.txt
modified • +43 / -42 • changes: 85
Show patch
@@ -7349,25 +7349,25 @@ maps/cs_italy_camera_nodes.kv3 CRC:00b7c65df1 size:14866
maps/cs_office_camera_nodes.kv3 CRC:0083120466 size:19253
maps/de_ancient_camera_nodes.kv3 CRC:00207e40bf size:16857
maps/de_ancient_night_camera_nodes.kv3 CRC:00207e40bf size:16857
-maps/de_ancient_night_retake.txt CRC:001f3ad4a1 size:4515
-maps/de_ancient_retake.txt CRC:0054b1519f size:4516
+maps/de_ancient_night_retake.txt CRC:00d43cb56b size:4550
+maps/de_ancient_retake.txt CRC:002fcb7c50 size:4551
maps/de_anubis_camera_nodes.kv3 CRC:001b8f43b2 size:17950
-maps/de_anubis_retake.txt CRC:0032c02075 size:4360
-maps/de_cache_retake.txt CRC:002d343b7e size:4127
+maps/de_anubis_retake.txt CRC:00a6ad38b6 size:4393
+maps/de_cache_retake.txt CRC:0028012769 size:4175
maps/de_dust2_camera_nodes.kv3 CRC:0018f21a4c size:10453
-maps/de_dust2_retake.txt CRC:00c7737a39 size:4511
+maps/de_dust2_retake.txt CRC:00efb48004 size:4549
maps/de_inferno_camera_nodes.kv3 CRC:007ce32bbf size:22256
-maps/de_inferno_retake.txt CRC:00b78c5ff2 size:4053
+maps/de_inferno_retake.txt CRC:00bcf57f3e size:4101
maps/de_mirage_camera_nodes.kv3 CRC:0072eadb25 size:25623
-maps/de_mirage_retake.txt CRC:00ca33c5f4 size:4767
+maps/de_mirage_retake.txt CRC:000d5f64ab size:4803
maps/de_nuke_camera_nodes.kv3 CRC:00fc18e073 size:28247
-maps/de_nuke_retake.txt CRC:0023720f4f size:4306
+maps/de_nuke_retake.txt CRC:003bcb146f size:4347
maps/de_overpass_camera_nodes.kv3 CRC:008163f47d size:20148
-maps/de_overpass_retake.txt CRC:0091d38bbc size:4199
+maps/de_overpass_retake.txt CRC:007f922b66 size:4242
maps/de_train_camera_nodes.kv3 CRC:00c2db3b8b size:26613
-maps/de_train_retake.txt CRC:0002fee1a2 size:4826
+maps/de_train_retake.txt CRC:00a2229546 size:4870
maps/de_vertigo_camera_nodes.kv3 CRC:003995c8c5 size:16095
-maps/de_vertigo_retake.txt CRC:0041f38891 size:4630
+maps/de_vertigo_retake.txt CRC:00a22f3061 size:4675
maps/scripts/rush_001.vjs_c CRC:00424dd750 size:58191
maps/workshop_compatibility_versions.txt CRC:0041137ecb size:1787
materials/anubis/anubis_water_canal.vmat_c CRC:0049c034fb size:5916
@@ -56166,6 +56166,7 @@ panorama/images/econ/default_generated/weapon_xm1014_xm1014_mockingbird_heavy_pn
panorama/images/econ/default_generated/weapon_xm1014_xm1014_mockingbird_light_png.vtex_c CRC:0021fe2489 size:114756
panorama/images/econ/default_generated/weapon_xm1014_xm1014_mockingbird_medium_png.vtex_c CRC:006aeb11d0 size:115955
panorama/images/econ/keychains/aus2025/kc_aus2025_png.vtex_c CRC:001fab74ca size:292777
+panorama/images/econ/keychains/bud2025/kc_bud2025_png.vtex_c CRC:00197a4f90 size:301049
panorama/images/econ/keychains/cologne2026/kc_cologne2026_png.vtex_c CRC:00771d0c97 size:283199
panorama/images/econ/keychains/drboom/kc_db_200iq_png.vtex_c CRC:00966a7762 size:132857
panorama/images/econ/keychains/drboom/kc_db_8ball_png.vtex_c CRC:005518e549 size:101985
@@ -83954,7 +83955,7 @@ panorama/images/tournaments/backgrounds/pickem_bg_24_png.vtex_c CRC:0089bbd83a s
panorama/images/tournaments/backgrounds/pickem_bg_25_png.vtex_c CRC:00831e3278 size:2302708
panorama/images/tournaments/backgrounds/pickem_bg_26_png.vtex_c CRC:0014c19b4a size:930020
panorama/images/tournaments/backgrounds/pickem_mainmenu_bg_24_psd.vtex_c CRC:00014934a6 size:511969
-panorama/images/tournaments/backgrounds/pickem_mainmenu_bg_25_psd.vtex_c CRC:008bf6079b size:264288
+panorama/images/tournaments/backgrounds/pickem_mainmenu_bg_25_psd.vtex_c CRC:00fb16057c size:329828
panorama/images/tournaments/backgrounds/pickem_mainmenu_bg_26_psd.vtex_c CRC:0092b54a35 size:191644
panorama/images/tournaments/backgrounds/pickem_mainmenu_promo_22_png.vtex_c CRC:00fe819c7a size:188265
panorama/images/tournaments/backgrounds/pickem_mainmenu_promo_23_png.vtex_c CRC:00d9395207 size:66395
@@ -84916,7 +84917,7 @@ panorama/styles/radialmenubase.vcss_c CRC:00b3952c3a size:19623
panorama/styles/radialradio.vcss_c CRC:0080b13d3f size:17091
panorama/styles/rankup_redemption_store.vcss_c CRC:00613b3861 size:16582
panorama/styles/rating_emblem.vcss_c CRC:0098edcdc2 size:10797
-panorama/styles/retakeloadout.vcss_c CRC:00510fb26e size:23640
+panorama/styles/retakeloadout.vcss_c CRC:003bf4073c size:23110
panorama/styles/scoreboard.vcss_c CRC:00b5e5732d size:50893
panorama/styles/segmented_progress_bar.vcss_c CRC:00dbf42798 size:7033
panorama/styles/settings/settings.vcss_c CRC:0077fe3798 size:17843
@@ -87979,36 +87980,36 @@ pulse/csgo_devonly/de_vertigo_script.vpulse_c CRC:00af116e39 size:4860
radial_quickinventory.txt CRC:005a0c1bf5 size:1080
rebuy.txt CRC:008332da3a size:1688
resource/clientscheme.res CRC:00eb299496 size:14136
-resource/csgo_brazilian.txt CRC:0022c7c9bd size:5024748
-resource/csgo_bulgarian.txt CRC:00e6aa803c size:7758759
-resource/csgo_czech.txt CRC:00aa2da1f8 size:5097152
-resource/csgo_danish.txt CRC:001655e064 size:5003477
-resource/csgo_dutch.txt CRC:007e635df4 size:5049457
+resource/csgo_brazilian.txt CRC:0015b08cfa size:5025205
+resource/csgo_bulgarian.txt CRC:00ad431afd size:7759343
+resource/csgo_czech.txt CRC:005482a707 size:5097565
+resource/csgo_danish.txt CRC:00bb321d04 size:5004038
+resource/csgo_dutch.txt CRC:0045192cf1 size:5049873
resource/csgo_english.txt CRC:00e83600df size:4879039
-resource/csgo_finnish.txt CRC:0040d7f29a size:4960257
-resource/csgo_french.txt CRC:00cf90f727 size:5254356
-resource/csgo_german.txt CRC:00768f902a size:5164887
-resource/csgo_greek.txt CRC:00d09261eb size:7151367
-resource/csgo_hungarian.txt CRC:0009ea7f21 size:5078539
-resource/csgo_indonesian.txt CRC:00d09ed436 size:4729034
-resource/csgo_italian.txt CRC:00f5d5f436 size:5178073
-resource/csgo_japanese.txt CRC:008a06f43d size:5332955
-resource/csgo_koreana.txt CRC:0068a1e99c size:5096308
-resource/csgo_latam.txt CRC:00436dd96a size:5188121
-resource/csgo_norwegian.txt CRC:00f79e57f3 size:4924516
-resource/csgo_polish.txt CRC:003eee27c8 size:5321400
-resource/csgo_portuguese.txt CRC:00ed24ede6 size:5059879
-resource/csgo_romanian.txt CRC:00b3958fb9 size:5270915
-resource/csgo_russian.txt CRC:00ffa91341 size:6563734
-resource/csgo_schinese.txt CRC:000d6871a9 size:4931452
+resource/csgo_finnish.txt CRC:00a79f8c2b size:4960818
+resource/csgo_french.txt CRC:002433e025 size:5254990
+resource/csgo_german.txt CRC:008c76453f size:5165453
+resource/csgo_greek.txt CRC:00a68efa30 size:7151367
+resource/csgo_hungarian.txt CRC:000a1961a8 size:5078957
+resource/csgo_indonesian.txt CRC:0023f7fd61 size:4729593
+resource/csgo_italian.txt CRC:0019309189 size:5178719
+resource/csgo_japanese.txt CRC:007c931b86 size:5333463
+resource/csgo_koreana.txt CRC:007c56bde5 size:5096798
+resource/csgo_latam.txt CRC:00430502d0 size:5188734
+resource/csgo_norwegian.txt CRC:001049104e size:4925063
+resource/csgo_polish.txt CRC:0048f2bc13 size:5321400
+resource/csgo_portuguese.txt CRC:00bf8fe57b size:5060318
+resource/csgo_romanian.txt CRC:00f8a9b880 size:5271518
+resource/csgo_russian.txt CRC:0089b5889a size:6563734
+resource/csgo_schinese.txt CRC:007b74ea72 size:4931452
resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645
-resource/csgo_spanish.txt CRC:00f5db4811 size:5159573
-resource/csgo_swedish.txt CRC:00b8b4e017 size:5031803
-resource/csgo_tchinese.txt CRC:008252f083 size:4627815
-resource/csgo_thai.txt CRC:00f47187a0 size:8128621
-resource/csgo_turkish.txt CRC:00ea144dfc size:5165506
-resource/csgo_ukrainian.txt CRC:00ab17d5bc size:6621012
-resource/csgo_vietnamese.txt CRC:00985185c2 size:5450532
+resource/csgo_spanish.txt CRC:00deb972b5 size:5160188
+resource/csgo_swedish.txt CRC:00b4c12d74 size:5032375
+resource/csgo_tchinese.txt CRC:00f44e6b58 size:4627815
+resource/csgo_thai.txt CRC:00826d1c7b size:8128621
+resource/csgo_turkish.txt CRC:00cabf481a size:5165905
+resource/csgo_ukrainian.txt CRC:003ac03c61 size:6621798
+resource/csgo_vietnamese.txt CRC:00ee4d1e19 size:5450532
resource/game.gameevents CRC:0090de10bc size:9837
resource/halflife2.vfont CRC:00b064848c size:58000
resource/mod.gameevents CRC:0035ddf423 size:20770
@@ -88164,7 +88165,7 @@ scripts/talker/swat_fem.vrr_c CRC:00da568c7a size:22638
scripts/tools/anim_preview_archetypes.vdata_c CRC:00aefc657a size:6968
scripts/tools/game_asset_tags.vdata_c CRC:00c8bdb670 size:2787
scripts/weapons.vdata_c CRC:007f3daee4 size:26903
-scripts/workshop_cvar_whitelist.txt CRC:009790852f size:18153
+scripts/workshop_cvar_whitelist.txt CRC:00ed704614 size:18179
smartprops/bicycle/bicycle_rack.vsmart_c CRC:0097f4a6c4 size:1423
smartprops/bicycle/bicycle_single.vsmart_c CRC:001f5c91ad size:1628
smartprops/debris/debris_ceiling_tiles_01.vsmart_c CRC:00c0a90e2e size:2600
game/csgo/pak01_dir/maps/de_ancient_night_retake.txt
modified • +33 / -32 • changes: 65
Show patch
@@ -1,6 +1,7 @@
// Spawn locations and angles.
// The first three numbers are the X Y Z coordinates of the player location.
// The last three numbers are the PITCH YAW ROLL parameters of the player camera.
+// Only YAW is used. PITCH and ROLL must be 0.
// To easily get these numbers, walk around the map and type "getpos" in the console.
// The console will return the 6 numbers that you need to paste into your entry below.
@@ -13,54 +14,54 @@
// A site
"0"
{
- "0" "-1759.547363 -691.041321 136.093811 1.220013 95.890266 0.000000" // a main entrance
- "1" "-1720.095337 -1101.785645 41.545643 -6.952028 93.323975 0.000000" // a main bottom stairs
- "2" "-475.383362 -569.678711 101.086891 -1.222149 100.136345 0.000000" // bottom mid
- "3" "-463.581665 -305.030914 120.122978 -3.774165 98.354080 0.000000" // top mid
- "4" "-492.094421 385.699738 224.093811 0.845888 98.354202 0.000000" // top mid CT
- "5" "45.615307 667.132813 138.093811 0.845888 98.354202 0.000000" // near CT spawn
- "6" "201.624390 865.586609 158.259491 6.455836 -154.857803 0.000000" // near CT spawn 2
- "7" "487.844177 905.601135 175.624710 4.343833 -164.845978 0.000000" // near CT spawn 3
+ "0" "-1759.547363 -691.041321 136.093811 0.000000 95.890266 0.000000" // a main entrance
+ "1" "-1720.095337 -1101.785645 41.545643 0.000000 93.323975 0.000000" // a main bottom stairs
+ "2" "-475.383362 -569.678711 101.086891 0.000000 100.136345 0.000000" // bottom mid
+ "3" "-463.581665 -305.030914 120.122978 0.000000 98.354080 0.000000" // top mid
+ "4" "-492.094421 385.699738 224.093811 0.000000 98.354202 0.000000" // top mid CT
+ "5" "45.615307 667.132813 138.093811 0.000000 98.354202 0.000000" // near CT spawn
+ "6" "201.624390 865.586609 158.259491 0.000000 -154.857803 0.000000" // near CT spawn 2
+ "7" "487.844177 905.601135 175.624710 0.000000 -164.845978 0.000000" // near CT spawn 3
}
// B site
"1"
{
- "0" "567.364685 -1890.279297 -105.470490 -6.819995 67.141991 0.000000" // water
- "1" "684.835693 -2066.143555 -88.535599 0.308547 123.051720 0.000000" // water 2
- "2" "-152.142883 -701.610596 220.771301 2.231987 -4.108181 0.000000" // ledge
- "3" "-554.089600 -824.356934 96.093666 -10.955970 15.859979 0.000000" // bottom ledge
- "4" "-642.909546 365.234863 239.093811 9.029978 50.165798 0.000000" // ct house
- "5" "-472.417023 1336.832886 88.635345 -0.782018 -56.217842 0.000000" // ct spawn
- "6" "-980.234436 1086.060669 130.093811 3.970006 -1.415828 0.000000" // ct spawn back
- "7" "-175.877289 1419.091919 86.697815 -4.037995 -92.803886 0.000000" // ct spawn back
+ "0" "567.364685 -1890.279297 -105.470490 0.000000 67.141991 0.000000" // water
+ "1" "684.835693 -2066.143555 -88.535599 0.000000 123.051720 0.000000" // water 2
+ "2" "-152.142883 -701.610596 220.771301 0.000000 -4.108181 0.000000" // ledge
+ "3" "-554.089600 -824.356934 96.093666 0.000000 15.859979 0.000000" // bottom ledge
+ "4" "-642.909546 365.234863 239.093811 0.000000 50.165798 0.000000" // ct house
+ "5" "-472.417023 1336.832886 88.635345 0.000000 -56.217842 0.000000" // ct spawn
+ "6" "-980.234436 1086.060669 130.093811 0.000000 -1.415828 0.000000" // ct spawn back
+ "7" "-175.877289 1419.091919 86.697815 0.000000 -92.803886 0.000000" // ct spawn back
}
}
"T"
{
// A site
"0"
{
- "0" "-1709.706909 1135.055542 116.093811 2.772409 -66.596115 0.000000"
- "1" "-1868.109375 985.488525 116.093811 -1.825591 -105.316277 0.000000"
- "2" "-1725.932861 699.505554 116.093811 -0.967592 -142.584152 0.000000"
- "3" "-1585.692139 712.646423 116.093811 -1.495591 -49.128235 0.000000"
- "4" "-1125.890259 728.003296 117.929688 -2.595578 -125.336327 0.000000"
- "5" "-1126.972168 863.269714 121.537674 1.408422 73.073593 0.000000"
- "6" "-1680.200439 816.424927 116.093811 1.386419 -131.738251 0.000000"
- "7" "-2096.523438 834.952454 117.893181 -0.879576 -83.448250 0.000000"
+ "0" "-1709.706909 1135.055542 116.093811 0.000000 -66.596115 0.000000"
+ "1" "-1868.109375 985.488525 116.093811 0.000000 -105.316277 0.000000"
+ "2" "-1725.932861 699.505554 116.093811 0.000000 -142.584152 0.000000"
+ "3" "-1585.692139 712.646423 116.093811 0.000000 -49.128235 0.000000"
+ "4" "-1125.890259 728.003296 117.929688 0.000000 -125.336327 0.000000"
+ "5" "-1126.972168 863.269714 121.537674 0.000000 73.073593 0.000000"
+ "6" "-1680.200439 816.424927 116.093811 0.000000 -131.738251 0.000000"
+ "7" "-2096.523438 834.952454 117.893181 0.000000 -83.448250 0.000000"
}
// B site
"1"
{
- "0" "720.925110 312.794495 188.048004 4.334420 101.417526 0.000000"
- "1" "1268.008057 308.640961 187.482849 2.970432 129.599426 0.000000"
- "2" "900.354004 294.832367 189.451782 4.070419 -30.882408 0.000000"
- "3" "1057.938110 -7.488391 197.093811 8.646417 -56.776390 0.000000"
- "4" "686.529846 -237.705872 202.652267 1.056419 44.225487 0.000000"
- "5" "1045.335693 101.515129 197.093811 6.028458 -50.286575 0.000000"
- "6" "815.011841 245.587067 195.093811 5.280452 155.999786 0.000000"
- "7" "1269.546631 390.912201 187.565704 2.882415 105.012016 0.000000"
+ "0" "720.925110 312.794495 188.048004 0.000000 101.417526 0.000000"
+ "1" "1268.008057 308.640961 187.482849 0.000000 129.599426 0.000000"
+ "2" "900.354004 294.832367 189.451782 0.000000 -30.882408 0.000000"
+ "3" "1057.938110 -7.488391 197.093811 0.000000 -56.776390 0.000000"
+ "4" "686.529846 -237.705872 202.652267 0.000000 44.225487 0.000000"
+ "5" "1045.335693 101.515129 197.093811 0.000000 -50.286575 0.000000"
+ "6" "815.011841 245.587067 195.093811 0.000000 155.999786 0.000000"
+ "7" "1269.546631 390.912201 187.565704 0.000000 105.012016 0.000000"
}
}
}
game/csgo/pak01_dir/maps/de_ancient_retake.txt
modified • +33 / -32 • changes: 65
Show patch
@@ -1,6 +1,7 @@
// Spawn locations and angles.
// The first three numbers are the X Y Z coordinates of the player location.
// The last three numbers are the PITCH YAW ROLL parameters of the player camera.
+// Only YAW is used. PITCH and ROLL must be 0.
// To easily get these numbers, walk around the map and type "getpos" in the console.
// The console will return the 6 numbers that you need to paste into your entry below.
@@ -13,54 +14,54 @@
// A site
"0"
{
- "0" "-1759.547363 -691.041321 136.093811 1.220013 95.890266 0.000000" // a main entrance
- "1" "-1720.095337 -1101.785645 41.545643 -6.952028 93.323975 0.000000" // a main bottom stairs
- "2" "-475.383362 -569.678711 101.086891 -1.222149 100.136345 0.000000" // bottom mid
- "3" "-463.581665 -305.030914 120.122978 -3.774165 98.354080 0.000000" // top mid
- "4" "-492.094421 385.699738 224.093811 0.845888 98.354202 0.000000" // top mid CT
- "5" "45.615307 667.132813 138.093811 0.845888 98.354202 0.000000" // near CT spawn
- "6" "201.624390 865.586609 158.259491 6.455836 -154.857803 0.000000" // near CT spawn 2
- "7" "487.844177 905.601135 175.624710 4.343833 -164.845978 0.000000" // near CT spawn 3
+ "0" "-1759.547363 -691.041321 136.093811 0.000000 95.890266 0.000000" // a main entrance
+ "1" "-1720.095337 -1101.785645 41.545643 0.000000 93.323975 0.000000" // a main bottom stairs
+ "2" "-475.383362 -569.678711 101.086891 0.000000 100.136345 0.000000" // bottom mid
+ "3" "-463.581665 -305.030914 120.122978 0.000000 98.354080 0.000000" // top mid
+ "4" "-492.094421 385.699738 224.093811 0.000000 98.354202 0.000000" // top mid CT
+ "5" "45.615307 667.132813 138.093811 0.000000 98.354202 0.000000" // near CT spawn
+ "6" "201.624390 865.586609 158.259491 0.000000 -154.857803 0.000000" // near CT spawn 2
+ "7" "487.844177 905.601135 175.624710 0.000000 -164.845978 0.000000" // near CT spawn 3
}
// B site
"1"
{
- "0" "567.364685 -1890.279297 -105.470490 -6.819995 67.141991 0.000000" // water
- "1" "684.835693 -2066.143555 -88.535599 0.308547 123.051720 0.000000" // water 2
- "2" "-152.142883 -701.610596 220.771301 2.231987 -4.108181 0.000000" // ledge
- "3" "-554.089600 -824.356934 96.093666 -10.955970 15.859979 0.000000" // bottom ledge
- "4" "-642.909546 365.234863 239.093811 9.029978 50.165798 0.000000" // ct house
- "5" "-472.417023 1336.832886 88.635345 -0.782018 -56.217842 0.000000" // ct spawn
- "6" "-980.234436 1086.060669 130.093811 3.970006 -1.415828 0.000000" // ct spawn back
- "7" "-175.877289 1419.091919 86.697815 -4.037995 -92.803886 0.000000" // ct spawn back
+ "0" "567.364685 -1890.279297 -105.470490 0.000000 67.141991 0.000000" // water
+ "1" "684.835693 -2066.143555 -88.535599 0.000000 123.051720 0.000000" // water 2
+ "2" "-152.142883 -701.610596 220.771301 0.000000 -4.108181 0.000000" // ledge
+ "3" "-554.089600 -824.356934 96.093666 0.000000 15.859979 0.000000" // bottom ledge
+ "4" "-642.909546 365.234863 239.093811 0.000000 50.165798 0.000000" // ct house
+ "5" "-472.417023 1336.832886 88.635345 0.000000 -56.217842 0.000000" // ct spawn
+ "6" "-980.234436 1086.060669 130.093811 0.000000 -1.415828 0.000000" // ct spawn back
+ "7" "-175.877289 1419.091919 86.697815 0.000000 -92.803886 0.000000" // ct spawn back
}
}
"T"
{
// A site
"0"
{
- "0" "-1709.706909 1135.055542 116.093811 2.772409 -66.596115 0.000000"
- "1" "-1868.109375 985.488525 116.093811 -1.825591 -105.316277 0.000000"
- "2" "-1725.932861 699.505554 116.093811 -0.967592 -142.584152 0.000000"
- "3" "-1585.692139 712.646423 116.093811 -1.495591 -49.128235 0.000000"
- "4" "-1125.890259 728.003296 117.929688 -2.595578 -125.336327 0.000000"
- "5" "-1126.972168 863.269714 121.537674 1.408422 73.073593 0.000000"
- "6" "-1680.200439 816.424927 116.093811 1.386419 -131.738251 0.000000"
- "7" "-2096.523438 834.952454 117.893181 -0.879576 -83.448250 0.000000"
+ "0" "-1709.706909 1135.055542 116.093811 0.000000 -66.596115 0.000000"
+ "1" "-1868.109375 985.488525 116.093811 0.000000 -105.316277 0.000000"
+ "2" "-1725.932861 699.505554 116.093811 0.000000 -142.584152 0.000000"
+ "3" "-1585.692139 712.646423 116.093811 0.000000 -49.128235 0.000000"
+ "4" "-1125.890259 728.003296 117.929688 0.000000 -125.336327 0.000000"
+ "5" "-1126.972168 863.269714 121.537674 0.000000 73.073593 0.000000"
+ "6" "-1680.200439 816.424927 116.093811 0.000000 -131.738251 0.000000"
+ "7" "-2096.523438 834.952454 117.893181 0.000000 -83.448250 0.000000"
}
// B site
"1"
{
- "0" "720.925110 312.794495 188.048004 4.334420 101.417526 0.000000"
- "1" "1268.008057 308.640961 187.482849 2.970432 129.599426 0.000000"
- "2" "900.354004 294.832367 189.451782 4.070419 -30.882408 0.000000"
- "3" "1057.938110 -7.488391 197.093811 8.646417 -56.776390 0.000000"
- "4" "686.529846 -237.705872 202.652267 1.056419 44.225487 0.000000"
- "5" "1045.335693 101.515129 197.093811 6.028458 -50.286575 0.000000"
- "6" "815.011841 245.587067 195.093811 5.280452 155.999786 0.000000"
- "7" "1269.546631 390.912201 187.565704 2.882415 105.012016 0.000000"
+ "0" "720.925110 312.794495 188.048004 0.000000 101.417526 0.000000"
+ "1" "1268.008057 308.640961 187.482849 0.000000 129.599426 0.000000"
+ "2" "900.354004 294.832367 189.451782 0.000000 -30.882408 0.000000"
+ "3" "1057.938110 -7.488391 197.093811 0.000000 -56.776390 0.000000"
+ "4" "686.529846 -237.705872 202.652267 0.000000 44.225487 0.000000"
+ "5" "1045.335693 101.515129 197.093811 0.000000 -50.286575 0.000000"
+ "6" "815.011841 245.587067 195.093811 0.000000 155.999786 0.000000"
+ "7" "1269.546631 390.912201 187.565704 0.000000 105.012016 0.000000"
}
}
}
game/csgo/pak01_dir/maps/de_anubis_retake.txt
modified • +28 / -27 • changes: 55
Show patch
@@ -1,6 +1,7 @@
// Spawn locations and angles.
// The first three numbers are the X Y Z coordinates of the player location.
// The last three numbers are the PITCH YAW ROLL parameters of the player camera.
+// Only YAW is used. PITCH and ROLL must be 0.
// To easily get these numbers, walk around the map and type "getpos" in the console.
// The console will return the 6 numbers that you need to paste into your entry below.
@@ -13,48 +14,48 @@
// A site
"0"
{
- "0" "-682.722290 2064.249023 80.056595 2.442140 18.118698 0.000000" // ct spawn
- "1" "-313.839661 2634.288818 -30.968750 4.268129 -8.215336 0.000000" // ct spawn water
- "2" "-897.222107 1130.881348 99.031250 -1.715892 0.694614 0.000000" // wood
- "3" "-147.081421 -0.954895 64.262917 0.572109 61.304386 -0.000000" // mid bridge
- "4" "922.227600 -451.963257 32.031250 5.654140 105.656723 -0.000000" // t stairs
- "5" "126.654060 218.923645 -124.833694 -1.891827 -0.608996 0.000000" // under bridge, water
- "6" "-132.171387 249.622650 64.034569 0.770128 42.400875 0.000000" // bridge window
+ "0" "-682.722290 2064.249023 80.056595 0.000000 18.118698 0.000000" // ct spawn
+ "1" "-313.839661 2634.288818 -30.968750 0.000000 -8.215336 0.000000" // ct spawn water
+ "2" "-897.222107 1130.881348 99.031250 0.000000 0.694614 0.000000" // wood
+ "3" "-147.081421 -0.954895 64.262917 0.000000 61.304386 0.000000" // mid bridge
+ "4" "922.227600 -451.963257 32.031250 0.000000 105.656723 0.000000" // t stairs
+ "5" "126.654060 218.923645 -124.833694 0.000000 -0.608996 0.000000" // under bridge, water
+ "6" "-132.171387 249.622650 64.034569 0.000000 42.400875 0.000000" // bridge window
}
// B site
"1"
{
- "0" "1044.943359 650.306091 -124.833618 -0.087786 -128.222382 0.000000" // a water
- "1" "219.437271 1020.341431 32.031250 -2.441797 -130.523499 0.000000" // ct mid
- "2" "-81.979370 786.733704 64.266541 0.066199 -91.121056 0.000000" // mid
- "3" "-282.693237 -288.023132 64.264076 -3.123806 -149.661575 0.000000" // mid to b
- "4" "-338.627075 2631.813965 -30.968750 -3.233819 -141.608551 0.000000" // ct spawn water
- "5" "588.024536 1301.065063 -22.218842 -3.123810 -179.579849 0.000000" // camera
- "6" "772.013794 1334.301270 -23.968750 -1.693856 -173.002014 0.000000" // camera towards a
- "7" "403.674835 2057.003174 -55.968750 2.112144 110.129517 0.000000" // heaven towards ct
+ "0" "1044.943359 650.306091 -124.833618 0.000000 -128.222382 0.000000" // a water
+ "1" "219.437271 1020.341431 32.031250 0.000000 -130.523499 0.000000" // ct mid
+ "2" "-81.979370 786.733704 64.266541 0.000000 -91.121056 0.000000" // mid
+ "3" "-282.693237 -288.023132 64.264076 0.000000 -149.661575 0.000000" // mid to b
+ "4" "-338.627075 2631.813965 -30.968750 0.000000 -141.608551 0.000000" // ct spawn water
+ "5" "588.024536 1301.065063 -22.218842 0.000000 -179.579849 0.000000" // camera
+ "6" "772.013794 1334.301270 -23.968750 0.000000 -173.002014 0.000000" // camera towards a
+ "7" "403.674835 2057.003174 -55.968750 0.000000 110.129517 0.000000" // heaven towards ct
}
}
"T"
{
// A site
"0"
{
- "0" "1682.151123 1552.544800 -87.968750 1.858028 130.619522 0.000000" // near a main
- "1" "1713.895142 1910.501465 -19.968750 1.606064 -168.110855 0.000000" // water
- "2" "1226.273926 1592.610352 -87.968750 -3.761937 -167.758728 0.000000" // tarp
- "3" "1169.168335 2109.280273 -60.274902 -4.729924 171.803253 -0.000000" // scaling heaven
- "4" "989.038147 2244.589111 24.031250 9.800014 -130.828140 0.000000" // heaven
- "5" "1347.072632 1717.051514 -85.968750 -6.115903 -156.076813 0.000000" // near default
+ "0" "1682.151123 1552.544800 -87.968750 0.000000 130.619522 0.000000" // near a main
+ "1" "1713.895142 1910.501465 -19.968750 0.000000 -168.110855 0.000000" // water
+ "2" "1226.273926 1592.610352 -87.968750 0.000000 -167.758728 0.000000" // tarp
+ "3" "1169.168335 2109.280273 -60.274902 0.000000 171.803253 0.000000" // scaling heaven
+ "4" "989.038147 2244.589111 24.031250 0.000000 -130.828140 0.000000" // heaven
+ "5" "1347.072632 1717.051514 -85.968750 0.000000 -156.076813 0.000000" // near default
}
// B site
"1"
{
- "0" "-1421.742432 552.547424 64.031250 3.960124 20.403915 0.000000" // mid-b site
- "1" "-900.317322 319.405914 8.031250 -3.453902 101.737846 0.000000" // near ebox
- "2" "-607.446533 575.537354 102.031250 1.870086 140.392090 0.000000" // cubby
- "3" "-896.453796 874.513794 99.031250 1.364075 102.692116 0.000000" // near wood
- "4" "-1264.500732 329.340424 56.981785 0.748086 48.198559 0.000000" // pillar
- "5" "-1548.147949 737.432556 102.031250 7.710052 -39.080292 0.000000" // pizza
+ "0" "-1421.742432 552.547424 64.031250 0.000000 20.403915 0.000000" // mid-b site
+ "1" "-900.317322 319.405914 8.031250 0.000000 101.737846 0.000000" // near ebox
+ "2" "-607.446533 575.537354 102.031250 0.000000 140.392090 0.000000" // cubby
+ "3" "-896.453796 874.513794 99.031250 0.000000 102.692116 0.000000" // near wood
+ "4" "-1264.500732 329.340424 56.981785 0.000000 48.198559 0.000000" // pillar
+ "5" "-1548.147949 737.432556 102.031250 0.000000 -39.080292 0.000000" // pizza
}
}
}
game/csgo/pak01_dir/maps/de_cache_retake.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -1,6 +1,7 @@
// Spawn locations and angles.
// The first three numbers are the X Y Z coordinates of the player location.
// The last three numbers are the PITCH YAW ROLL parameters of the player camera.
+// Only YAW is used. PITCH and ROLL must be 0.
// To easily get these numbers, walk around the map and type "getpos" in the console.
// The console will return the 6 numbers that you need to paste into your entry below.
game/csgo/pak01_dir/maps/de_dust2_retake.txt
modified • +30 / -29 • changes: 59
Show patch
@@ -1,6 +1,7 @@
// Spawn locations and angles.
// The first three numbers are the X Y Z coordinates of the player location.
// The last three numbers are the PITCH YAW ROLL parameters of the player camera.
+// Only YAW is used. PITCH and ROLL must be 0.
// To easily get these numbers, walk around the map and type "getpos" in the console.
// The console will return the 6 numbers that you need to paste into your entry below.
@@ -13,50 +14,50 @@
// A site
"0"
{
- "0" "-846.599976 1444.890869 -48.501801 0.943810 1.405786 0.000000" // tunnels
- "1" "-457.336212 1054.574707 1.844280 0.363007 50.313972 0.000000" // xbox
- "2" "-400.334991 678.978882 64.093811 1.137411 66.576416 0.000000" // top mid
- "3" "-193.614960 396.257385 62.181545 -0.024189 81.846718 0.000000" // top mid again
- "4" "434.117462 -1.090969 60.376881 -2.032789 57.888672 0.000000" // long doors
- "5" "555.093811 -135.622513 59.610733 -0.338788 82.621094 0.000000" // long doors again
- "6" "-677.613525 2415.142822 -32.683861 3.605824 -26.400053 0.000000" // bottom mid
- "7" "-516.179565 1745.433228 -54.061600 1.040630 55.541264 0.000000" // bottom mid
+ "0" "-846.599976 1444.890869 -48.501801 0.000000 1.405786 0.000000" // tunnels
+ "1" "-457.336212 1054.574707 1.844280 0.000000 50.313972 0.000000" // xbox
+ "2" "-400.334991 678.978882 64.093811 0.000000 66.576416 0.000000" // top mid
+ "3" "-193.614960 396.257385 62.181545 0.000000 81.846718 0.000000" // top mid again
+ "4" "434.117462 -1.090969 60.376881 0.000000 57.888672 0.000000" // long doors
+ "5" "555.093811 -135.622513 59.610733 0.000000 82.621094 0.000000" // long doors again
+ "6" "-677.613525 2415.142822 -32.683861 0.000000 -26.400053 0.000000" // bottom mid
+ "7" "-516.179565 1745.433228 -54.061600 0.000000 55.541264 0.000000" // bottom mid
}
// B site
"1"
{
- "0" "-483.404663 1739.181641 -58.238190 -1.137366 101.860626 0.000000" // mid doors
- "1" "-356.637268 1266.448120 -55.822693 1.161641 122.842247 0.000000" // xbox
- "2" "-152.456589 1412.368896 63.691505 6.485623 170.056534 0.000000" // cat
- "3" "-1550.600952 275.411560 71.745834 -3.242788 101.546806 0.000000" // outside tuns
- "4" "-1777.189453 285.950958 63.664089 -2.952386 78.822899 0.000000" // outside tuns
- "5" "283.011230 2364.396729 -56.154083 1.331001 -141.082947 0.000000" // ct spawn
- "6" "-519.938232 1709.765137 -53.676819 -1.621401 92.496017 0.000000" // mid doors
+ "0" "-483.404663 1739.181641 -58.238190 0.000000 101.860626 0.000000" // mid doors
+ "1" "-356.637268 1266.448120 -55.822693 0.000000 122.842247 0.000000" // xbox
+ "2" "-152.456589 1412.368896 63.691505 0.000000 170.056534 0.000000" // cat
+ "3" "-1550.600952 275.411560 71.745834 0.000000 101.546806 0.000000" // outside tuns
+ "4" "-1777.189453 285.950958 63.664089 0.000000 78.822899 0.000000" // outside tuns
+ "5" "283.011230 2364.396729 -56.154083 0.000000 -141.082947 0.000000" // ct spawn
+ "6" "-519.938232 1709.765137 -53.676819 0.000000 92.496017 0.000000" // mid doors
}
}
"T"
{
// A site
"0"
{
- "0" "1139.122192 2383.754150 160.579727 6.709989 -79.670036 0.000000"
- "1" "1051.031250 3043.428955 194.564865 6.104987 -59.705238 0.000000"
- "2" "1581.504639 2698.182373 167.690628 7.754992 -111.185661 0.000000"
- "3" "800.029114 2748.880615 162.849014 0.824991 -115.395638 0.000000"
- "4" "934.400391 2758.107910 166.024689 0.659932 -121.885841 0.000000"
- "5" "961.684265 2462.519287 160.809616 8.524945 -55.720852 0.000000"
- "6" "1561.968750 3059.968750 173.093811 2.859952 -105.055649 0.000000"
+ "0" "1139.122192 2383.754150 160.579727 0.000000 -79.670036 0.000000"
+ "1" "1051.031250 3043.428955 194.564865 0.000000 -59.705238 0.000000"
+ "2" "1581.504639 2698.182373 167.690628 0.000000 -111.185661 0.000000"
+ "3" "800.029114 2748.880615 162.849014 0.000000 -115.395638 0.000000"
+ "4" "934.400391 2758.107910 166.024689 0.000000 -121.885841 0.000000"
+ "5" "961.684265 2462.519287 160.809616 0.000000 -55.720852 0.000000"
+ "6" "1561.968750 3059.968750 173.093811 0.000000 -105.055649 0.000000"
}
// B site
"1"
{
- "0" "-2082.015869 2927.534424 98.116425 0.439947 -85.420326 0.000000"
- "1" "-1570.835083 2535.531494 67.592232 0.659938 -90.700371 0.000000"
- "2" "-2151.545898 2185.592041 65.203217 -0.550066 -69.000519 0.000000"
- "3" "-2139.478027 2386.677002 85.813980 -0.110149 -79.120506 0.000000"
- "4" "-1912.131470 2981.505127 103.982697 1.429781 -93.200829 0.000000"
- "5" "-1682.210449 2839.806152 84.535492 1.979795 -64.161041 0.000000"
- "6" "-1421.781616 2777.520264 80.034912 -0.704973 -120.040497 0.000000"
+ "0" "-2082.015869 2927.534424 98.116425 0.000000 -85.420326 0.000000"
+ "1" "-1570.835083 2535.531494 67.592232 0.000000 -90.700371 0.000000"
+ "2" "-2151.545898 2185.592041 65.203217 0.000000 -69.000519 0.000000"
+ "3" "-2139.478027 2386.677002 85.813980 0.000000 -79.120506 0.000000"
+ "4" "-1912.131470 2981.505127 103.982697 0.000000 -93.200829 0.000000"
+ "5" "-1682.210449 2839.806152 84.535492 0.000000 -64.161041 0.000000"
+ "6" "-1421.781616 2777.520264 80.034912 0.000000 -120.040497 0.000000"
}
}
}
game/csgo/pak01_dir/maps/de_inferno_retake.txt
modified • +13 / -12 • changes: 25
Show patch
@@ -1,6 +1,7 @@
// Spawn locations and angles.
// The first three numbers are the X Y Z coordinates of the player location.
// The last three numbers are the PITCH YAW ROLL parameters of the player camera.
+// Only YAW is used. PITCH and ROLL must be 0.
// To easily get these numbers, walk around the map and type "getpos" in the console.
// The console will return the 6 numbers that you need to paste into your entry below.
@@ -38,22 +39,22 @@
// A site
"0"
{
- "0" "1980.864868 691.333130 224.093811 0.275019 -90.190948 0.000000"
- "1" "2111.051514 516.669739 224.093811 1.210017 51.929066 0.000000"
- "2" "2312.475830 158.543716 192.119934 0.660010 -170.106003 0.000000"
- "3" "2030.101563 91.219025 195.871506 1.100013 -178.466217 0.000000"
- "4" "1851.353394 307.282959 224.093811 5.390013 -1.506194 0.000000"
- "5" "2066.439209 389.242218 224.093811 3.575027 59.323837 0.000000"
+ "0" "1980.864868 691.333130 224.093811 0.000000 -90.190948 0.000000"
+ "1" "2111.051514 516.669739 224.093811 0.000000 51.929066 0.000000"
+ "2" "2312.475830 158.543716 192.119934 0.000000 -170.106003 0.000000"
+ "3" "2030.101563 91.219025 195.871506 0.000000 -178.466217 0.000000"
+ "4" "1851.353394 307.282959 224.093811 0.000000 -1.506194 0.000000"
+ "5" "2066.439209 389.242218 224.093811 0.000000 59.323837 0.000000"
}
// B site
"1"
{
- "0" "327.007019 2958.958496 224.093811 0.165006 61.244827 0.000000"
- "1" "493.116791 2920.305664 224.093811 0.440006 -57.995209 0.000000"
- "2" "546.782410 2785.582520 224.093811 3.025007 -5.264832 0.000000"
- "3" "540.284363 2640.538086 224.093811 7.205009 -49.044861 0.000000"
- "4" "451.179962 2477.032959 224.093811 0.825007 88.150040 0.000000"
- "5" "173.078644 2463.477539 224.093811 0.165024 63.014217 0.000000"
+ "0" "327.007019 2958.958496 224.093811 0.000000 61.244827 0.000000"
+ "1" "493.116791 2920.305664 224.093811 0.000000 -57.995209 0.000000"
+ "2" "546.782410 2785.582520 224.093811 0.000000 -5.264832 0.000000"
+ "3" "540.284363 2640.538086 224.093811 0.000000 -49.044861 0.000000"
+ "4" "451.179962 2477.032959 224.093811 0.000000 88.150040 0.000000"
+ "5" "173.078644 2463.477539 224.093811 0.000000 63.014217 0.000000"
}
}
}
game/csgo/pak01_dir/maps/de_mirage_retake.txt
modified • +28 / -27 • changes: 55
Show patch
@@ -1,6 +1,7 @@
// Spawn locations and angles.
// The first three numbers are the X Y Z coordinates of the player location.
// The last three numbers are the PITCH YAW ROLL parameters of the player camera.
+// Only YAW is used. PITCH and ROLL must be 0.
// To easily get these numbers, walk around the map and type "getpos" in the console.
// The console will return the 6 numbers that you need to paste into your entry below.
@@ -13,48 +14,48 @@
// A site
"0"
{
- "0" "-1677.126709 -1634.004761 -199.909851 -1.040606 -70.527283 0.000000" // ct spawn towards stairs
- "1" "-1656.067993 -1312.397339 -198.956573 -9.220211 46.770073 0.000000" // ct spawn towards window
- "2" "-1900.843750 -501.388794 -103.906342 -0.048411 -35.025795 0.000000" // market
- "3" "-1098.085815 247.777573 -108.550049 0.483987 -24.305056 0.000000" // short/cat
- "4" "-1015.740295 20.759636 -303.906189 0.024157 -89.112495 0.000000" // underpass
- "5" "178.497757 -432.409790 -102.906189 4.839993 -153.049103 0.000000" // top of mid
- "6" "1308.333252 -493.088531 -103.906189 0.846988 -105.737518 0.000000" // t spawn
- "7" "937.698242 -2309.016357 24.093811 3.533107 178.540085 0.000000" // palace
- "8" "1003.887695 -1429.493896 -103.906189 -9.220247 -100.872650 0.000000" // palace towards t spawn
+ "0" "-1677.126709 -1634.004761 -199.909851 0.000000 -70.527283 0.000000" // ct spawn towards stairs
+ "1" "-1656.067993 -1312.397339 -198.956573 0.000000 46.770073 0.000000" // ct spawn towards window
+ "2" "-1900.843750 -501.388794 -103.906342 0.000000 -35.025795 0.000000" // market
+ "3" "-1098.085815 247.777573 -108.550049 0.000000 -24.305056 0.000000" // short/cat
+ "4" "-1015.740295 20.759636 -303.906189 0.000000 -89.112495 0.000000" // underpass
+ "5" "178.497757 -432.409790 -102.906189 0.000000 -153.049103 0.000000" // top of mid
+ "6" "1308.333252 -493.088531 -103.906189 0.000000 -105.737518 0.000000" // t spawn
+ "7" "937.698242 -2309.016357 24.093811 0.000000 178.540085 0.000000" // palace
+ "8" "1003.887695 -1429.493896 -103.906189 0.000000 -100.872650 0.000000" // palace towards t spawn
}
// B site
"1"
{
- "0" "39.600376 -674.276245 -123.007751 -2.541049 156.639526 0.000000" // top of mid
- "1" "205.479950 -423.502655 -105.788986 -0.459847 178.613220 0.000000" // top of mid
- "2" "246.561295 837.782532 -71.906189 -0.532449 -174.005737 0.000000" // t aps
- "3" "-1165.694702 -727.956482 -103.906189 0.024152 61.847801 0.000000" // window
- "4" "-1608.863281 -1773.091064 -203.089233 -2.565245 89.242607 0.000000" // ct spawn
- "5" "-188.154068 836.493591 -70.936310 -5.227249 -139.956451 0.000000" // near underpass
- "6" "-638.112366 -1043.536621 -146.134171 -0.242047 98.970795 0.000000" // connector
+ "0" "39.600376 -674.276245 -123.007751 0.000000 156.639526 0.000000" // top of mid
+ "1" "205.479950 -423.502655 -105.788986 0.000000 178.613220 0.000000" // top of mid
+ "2" "246.561295 837.782532 -71.906189 0.000000 -174.005737 0.000000" // t aps
+ "3" "-1165.694702 -727.956482 -103.906189 0.000000 61.847801 0.000000" // window
+ "4" "-1608.863281 -1773.091064 -203.089233 0.000000 89.242607 0.000000" // ct spawn
+ "5" "-188.154068 836.493591 -70.936310 0.000000 -139.956451 0.000000" // near underpass
+ "6" "-638.112366 -1043.536621 -146.134171 0.000000 98.970795 0.000000" // connector
}
}
"T"
{
// A site
"0"
{
- "0" "-138.005844 -1797.033203 -103.906189 4.114976 171.140121 0.000000"
- "1" "-208.880524 -1975.932617 -103.906189 2.495055 57.080521 0.000000"
- "2" "-173.824203 -1648.350464 -103.906448 1.945080 13.465389 0.000000"
- "3" "-726.882385 -2127.039795 -115.906189 1.320001 88.945335 0.000000"
- "4" "-133.799622 -1971.166504 -103.906189 4.970137 130.364868 0.000000"
+ "0" "-138.005844 -1797.033203 -103.906189 0.000000 171.140121 0.000000"
+ "1" "-208.880524 -1975.932617 -103.906189 0.000000 57.080521 0.000000"
+ "2" "-173.824203 -1648.350464 -103.906448 0.000000 13.465389 0.000000"
+ "3" "-726.882385 -2127.039795 -115.906189 0.000000 88.945335 0.000000"
+ "4" "-133.799622 -1971.166504 -103.906189 0.000000 130.364868 0.000000"
}
// B site
"1"
{
- "0" "-2071.244141 76.052170 -95.906189 2.034678 -80.853889 0.000000"
- "1" "-2335.413574 317.665161 -103.906189 -0.880295 -1.849629 0.000000"
- "2" "-2314.553223 87.289604 -103.906189 2.089718 -88.254845 0.000000"
- "3" "-2311.599609 807.468384 -56.817085 0.770055 -17.544203 0.000000"
- "4" "-2083.113770 422.673370 -95.906189 -0.440296 -28.139830 0.000000"
- "5" "-2032.361572 819.257629 16.093811 5.499928 -73.249115 0.000000"
+ "0" "-2071.244141 76.052170 -95.906189 0.000000 -80.853889 0.000000"
+ "1" "-2335.413574 317.665161 -103.906189 0.000000 -1.849629 0.000000"
+ "2" "-2314.553223 87.289604 -103.906189 0.000000 -88.254845 0.000000"
+ "3" "-2311.599609 807.468384 -56.817085 0.000000 -17.544203 0.000000"
+ "4" "-2083.113770 422.673370 -95.906189 0.000000 -28.139830 0.000000"
+ "5" "-2032.361572 819.257629 16.093811 0.000000 -73.249115 0.000000"
}
}
}
game/csgo/pak01_dir/maps/de_nuke_retake.txt
modified • +29 / -28 • changes: 57
Show patch
@@ -1,6 +1,7 @@
// Spawn locations and angles.
// The first three numbers are the X Y Z coordinates of the player location.
// The last three numbers are the PITCH YAW ROLL parameters of the player camera.
+// Only YAW is used. PITCH and ROLL must be 0.
// To easily get these numbers, walk around the map and type "getpos" in the console.
// The console will return the 6 numbers that you need to paste into your entry below.
@@ -13,49 +14,49 @@
// A site
"0"
{
- "0" "1826.490234 -1582.837280 -415.468750 0.065063 153.155899 0.000000"
- "1" "1881.807495 -1455.578857 -415.968750 5.555011 155.200150 0.000000"
- "2" "1894.747314 -1346.003906 -415.968750 3.795011 163.780304 0.000000"
- "3" "98.284538 78.638504 -415.968750 3.850050 -84.354782 0.000000"
- "4" "217.944992 81.296051 -415.968750 3.960050 -95.904846 0.000000"
- "5" "386.501587 289.255096 -415.968750 2.860050 -112.514771 0.000000"
- "6" "477.353271 112.284828 -415.968750 4.620059 -158.439514 0.000000"
- "7" "-349.254517 -326.273315 -415.968750 5.775097 -94.584648 0.000000"
+ "0" "1826.490234 -1582.837280 -415.468750 0.000000 153.155899 0.000000"
+ "1" "1881.807495 -1455.578857 -415.968750 0.000000 155.200150 0.000000"
+ "2" "1894.747314 -1346.003906 -415.968750 0.000000 163.780304 0.000000"
+ "3" "98.284538 78.638504 -415.968750 0.000000 -84.354782 0.000000"
+ "4" "217.944992 81.296051 -415.968750 0.000000 -95.904846 0.000000"
+ "5" "386.501587 289.255096 -415.968750 0.000000 -112.514771 0.000000"
+ "6" "477.353271 112.284828 -415.968750 0.000000 -158.439514 0.000000"
+ "7" "-349.254517 -326.273315 -415.968750 0.000000 -94.584648 0.000000"
}
// B site
"1"
{
- "0" "1576.323364 -1878.220947 -639.968750 2.090019 -179.841293 0.000000"
- "1" "1609.487671 -1979.546021 -639.968750 4.235075 170.125092 0.000000"
- "2" "1539.138062 -2043.621338 -639.468750 1.925072 149.829666 0.000000"
- "3" "1187.977905 -125.299744 -415.968750 3.300195 139.128769 0.000000"
- "4" "1101.862305 -244.514221 -415.468750 3.410053 109.701180 0.000000"
- "5" "65.669846 -193.346924 -415.968750 3.520051 50.169384 0.000000"
- "6" "172.936295 -222.184082 -415.968750 3.685049 69.609474 0.000000"
+ "0" "1576.323364 -1878.220947 -639.968750 0.000000 -179.841293 0.000000"
+ "1" "1609.487671 -1979.546021 -639.968750 0.000000 170.125092 0.000000"
+ "2" "1539.138062 -2043.621338 -639.468750 0.000000 149.829666 0.000000"
+ "3" "1187.977905 -125.299744 -415.968750 0.000000 139.128769 0.000000"
+ "4" "1101.862305 -244.514221 -415.468750 0.000000 109.701180 0.000000"
+ "5" "65.669846 -193.346924 -415.968750 0.000000 50.169384 0.000000"
+ "6" "172.936295 -222.184082 -415.968750 0.000000 69.609474 0.000000"
}
}
"T"
{
// A site
"0"
{
- "0" "439.701294 -430.728943 -415.968750 0.220048 -66.750351 0.000000"
- "1" "391.304352 -680.313660 -415.968750 2.255052 -45.245312 0.000000"
- "2" "676.314880 -849.846741 -415.640930 -0.714948 -98.210297 0.000000"
- "3" "910.849426 -814.943909 -415.968750 1.045055 -119.770355 0.000000"
- "4" "834.290283 -432.108215 -415.968750 -0.219952 -116.085457 0.000000"
- "5" "653.616211 -380.847412 -415.968750 -1.704951 -96.505409 0.000000"
+ "0" "439.701294 -430.728943 -415.968750 0.000000 -66.750351 0.000000"
+ "1" "391.304352 -680.313660 -415.968750 0.000000 -45.245312 0.000000"
+ "2" "676.314880 -849.846741 -415.640930 0.000000 -98.210297 0.000000"
+ "3" "910.849426 -814.943909 -415.968750 0.000000 -119.770355 0.000000"
+ "4" "834.290283 -432.108215 -415.968750 0.000000 -116.085457 0.000000"
+ "5" "653.616211 -380.847412 -415.968750 0.000000 -96.505409 0.000000"
}
// B site
"1"
{
- "0" "505.153625 -1255.377808 -769.968750 4.344996 -175.020218 0.000000"
- "1" "447.878540 -938.309509 -771.968750 -7.369998 71.569695 0.000000"
- "2" "814.926270 -980.591858 -771.968750 4.125004 -0.315308 0.000000"
- "3" "793.895630 -890.297546 -771.968750 -8.414989 102.699738 0.000000"
- "4" "729.326294 -1292.212280 -769.968750 -0.769992 54.299778 0.000000"
- "5" "601.971008 -1069.505737 -771.968750 -6.104986 87.904762 0.000000"
- "6" "838.149231 -628.893921 -767.968750 2.200047 -110.615128 0.000000"
+ "0" "505.153625 -1255.377808 -769.968750 0.000000 -175.020218 0.000000"
+ "1" "447.878540 -938.309509 -771.968750 0.000000 71.569695 0.000000"
+ "2" "814.926270 -980.591858 -771.968750 0.000000 -0.315308 0.000000"
+ "3" "793.895630 -890.297546 -771.968750 0.000000 102.699738 0.000000"
+ "4" "729.326294 -1292.212280 -769.968750 0.000000 54.299778 0.000000"
+ "5" "601.971008 -1069.505737 -771.968750 0.000000 87.904762 0.000000"
+ "6" "838.149231 -628.893921 -767.968750 0.000000 -110.615128 0.000000"
}
}
}
game/csgo/pak01_dir/maps/de_overpass_retake.txt
modified • +26 / -25 • changes: 51
Show patch
@@ -1,6 +1,7 @@
// Spawn locations and angles.
// The first three numbers are the X Y Z coordinates of the player location.
// The last three numbers are the PITCH YAW ROLL parameters of the player camera.
+// Only YAW is used. PITCH and ROLL must be 0.
// To easily get these numbers, walk around the map and type "getpos" in the console.
// The console will return the 6 numbers that you need to paste into your entry below.
@@ -13,46 +14,46 @@
// A site
"0"
{
- "0" "-2895.787598 -2106.911621 536.093811 1.154996 98.325569 0.000000"
- "1" "-2677.047363 -2112.731201 536.093811 2.199996 91.065544 0.000000"
- "2" "-2402.718262 -1904.216553 536.093811 3.024992 132.260513 0.000000"
- "3" "-3520.431152 -1295.249268 566.301453 4.619984 95.850212 0.000000"
- "4" "-3667.147705 -1309.966309 555.990662 0.769987 74.840096 0.000000"
- "5" "-3569.248291 -1444.676880 577.288269 4.399978 97.500099 0.000000"
- "6" "-2075.771484 450.691711 108.532364 2.694936 35.015278 0.000000"
- "7" "-1949.533813 379.327820 108.031250 2.859980 69.885338 0.000000"
+ "0" "-2895.787598 -2106.911621 536.093811 0.000000 98.325569 0.000000"
+ "1" "-2677.047363 -2112.731201 536.093811 0.000000 91.065544 0.000000"
+ "2" "-2402.718262 -1904.216553 536.093811 0.000000 132.260513 0.000000"
+ "3" "-3520.431152 -1295.249268 566.301453 0.000000 95.850212 0.000000"
+ "4" "-3667.147705 -1309.966309 555.990662 0.000000 74.840096 0.000000"
+ "5" "-3569.248291 -1444.676880 577.288269 0.000000 97.500099 0.000000"
+ "6" "-2075.771484 450.691711 108.532364 0.000000 35.015278 0.000000"
+ "7" "-1949.533813 379.327820 108.031250 0.000000 69.885338 0.000000"
}
// B site
"1"
{
- "0" "-669.978821 -1596.339600 209.001465 9.294992 77.815590 0.000000"
- "1" "-845.763367 -1510.034058 209.090118 5.444992 54.330486 0.000000"
- "2" "-830.348755 -1692.366089 214.448120 7.754998 60.655495 0.000000"
- "3" "-2089.559082 1245.278198 420.093811 12.375099 -37.318851 0.000000"
- "4" "-2049.639648 1297.645386 420.093811 12.375099 -37.318851 0.000000"
- "5" "-1935.149536 1299.063110 419.212982 13.420106 -59.428921 0.000000"
+ "0" "-669.978821 -1596.339600 209.001465 0.000000 77.815590 0.000000"
+ "1" "-845.763367 -1510.034058 209.090118 0.000000 54.330486 0.000000"
+ "2" "-830.348755 -1692.366089 214.448120 0.000000 60.655495 0.000000"
+ "3" "-2089.559082 1245.278198 420.093811 0.000000 -37.318851 0.000000"
+ "4" "-2049.639648 1297.645386 420.093811 0.000000 -37.318851 0.000000"
+ "5" "-1935.149536 1299.063110 419.212982 0.000000 -59.428921 0.000000"
}
}
"T"
{
// A site
"0"
{
- "0" "-2276.064209 566.507263 544.079407 3.850023 -120.519920 0.000000"
- "1" "-2473.138184 536.193909 544.093811 8.305019 -115.899849 0.000000"
- "2" "-2259.978271 698.634766 536.343811 2.915035 -116.669830 0.000000"
- "3" "-2426.317627 822.700256 536.343811 1.485011 13.460282 0.000000"
- "4" "-2087.630127 735.790344 476.031219 2.342239 137.941879 0.000000"
+ "0" "-2276.064209 566.507263 544.079407 0.000000 -120.519920 0.000000"
+ "1" "-2473.138184 536.193909 544.093811 0.000000 -115.899849 0.000000"
+ "2" "-2259.978271 698.634766 536.343811 0.000000 -116.669830 0.000000"
+ "3" "-2426.317627 822.700256 536.343811 0.000000 13.460282 0.000000"
+ "4" "-2087.630127 735.790344 476.031219 0.000000 137.941879 0.000000"
}
// B site
"1"
{
- "0" "-884.320007 221.360916 160.093811 9.020019 -46.930019 0.000000"
- "1" "-1082.541992 141.747742 163.093811 -10.119980 148.290009 0.000000"
- "2" "-1192.550903 105.253471 163.093811 0.880019 -58.370010 0.000000"
- "3" "-1047.512573 -150.184769 163.093811 0.110016 -170.129654 0.000000"
- "4" "-968.416199 -183.259766 160.093811 1.320018 -91.204674 0.000000"
- "5" "-1112.493286 -216.452805 163.093811 2.640013 50.255310 0.000000"
+ "0" "-884.320007 221.360916 160.093811 0.000000 -46.930019 0.000000"
+ "1" "-1082.541992 141.747742 163.093811 0.000000 148.290009 0.000000"
+ "2" "-1192.550903 105.253471 163.093811 0.000000 -58.370010 0.000000"
+ "3" "-1047.512573 -150.184769 163.093811 0.000000 -170.129654 0.000000"
+ "4" "-968.416199 -183.259766 160.093811 0.000000 -91.204674 0.000000"
+ "5" "-1112.493286 -216.452805 163.093811 0.000000 50.255310 0.000000"
}
}
}
game/csgo/pak01_dir/maps/de_train_retake.txt
modified • +26 / -25 • changes: 51
Show patch
@@ -1,6 +1,7 @@
// Spawn locations and angles.
// The first three numbers are the X Y Z coordinates of the player location.
// The last three numbers are the PITCH YAW ROLL parameters of the player camera.
+// Only YAW is used. PITCH and ROLL must be 0.
// To easily get these numbers, walk around the map and type "getpos" in the console.
// The console will return the 6 numbers that you need to paste into your entry below.
@@ -13,46 +14,46 @@
// A site
"0"
{
- "0" "869.592896 1623.697876 -163.906189 2.859981 -26.422117 0.000000" //ivy
- "1" "719.372253 1657.006714 -159.917480 3.409997 -17.566977 0.000000" //ivy
- "2" "-233.861633 -897.102600 -254.968750 -2.111976 3.068373 0.000000" //b site ramp
- "3" "-728.552124 1435.110352 -157.265610 2.859995 -82.961456 0.000000" //a main
- "4" "-974.967651 -869.088562 -89.968750 -4.597982 94.454933 -0.000000" //upper b
- "5" "-982.721497 -166.424179 80.093811 4.960011 -19.305164 0.000000" //top longdog
- "6" "1693.168457 -661.709900 -199.968750 -2.705968 100.607056 0.000000" //ct spawn
- "7" "1025.682617 -1252.776733 -278.968750 -3.299975 123.430275 0.000000" //back b site
+ "0" "869.592896 1623.697876 -163.906189 0.000000 -26.422117 0.000000" //ivy
+ "1" "719.372253 1657.006714 -159.917480 0.000000 -17.566977 0.000000" //ivy
+ "2" "-233.861633 -897.102600 -254.968750 0.000000 3.068373 0.000000" //b site ramp
+ "3" "-728.552124 1435.110352 -157.265610 0.000000 -82.961456 0.000000" //a main
+ "4" "-974.967651 -869.088562 -89.968750 0.000000 94.454933 0.000000" //upper b
+ "5" "-982.721497 -166.424179 80.093811 0.000000 -19.305164 0.000000" //top longdog
+ "6" "1693.168457 -661.709900 -199.968750 0.000000 100.607056 0.000000" //ct spawn
+ "7" "1025.682617 -1252.776733 -278.968750 0.000000 123.430275 0.000000" //back b site
}
// B site
"1"
{
- "0" "-969.392029 259.101227 80.031250 1.584035 -90.211624 0.000000" //upper b
- "1" "-604.124756 151.493393 80.031250 1.166058 -89.859642 0.000000" //upper b
- "2" "1642.633911 -36.776550 -147.968750 5.918056 -89.581604 0.000000" //a1 ct
- "3" "-93.765259 147.830399 -151.968750 0.638126 -57.438507 0.000000" //ebox
- "4" "661.129333 179.949982 -151.968750 2.684222 -132.613449 0.000000" //a site
- "5" "-448.117981 -133.451660 -151.968750 0.638163 -42.567448 0.000000" //outside longdog
- "6" "1692.687500 -665.840088 -199.968750 7.854129 -102.649010 0.000000" //ct spawn
+ "0" "-969.392029 259.101227 80.031250 0.000000 -90.211624 0.000000" //upper b
+ "1" "-604.124756 151.493393 80.031250 0.000000 -89.859642 0.000000" //upper b
+ "2" "1642.633911 -36.776550 -147.968750 0.000000 -89.581604 0.000000" //a1 ct
+ "3" "-93.765259 147.830399 -151.968750 0.000000 -57.438507 0.000000" //ebox
+ "4" "661.129333 179.949982 -151.968750 0.000000 -132.613449 0.000000" //a site
+ "5" "-448.117981 -133.451660 -151.968750 0.000000 -42.567448 0.000000" //outside longdog
+ "6" "1692.687500 -665.840088 -199.968750 0.000000 -102.649010 0.000000" //ct spawn
}
}
"T"
{
// A site
"0"
{
- "0" "462.717316 110.559921 -151.906189 0.769982 36.600121 0.000000" //mid-a site
- "1" "55.970734 -192.313721 -215.968750 1.936126 14.141252 0.000000" //behind default plant
- "2" "641.802673 -340.406494 -143.968750 2.002108 104.539085 0.000000" //under heaven
- "3" "551.447693 -236.673233 -151.906189 -2.035019 82.220497 0.000000" //near heaven
- "4" "246.003784 -105.766846 -77.968750 12.144086 178.538879 0.000000" //on bomb train
+ "0" "462.717316 110.559921 -151.906189 0.000000 36.600121 0.000000" //mid-a site
+ "1" "55.970734 -192.313721 -215.968750 0.000000 14.141252 0.000000" //behind default plant
+ "2" "641.802673 -340.406494 -143.968750 0.000000 104.539085 0.000000" //under heaven
+ "3" "551.447693 -236.673233 -151.906189 0.000000 82.220497 0.000000" //near heaven
+ "4" "246.003784 -105.766846 -77.968750 0.000000 178.538879 0.000000" //on bomb train
}
// B site
"1"
{
- "0" "-3.422702 -1143.280762 -288.029327 0.934985 0.541761 0.00000" // mid-b site
- "1" "72.596527 -1405.762207 -285.974854 0.714984 -0.778225 0.00000" // mid-b site oil side
- "2" "-235.921524 -1407.080444 -287.906189 -0.495016 111.861740 0.00000" // mid-b site oil side
- "3" "-449.022644 -1277.995239 -291.906189 1.924981 84.636719 0.00000" // behind default plant
- "4" "-255.967651 -1544.674316 -350.968750 6.622083 65.481186 0.000000" // below upper b
+ "0" "-3.422702 -1143.280762 -288.029327 0.000000 0.541761 0.000000" // mid-b site
+ "1" "72.596527 -1405.762207 -285.974854 0.000000 -0.778225 0.000000" // mid-b site oil side
+ "2" "-235.921524 -1407.080444 -287.906189 0.000000 111.861740 0.000000" // mid-b site oil side
+ "3" "-449.022644 -1277.995239 -291.906189 0.000000 84.636719 0.000000" // behind default plant
+ "4" "-255.967651 -1544.674316 -350.968750 0.000000 65.481186 0.000000" // below upper b
}
}
}
game/csgo/pak01_dir/maps/de_vertigo_retake.txt
modified • +30 / -29 • changes: 59
Show patch
@@ -1,6 +1,7 @@
// Spawn locations and angles.
// The first three numbers are the X Y Z coordinates of the player location.
// The last three numbers are the PITCH YAW ROLL parameters of the player camera.
+// Only YAW is used. PITCH and ROLL must be 0.
// To easily get these numbers, walk around the map and type "getpos" in the console.
// The console will return the 6 numbers that you need to paste into your entry below.
@@ -13,50 +14,50 @@
// A site
"0"
{
- "0" "-1451.945435 163.126968 11840.093750 2.780024 -3.554834 0.000000"
- "1" "-1516.281128 336.276184 11840.093750 1.955028 -27.094843 0.000000"
- "2" "-1141.929932 555.575989 11841.093750 -0.629967 -76.790024 0.000000"
- "3" "-1523.626465 -345.075836 11552.093750 3.399952 44.049221 0.000000"
- "4" "-1492.269897 125.298424 11553.093750 3.605145 -44.835899 0.000000"
- "5" "-1205.339966 900.894836 11840.093750 2.190067 -37.900955 0.000000"
- "6" "-1287.256348 948.204285 11840.093750 5.215091 -37.900822 0.000000"
- "7" "-1788.561768 347.308929 11840.093750 1.805082 -9.661197 0.000000"
+ "0" "-1451.945435 163.126968 11840.093750 0.000000 -3.554834 0.000000"
+ "1" "-1516.281128 336.276184 11840.093750 0.000000 -27.094843 0.000000"
+ "2" "-1141.929932 555.575989 11841.093750 0.000000 -76.790024 0.000000"
+ "3" "-1523.626465 -345.075836 11552.093750 0.000000 44.049221 0.000000"
+ "4" "-1492.269897 125.298424 11553.093750 0.000000 -44.835899 0.000000"
+ "5" "-1205.339966 900.894836 11840.093750 0.000000 -37.900955 0.000000"
+ "6" "-1287.256348 948.204285 11840.093750 0.000000 -37.900822 0.000000"
+ "7" "-1788.561768 347.308929 11840.093750 0.000000 -9.661197 0.000000"
}
// B site
"1"
{
- "0" "-974.750610 -404.438934 11841.093750 0.815079 96.623421 0.000000"
- "1" "-823.286316 -374.872650 11840.093750 2.025078 108.008484 0.000000"
- "2" "-668.304810 -217.494736 11840.093750 2.190075 153.824127 0.000000"
- "3" "-1535.756470 -238.856689 11776.031250 0.485072 142.463699 0.000000"
- "4" "-1458.373657 -119.980713 11776.031250 5.160068 170.238327 0.000000"
- "5" "-1373.065796 -427.928955 11776.031250 2.740066 135.203018 0.000000"
- "6" "-2354.094971 -857.293701 11552.093750 3.950027 68.872276 0.000000"
- "7" "-2193.825684 -915.975647 11552.093750 3.180027 100.167282 0.000000"
- "8" "-2110.593262 -754.761353 11552.093750 4.995027 138.832138 0.000000"
+ "0" "-974.750610 -404.438934 11841.093750 0.000000 96.623421 0.000000"
+ "1" "-823.286316 -374.872650 11840.093750 0.000000 108.008484 0.000000"
+ "2" "-668.304810 -217.494736 11840.093750 0.000000 153.824127 0.000000"
+ "3" "-1535.756470 -238.856689 11776.031250 0.000000 142.463699 0.000000"
+ "4" "-1458.373657 -119.980713 11776.031250 0.000000 170.238327 0.000000"
+ "5" "-1373.065796 -427.928955 11776.031250 0.000000 135.203018 0.000000"
+ "6" "-2354.094971 -857.293701 11552.093750 0.000000 68.872276 0.000000"
+ "7" "-2193.825684 -915.975647 11552.093750 0.000000 100.167282 0.000000"
+ "8" "-2110.593262 -754.761353 11552.093750 0.000000 138.832138 0.000000"
}
}
"T"
{
// A site
"0"
{
- "0" "-73.786880 -905.851135 11840.093750 6.215020 -141.909775 0.000000"
- "1" "-300.173615 -927.451782 11840.093750 14.465016 -124.639832 0.000000"
- "2" "-330.812439 -799.745605 11840.093750 6.600021 -97.390060 0.000000"
- "3" "-67.812881 -795.826904 11840.093750 4.345022 -141.445145 0.000000"
- "4" "-545.310059 -735.743652 11840.093750 0.605010 175.599777 0.000000"
- "5" "-537.468994 -581.356995 11840.093750 2.970011 -171.750366 0.000000"
+ "0" "-73.786880 -905.851135 11840.093750 0.000000 -141.909775 0.000000"
+ "1" "-300.173615 -927.451782 11840.093750 0.000000 -124.639832 0.000000"
+ "2" "-330.812439 -799.745605 11840.093750 0.000000 -97.390060 0.000000"
+ "3" "-67.812881 -795.826904 11840.093750 0.000000 -141.445145 0.000000"
+ "4" "-545.310059 -735.743652 11840.093750 0.000000 175.599777 0.000000"
+ "5" "-537.468994 -581.356995 11840.093750 0.000000 -171.750366 0.000000"
}
// B site
"1"
{
- "0" "-2311.852539 1051.179688 11813.517578 0.219993 -21.645147 0.000000"
- "1" "-2605.017090 911.943115 11815.585938 -0.274989 0.079643 0.000000"
- "2" "-2621.069824 634.407532 11817.556641 3.300010 -78.405312 0.000000"
- "3" "-2441.925049 667.737366 11808.093750 3.135013 -79.505333 0.000000"
- "4" "-2470.786133 862.286621 11808.093750 0.715015 -12.735312 0.000000"
- "5" "-2473.725586 1082.646484 11817.381836 1.045011 -18.810177 0.000000"
+ "0" "-2311.852539 1051.179688 11813.517578 0.000000 -21.645147 0.000000"
+ "1" "-2605.017090 911.943115 11815.585938 0.000000 0.079643 0.000000"
+ "2" "-2621.069824 634.407532 11817.556641 0.000000 -78.405312 0.000000"
+ "3" "-2441.925049 667.737366 11808.093750 0.000000 -79.505333 0.000000"
+ "4" "-2470.786133 862.286621 11808.093750 0.000000 -12.735312 0.000000"
+ "5" "-2473.725586 1082.646484 11817.381836 0.000000 -18.810177 0.000000"
}
}
}
game/csgo/pak01_dir/panorama/styles/retakeloadout.css
modified • +0 / -20 • changes: 20
Show patch
@@ -172,26 +172,6 @@
opacity: 0;
}
-.RetakeLoadoutMenu--loadout-container.RetakeLoadoutMenu--loadout-container-0
-{
- animation-delay: 0.15s;
-}
-
-.RetakeLoadoutMenu--loadout-container.RetakeLoadoutMenu--loadout-container-1
-{
- animation-delay: 0.25s;
-}
-
-.RetakeLoadoutMenu--loadout-container.RetakeLoadoutMenu--loadout-container-2
-{
- animation-delay: 0.45s;
-}
-
-.RetakeLoadoutMenu--loadout-container.RetakeLoadoutMenu--loadout-container-3
-{
- animation-delay: .5s;
-}
-
@keyframes 'deal'
{
0%
game/csgo/pak01_dir/scripts/workshop_cvar_whitelist.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -223,6 +223,7 @@
"mp_death_drop_defuser",
"mp_death_drop_grenade",
"mp_death_drop_gun",
+ "mp_death_drop_taser",
"mp_death_drop_healthshot",
"mp_deathcam_skippable",
"mp_default_team_winner_no_objective",
game/csgo/readonly_tools_asset_info.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -134923,3 +134923,4 @@ sounds/graphs/reverb_9_mediumchamber.vsnd
panorama/layout/hud/hudmutators.vxml
panorama/styles/hud/hudmutators.vcss
sounds/graphs/bighead_pitch.vsnd
+panorama/images/econ/keychains/bud2025/kc_bud2025_png.vtex
game/csgo/steam.inf
modified • +6 / -6 • changes: 12
Show patch
@@ -1,9 +1,9 @@
-ClientVersion=2000940
-ServerVersion=2000940
-PatchVersion=1.41.9.5
+ClientVersion=2000942
+ServerVersion=2000942
+PatchVersion=1.41.9.6
ProductName=cs2
appID=730
ServerAppID=2347773
-SourceRevision=11198439
-VersionDate=Nov 02 2026
-VersionTime=16:17:08
+SourceRevision=11206718
+VersionDate=Nov 04 2026
+VersionTime=16:01:59
game/csgo_addons/cs_script_demo/panorama_stripped/maps/scripts/chess.js
modified • +10 / -10 • changes: 20
Show patch
@@ -1,6 +1,6 @@
// @ts-nocheck
-import { Instance, PointTemplate } from "cs_script/point_script";
+import { Instance, PointTemplate, Entities } from "cs_script/point_script";
function ChessJS() {
@@ -3474,7 +3474,7 @@ let chess = new Chess();
const centers = {};
function FindCenters() {
- const entities = Instance.FindEntitiesByClass("info_target");
+ const entities = Entities.FindByClass("info_target");
for (const ent of entities) {
const name = ent.GetEntityName();
if (/^[a-h][1-8]$/.test(name)) {
@@ -3501,14 +3501,14 @@ async function RunChess() {
await AnimateMove(move);
}
- Instance.EntFireAtName({ name: `snd.chess.${chess.turn()}.win`, input: "StartSound" });
+ Entities.FireInput({ name: `snd.chess.${chess.turn()}.win`, input: "StartSound" });
Instance.SetNextThink(Instance.GetGameTime() + 10);
bIsRunning = false;
}
function RenderPieces() {
- const existing = Instance.FindEntitiesByName("chess.piece.*");
+ const existing = Entities.FindByName("chess.piece.*");
for (const line of chess.board()) {
for (const square of line) {
@@ -3545,12 +3545,12 @@ function RenderPieces() {
}
function PlaySoundOnEnt(soundEntName, targetEntName) {
- Instance.EntFireAtName({ name: soundEntName, input: "SetSourceEntity", value: targetEntName });
- Instance.EntFireAtName({ name: soundEntName, input: "StartSound" });
+ Entities.FireInput({ name: soundEntName, input: "SetSourceEntity", value: targetEntName });
+ Entities.FireInput({ name: soundEntName, input: "StartSound" });
}
async function AnimateMove(move) {
- const piece = Instance.FindEntitiesByName(`chess.piece.${move.color}.${move.piece}`).find((p) => p.square === move.from);
+ const piece = Entities.FindByName(`chess.piece.${move.color}.${move.piece}`).find((p) => p.square === move.from);
if (!piece) {
RenderPieces();
return;
@@ -3568,7 +3568,7 @@ async function AnimateMove(move) {
if (move.isCapture()) {
PlaySoundOnEnt("chess.snd.capture", piece.GetEntityName());
const capturedColor = move.color === WHITE ? BLACK : WHITE;
- const captured = Instance.FindEntitiesByName(`chess.piece.${capturedColor}.${move.captured}`).find((p) => p.square === move.to);
+ const captured = Entities.FindByName(`chess.piece.${capturedColor}.${move.captured}`).find((p) => p.square === move.to);
if (captured) {
await DiePiece(captured);
}
@@ -3623,9 +3623,9 @@ async function DiePiece(piece) {
}
function SpawnPiece(type, color) {
- let spawner = Instance.FindEntityByName(`chess.template.${type}.${color}`);
+ let [spawner] = Entities.FindByName(`chess.template.${type}.${color}`);
if (!spawner) {
- spawner = Instance.FindEntityByName(`chess.template.${type}`);
+ [spawner] = Entities.FindByName(`chess.template.${type}`);
}
if (spawner instanceof PointTemplate) {
const spawned = spawner.ForceSpawn();
game/csgo_addons/cs_script_demo/panorama_stripped/maps/scripts/grenadetraining.js
modified • +32 / -32 • changes: 64
Show patch
@@ -1,4 +1,4 @@
-import { Console, Entity, Instance } from "cs_script/point_script";
+import { Console, Entity, Instance, Entities } from "cs_script/point_script";
let Rounds = 0;
let Hits = 0;
@@ -11,9 +11,9 @@ let TargetHard = "targetbox.hard";
function SetNextTarget() {
Rounds++;
- Instance.EntFireAtName({ name: "worldtext.rounds", input: "SetMessage", value: Rounds });
- Instance.EntFireAtName({ name: "cover.*", input: "Enable" });
- Instance.EntFireAtName({ name: "tele.reset", input: "Teleport" });
+ Entities.FireInput({ name: "worldtext.rounds", input: "SetMessage", value: Rounds });
+ Entities.FireInput({ name: "cover.*", input: "Enable" });
+ Entities.FireInput({ name: "tele.reset", input: "Teleport" });
let NewTarget = Math.floor(Math.random() * 11) + 1;
@@ -24,27 +24,27 @@ function SetNextTarget() {
if (Rounds > 7) difficulty = "hard";
else if (Rounds > 4) difficulty = "med";
- Instance.EntFireAtName({ name: `cover.${Target}`, input: "Disable" });
- Instance.EntFireAtName({ name: `tele.${Target}`, input: "TeleportEntity", value: `targetbox.${difficulty}` });
+ Entities.FireInput({ name: `cover.${Target}`, input: "Disable" });
+ Entities.FireInput({ name: `tele.${Target}`, input: "TeleportEntity", value: `targetbox.${difficulty}` });
}
Instance.OnScriptInput("ResetAndCleanUp", () => {
- Instance.EntFireAtName({ name: "trigger.start", input: "Enable" });
- Instance.EntFireAtName({ name: "trigger.end_early", input: "Disable" });
- Instance.EntFireAtName({ name: "worldtext.go_here", input: "Enable" });
- Instance.EntFireAtName({ name: "relay.start_countdown", input: "CancelPending" });
-
- Instance.EntFireAtName({ name: "worldtext.training_countdown_dyn", input: "SetMessage", value: "3" });
- Instance.EntFireAtName({ name: "worldtext.training_countdown_static", input: "Disable" });
- Instance.EntFireAtName({ name: "worldtext.training_countdown_dyn", input: "Disable" });
- Instance.EntFireAtName({ name: "board.timer", input: "Disable" });
- Instance.EntFireAtName({ name: "board.timer", input: "ResetTimer" });
- Instance.EntFireAtName({ name: "snd.tick", input: "StopSound" });
- Instance.EntFireAtName({ name: "tele.reset", input: "Teleport" });
- Instance.EntFireAtName({ name: "cover.*", input: "Enable" });
- Instance.EntFireAtName({ name: "worldtext.hits", input: "SetMessage", value: "0" });
- Instance.EntFireAtName({ name: "worldtext.rounds", input: "SetMessage", value: "0" });
+ Entities.FireInput({ name: "trigger.start", input: "Enable" });
+ Entities.FireInput({ name: "trigger.end_early", input: "Disable" });
+ Entities.FireInput({ name: "worldtext.go_here", input: "Enable" });
+ Entities.FireInput({ name: "relay.start_countdown", input: "CancelPending" });
+
+ Entities.FireInput({ name: "worldtext.training_countdown_dyn", input: "SetMessage", value: "3" });
+ Entities.FireInput({ name: "worldtext.training_countdown_static", input: "Disable" });
+ Entities.FireInput({ name: "worldtext.training_countdown_dyn", input: "Disable" });
+ Entities.FireInput({ name: "board.timer", input: "Disable" });
+ Entities.FireInput({ name: "board.timer", input: "ResetTimer" });
+ Entities.FireInput({ name: "snd.tick", input: "StopSound" });
+ Entities.FireInput({ name: "tele.reset", input: "Teleport" });
+ Entities.FireInput({ name: "cover.*", input: "Enable" });
+ Entities.FireInput({ name: "worldtext.hits", input: "SetMessage", value: "0" });
+ Entities.FireInput({ name: "worldtext.rounds", input: "SetMessage", value: "0" });
Console.SetConvar("sv_infinite_ammo", 0);
const player = Instance.GetPlayerController(0)?.GetPlayerPawn();
@@ -53,10 +53,10 @@ Instance.OnScriptInput("ResetAndCleanUp", () => {
});
Instance.OnScriptInput("StartTraining", () => {
- Instance.EntFireAtName({ name: "trigger.start", input: "Disable" });
- Instance.EntFireAtName({ name: "trigger.end_early", input: "Enable" });
- Instance.EntFireAtName({ name: "worldtext.go_here", input: "Disable" });
- Instance.EntFireAtName({ name: "relay.start_countdown", input: "Trigger" });
+ Entities.FireInput({ name: "trigger.start", input: "Disable" });
+ Entities.FireInput({ name: "trigger.end_early", input: "Enable" });
+ Entities.FireInput({ name: "worldtext.go_here", input: "Disable" });
+ Entities.FireInput({ name: "relay.start_countdown", input: "Trigger" });
Console.SetConvar("sv_infinite_ammo", 1);
const player = Instance.GetPlayerController(0)?.GetPlayerPawn();
@@ -70,8 +70,8 @@ Instance.OnScriptInput("StartTraining", () => {
Instance.OnScriptInput("GrenadeHit", () => {
Hits++;
- Instance.EntFireAtName({ name: "snd.hit", input: "StartSound" });
- Instance.EntFireAtName({ name: "worldtext.hits", input: "SetMessage", value: Hits });
+ Entities.FireInput({ name: "snd.hit", input: "StartSound" });
+ Entities.FireInput({ name: "worldtext.hits", input: "SetMessage", value: Hits });
if (trackedProjectile && trackedProjectile.IsValid()) {
trackedProjectile.Remove();
trackedProjectile = undefined;
@@ -83,11 +83,11 @@ Instance.OnScriptInput("SetNextTarget", () => {
if (Rounds < 10) {
SetNextTarget();
} else {
- Instance.EntFireAtName({ name: "snd.end", input: "StartSound" });
- Instance.EntFireAtName({ name: "board.timer", input: "Disable" });
- Instance.EntFireAtName({ name: "board.timer", input: "ResetTimer" });
- Instance.EntFireAtName({ name: "tele.reset", input: "Teleport" });
- Instance.EntFireAtName({ name: "cover.*", input: "Enable" });
+ Entities.FireInput({ name: "snd.end", input: "StartSound" });
+ Entities.FireInput({ name: "board.timer", input: "Disable" });
+ Entities.FireInput({ name: "board.timer", input: "ResetTimer" });
+ Entities.FireInput({ name: "tele.reset", input: "Teleport" });
+ Entities.FireInput({ name: "cover.*", input: "Enable" });
}
});
game/csgo_addons/cs_script_demo/panorama_stripped/maps/scripts/mdlchange.js
modified • +2 / -2 • changes: 4
Show patch
@@ -1,7 +1,7 @@
-import { Instance, BaseModelEntity, Console } from "cs_script/point_script";
+import { Instance, BaseModelEntity, Console, Entities } from "cs_script/point_script";
function GetProp() {
- const ent = Instance.FindEntityByName("mdlchange.prop_dyn");
+ const [ent] = Entities.FindByName("mdlchange.prop_dyn");
if (ent instanceof BaseModelEntity) return ent;
}
function Init() {
game/csgo_addons/cs_script_demo/panorama_stripped/maps/scripts/setup.js
modified • +12 / -5 • changes: 17
Show patch
@@ -1,4 +1,4 @@
-import { CSDamageFlags, CSDamageTypes, Entity, Instance, Console } from "cs_script/point_script";
+import { CSDamageFlags, CSDamageTypes, Entity, Instance, Console, Entities } from "cs_script/point_script";
Console.SetConvar("sv_cheats", true);
Console.SetConvar("mp_warmup_offline_enabled", true);
@@ -16,12 +16,19 @@ Instance.OnPlayerActivate(({ player }) => {
ShowWelcome(player.GetPlayerSlot());
});
-Instance.OnModifyPlayerDamage(({ player }) => {
- if (player.GetOriginalPlayerController().IsBot()) {
+Instance.OnModifyPlayerDamage(({ player, damageTypes }) => {
+ if (player.GetOriginalPlayerController().IsBot() && !(damageTypes & CSDamageTypes.BLAST)) {
return { damageFlags: CSDamageFlags.PREVENT_DEATH };
}
});
+Instance.OnPlayerKill(async ({ player }) => {
+ await Instance.Delay(1);
+ if (player.IsValid() && !player.IsAlive()) {
+ player.Reset();
+ }
+});
+
Instance.OnPlayerDamage((event) => {
if (event.damageTypes == CSDamageTypes.SLASH) {
Instance.QueueAfterThinks(() => {
@@ -35,9 +42,9 @@ Instance.OnPlayerDamage((event) => {
let welcomeLayout = null;
function GetWelcomeLayout() {
if (!(welcomeLayout instanceof Entity) || !welcomeLayout.IsValid()) {
- welcomeLayout = Instance.FindEntitiesByName("welcome_layout")[0];
+ [welcomeLayout] = Entities.FindByName("welcome_layout");
}
- return Instance.FindEntitiesByName("welcome_layout")[0];
+ return Entities.FindByName("welcome_layout")[0];
}
function ShowWelcome(playerSlot) {
manifests/manifest_2347770.txt
modified • +13 / -13 • changes: 26
Show patch
@@ -1,16 +1,16 @@
Content Manifest for Depot 2347770
-Manifest ID / date : 3690356453703667427 / 11/03/2026 00:25:56
+Manifest ID / date : 6679288287140932208 / 11/05/2026 00:08:51
Total number of files : 2992
-Total number of chunks : 65055
-Total bytes on disk : 65048085465
-Total bytes compressed : 55568715408
+Total number of chunks : 65062
+Total bytes on disk : 65068271825
+Total bytes compressed : 55570003984
Size Chunks File SHA Flags Name
- 10 1 e1aceebbdd3814eb1f3e4216702f7dc8e3ca6465 0 game\bin\built_from_cl.txt
- 10347 1 34e431cd4393ac0204703f2a6d9f19c224fd1479 0 game\bin\win64\csgo.signatures
- 8941 1 f2e4452e9be7e5f6ccbbbd7979082a1321dd0aed 0 game\bin\win64\vpk.signatures
+ 10 1 9ba45a297ae3ca0a08ec45d8ae26d7d1b752c6a8 0 game\bin\built_from_cl.txt
+ 10347 1 2035f417702707e841cbe1613c06ab8503603c05 0 game\bin\win64\csgo.signatures
+ 8941 1 03efeb7ac1e026f881ec21af5fc97215ce83aa7b 0 game\bin\win64\vpk.signatures
51357 1 0f5112698b482f8c1190c89192a4c0c8b0e50198 0 game\core\cfg\sfm_default_animation_groups.vcfg
2270 1 ab4e0ee92367ba6d28a89dae8f6000631ffdb641 0 game\core\cfg\user_keys_default.vcfg
2474 1 c4ff2f85048812f02c2403b0675208acfc00c7b0 0 game\core\gameinfo.gi
@@ -2257,7 +2257,7 @@ Total bytes compressed : 55568715408
3870 1 0db16b3ddb43aa660ed8b47e0fad44dc19f8160f 0 game\csgo\cfg\gamemode_demolition.cfg
4165 1 36f4e695fa4f6e0cb3b2f6cfa0aacaf03d2624e9 0 game\csgo\cfg\gamemode_dm_freeforall.cfg
510 1 e5390ad84cda3115dce18debf74151f22d51c1b4 0 game\csgo\cfg\gamemode_new_user_training.cfg
- 4243 1 2ed4a09a77434f680df8ecc378758ba13593870a 0 game\csgo\cfg\gamemode_retakecasual.cfg
+ 4243 1 38e1c1525801b3db1bd03aa4209e5672105b86e3 0 game\csgo\cfg\gamemode_retakecasual.cfg
4865 1 38f865bec83a4a4512dc39d9245254e27bbf4598 0 game\csgo\cfg\gamemode_rush.cfg
132 1 93ee145982d5a1883987fee0e5940bab198819c6 0 game\csgo\cfg\gamemode_rush_offline.cfg
3884 1 e958e59b6dcdd8a4476d16a8e146046d073c50bd 0 game\csgo\cfg\gamemode_teamdeathmatch.cfg
@@ -2438,7 +2438,7 @@ Total bytes compressed : 55568715408
118404050 113 796c7932cfeb6772b51013f28bd99bfdfb40483d 0 game\csgo\pak01_033.vpk
116169795 111 e382335666c33007e4a346ded29843a08e8656eb 0 game\csgo\pak01_034.vpk
104201764 102 d897179aaadd2b0de26e19afe39037903f6f424a 0 game\csgo\pak01_035.vpk
- 120988884 138 f58ecf9bfb4813e19e008a7a63c2f7d48b0a059c 0 game\csgo\pak01_036.vpk
+ 107129742 119 5c04e5e3f4b28a59a7e80ffbd90182e260e883b6 0 game\csgo\pak01_036.vpk
109137813 105 c1c5d1aeea369e80997338b7f41f8cadb17bbfdb 0 game\csgo\pak01_037.vpk
116538440 112 cf02841fa129fbb93933f539cc8ae0fcb54de2d9 0 game\csgo\pak01_038.vpk
103037018 103 83bd86a8c8cdc17b353c54cd4cf6a1e347a59e63 0 game\csgo\pak01_039.vpk
@@ -2903,11 +2903,11 @@ Total bytes compressed : 55568715408
103652491 105 97b078393d02aaed75aa0d5f232ec9573a608d48 0 game\csgo\pak01_498.vpk
105338067 116 4af7ebb5429b351ff2b76c4f9b300cd176157ada 0 game\csgo\pak01_499.vpk
102090495 101 6cac088baddee5012d7a47318b06d119f3cbb859 0 game\csgo\pak01_500.vpk
- 99621956 106 9d2ae31cb7b16513b47b2aa6bc1a5b55a6ad8d43 0 game\csgo\pak01_501.vpk
+ 102952206 111 7a5881c988664128bc59b889e71fb518b980b53f 0 game\csgo\pak01_501.vpk
99618250 105 568b65b644448b85efe132f8eaebe59c309c3fb3 0 game\csgo\pak01_502.vpk
100220508 102 60654a3f3231ef5de3b458ed332ba064c153c465 0 game\csgo\pak01_503.vpk
- 41381566 46 444eee2d83cbd067eec75b923992fa35b130c2d4 0 game\csgo\pak01_504.vpk
- 7713274 8 7811a1e71538f431f6e160c41171ffa9efd0af6c 0 game\csgo\pak01_dir.vpk
+ 72096213 84 e53a6f1a1fe08c11b7f3a77ca4a8828dbe1b4408 0 game\csgo\pak01_504.vpk
+ 7713879 8 988c4dcfc38893dd3906755b562d81bcadbf2364 0 game\csgo\pak01_dir.vpk
11893 1 d2f5c237fcac89835ab901bf3cc83850c71d9b46 0 game\csgo\panorama\fonts\fonts.conf
107848 1 90edfc11fa568cd0fb5b9d6e6d369dddadfdb8c4 0 game\csgo\panorama\fonts\notomono-regular.ttf
310556 1 84e39ddc72cd1d2ac4be132d235979f10f916c2b 0 game\csgo\panorama\fonts\notosans-bold.ttf
@@ -2996,7 +2996,7 @@ Total bytes compressed : 55568715408
303670574 290 d2d77a7357436cf6fb69b704cebc84718609f70e 0 game\csgo\shaders_vulkan_003.vpk
25004138 28 7a80e74bbd9d763f27ad8788694da6d9d81cc99e 0 game\csgo\shaders_vulkan_004.vpk
41884 1 a9b38a712dcebbc8a985763a9134ec66c4264688 0 game\csgo\shaders_vulkan_dir.vpk
- 190 1 2acf249fb98158c6b47a3af8f6254953ed9e3f50 0 game\csgo\steam.inf
+ 190 1 9d29a1a0c5e3346ac20def35d20570b56048452a 0 game\csgo\steam.inf
209 1 cb2eaab8dbda9f075491a5410326356e127f60ec 0 game\csgo_lv\gameinfo.gi
135 1 7769174b103a021d6390cb2a31b758dbfff04639 0 game\csgo_lv\gameinfo_branchspecific.gi
473822 1 f5ca24bf12b20fee2ffb5d8bbc465ba8805d8abe 0 game\thirdpartylegalnotices.txt
manifests/manifest_2347771.txt
modified • +6 / -6 • changes: 12
Show patch
@@ -1,10 +1,10 @@
Content Manifest for Depot 2347771
-Manifest ID / date : 5808144614069275570 / 11/03/2026 00:26:34
+Manifest ID / date : 3019944380727688040 / 11/05/2026 00:09:34
Total number of files : 183
Total number of chunks : 7219
-Total bytes on disk : 7753537022
-Total bytes compressed : 5011473536
+Total bytes on disk : 7753523710
+Total bytes compressed : 5011490592
Size Chunks File SHA Flags Name
@@ -54,7 +54,7 @@ Total bytes compressed : 5011473536
567656 1 79759ec5c92853b73627da14e5e70f6c6c580a78 0 game\bin\win64\phonon4.dll
13950616 14 d97d9e5d6a64e98bd812ebe70a023c39a24e833b 0 game\bin\win64\physicsbuilder.dll
1522840 2 eba06453afcdd6d6bf4b608fcc3fe6dcde592cb7 0 game\bin\win64\propertyeditor.dll
- 2031768 2 6f40ef4d08911950fad3e1a7fb65b4ec1672b3ee 0 game\bin\win64\pulse_system.dll
+ 2032792 2 4029fe37dc9abc273fedded7eb5a26dbf6716f06 0 game\bin\win64\pulse_system.dll
131432 1 3177661f6e066460f2c859d2d5453323b68d6eda 0 game\bin\win64\Qt5Concurrent.dll
6288744 6 5f5173c825810bbd849e32b5e6e2cb32f6c456d2 0 game\bin\win64\Qt5Core.dll
7007080 7 08882a63e4c0962b33376da66224655f2b1d5e06 0 game\bin\win64\Qt5Gui.dll
@@ -110,10 +110,10 @@ Total bytes compressed : 5011473536
3185298 4 10bea5cfe6883540880c748e9506a04ad11e53ca 0 game\core\shaders_pc_000.vpk
25563 1 72204b8136ab7b8df21a52fb0b8b674f8c578b06 0 game\core\shaders_pc_dir.vpk
1728360 2 4e48ff45949c7f3cd8fd8ab5b7514ae27f44e53a 0 game\csgo\bin\legacy\csgo_legacy_app.exe
- 39224472 38 51a449b7cac525d9470b3d98debc6a43467ead20 0 game\csgo\bin\win64\client.dll
+ 39227544 38 a9b6232c2c6286eaa7d3df5cf6161bd08b40ff71 0 game\csgo\bin\win64\client.dll
1389208 2 425f2ec89bdaa5b0d2ca47945fa08ec906661749 0 game\csgo\bin\win64\host.dll
1890968 2 ebcf0d685e5347a5e246521cc0ee694f5d266bb3 0 game\csgo\bin\win64\matchmaking.dll
- 34690200 34 b3c3e96f47acbdcf00655a3d7e5db509480eeef5 0 game\csgo\bin\win64\server.dll
+ 34672792 34 d190d3118a36646eb284641f8c455f3be33ca56f 0 game\csgo\bin\win64\server.dll
115209034 117 4bbd01e43063ebade958bb509725b1b48c811b00 0 game\csgo\shaders_pc_000.vpk
189827159 182 7829b4ede09333c4e30a53d1ef958b9baeaeac39 0 game\csgo\shaders_pc_001.vpk
38973836 41 55f4f1a11b02a8a25a77a452d24ae14aa04b9f0b 0 game\csgo\shaders_pc_002.vpk
manifests/manifest_2347773.txt
modified • +6 / -6 • changes: 12
Show patch
@@ -1,10 +1,10 @@
Content Manifest for Depot 2347773
-Manifest ID / date : 4551386601247986792 / 11/03/2026 00:27:00
+Manifest ID / date : 8513165868182791792 / 11/05/2026 00:09:52
Total number of files : 135
Total number of chunks : 6673
-Total bytes on disk : 7224465798
-Total bytes compressed : 4605728448
+Total bytes on disk : 7224511782
+Total bytes compressed : 4605734992
Size Chunks File SHA Flags Name
@@ -34,7 +34,7 @@ Total bytes compressed : 4605728448
3202820 4 fec2f55b60399acd70d543ea35633f89a97eb771 0 game\bin\linuxsteamrt64\libpanorama_text_pango.so
8612056 9 4d746f89b7d06f57b7b6ef1a8bf8f169924fab5a 0 game\bin\linuxsteamrt64\libparticles.so
40786720 40 850311e7b530d04bcfbdee1e3e7d026a7791098d 0 game\bin\linuxsteamrt64\libphonon.so
- 2357916 3 a0122e3156918f8c58a7f6be93fc823243a54b6f 0 game\bin\linuxsteamrt64\libpulse_system.so
+ 2358716 3 ad8da2327a5343cda889ba3e57870efa9f9740d5 0 game\bin\linuxsteamrt64\libpulse_system.so
3679424 4 e2225dec8d51bdfc0d53a6a54d54849487df9e89 0 game\bin\linuxsteamrt64\librendersystemempty.so
9199516 10 b2c9ee0d939b25727cb56dbd89fbee4755d98aa0 0 game\bin\linuxsteamrt64\librendersystemvulkan.so
800200 1 77686038b3b2d330b48bddf55902d173b1f842a8 0 game\bin\linuxsteamrt64\libresourcesystem.so
@@ -66,10 +66,10 @@ Total bytes compressed : 4605728448
1296400 2 bd6d7e2be9b1a526f017bc474c84296569cf23d7 0 game\bin\linuxsteamrt64\libvscript.so
4570212 5 7464ba7da046b1de971e290bfcf582d20aeaedde 0 game\bin\linuxsteamrt64\libworldrenderer.so
3822 1 956919b920713ce452f46c20cf8643674f7543f7 0 game\cs2.sh
- 74208760 71 34c9b737c072b81db28a1e84bb5c72404ce9bd19 0 game\csgo\bin\linuxsteamrt64\libclient.so
+ 74211000 71 45f0b9610eecb46dd73ac44ca30ab962f042445b 0 game\csgo\bin\linuxsteamrt64\libclient.so
3184412 4 adad77afb94069ba33399c4ed33a5b4f3a64fb04 0 game\csgo\bin\linuxsteamrt64\libhost.so
3775044 4 5770b453a084c4d0bb77ca94860111b7bfdaaadf 0 game\csgo\bin\linuxsteamrt64\libmatchmaking.so
- 41807736 40 cb4bab97878a1f04990edf9b68d1240f473b606e 0 game\csgo\bin\linuxsteamrt64\libserver.so
+ 41850680 40 48924100e9a3a4e17af781cb1da835641a29d449 0 game\csgo\bin\linuxsteamrt64\libserver.so
182648578 175 d4b7d7aea361a8b94c54e79904d642d712a1a3f5 0 game\csgo_community_addons\cs_shelter\cs_shelter_000.vpk
107052112 105 2c61877687a4e433f04a62340fb3ce54b70e039c 0 game\csgo_community_addons\cs_shelter\cs_shelter_001.vpk
106101480 104 e5dc305d96a55ae88a396ac6d98037209b4520ce 0 game\csgo_community_addons\cs_shelter\cs_shelter_002.vpk
manifests/manifest_2347779.txt
modified • +20 / -20 • changes: 40
Show patch
@@ -1,10 +1,10 @@
Content Manifest for Depot 2347779
-Manifest ID / date : 9144463342521858931 / 11/03/2026 00:27:26
+Manifest ID / date : 5209724922577403770 / 11/05/2026 00:10:12
Total number of files : 909
-Total number of chunks : 2523
-Total bytes on disk : 2108139011
-Total bytes compressed : 576285616
+Total number of chunks : 2524
+Total bytes on disk : 2108141791
+Total bytes compressed : 576286224
Size Chunks File SHA Flags Name
@@ -619,13 +619,13 @@ Total bytes compressed : 576285616
1621570 2 e3d9cdb314cae29e2a1c5bc8a35f8801cd078c17 0 content\csgo_addons\addon_template\sounds\interior_01.wav
1311024 2 dc14d2a9922760330712f093eed8ab75dc709070 0 content\csgo_addons\addon_template\sounds\vent_01.wav
68886528 68 59ec2879ff3b11fea33042a32c80e6493cd47113 0 content\csgo_addons\cs_script_demo\maps\cs_script_demo.vmap
- 142016 1 d2250b59abe01005d2cdf93f782ac8d99b416df3 0 content\csgo_addons\cs_script_demo\maps\scripts\chess.js
- 4777 1 08ed91c65f79c27090a62eb786a049e59ec816ef 0 content\csgo_addons\cs_script_demo\maps\scripts\grenadetraining.js
+ 141974 1 2f0711f03e4faa839021921e22cb51baddd543e4 0 content\csgo_addons\cs_script_demo\maps\scripts\chess.js
+ 4667 1 9b275310a44cdcd9fd822f1c968a7bb3e3c5220e 0 content\csgo_addons\cs_script_demo\maps\scripts\grenadetraining.js
124 1 22a4ad6b72ccca4118d03ccb0d02f9f1f7b559d0 0 content\csgo_addons\cs_script_demo\maps\scripts\hello.js
1508 1 f576a9fe52176f409d268ab6107a119c9250e034 0 content\csgo_addons\cs_script_demo\maps\scripts\input.js
- 1768 1 efad58a778fb6617e34f3eee454500547f5b979e 0 content\csgo_addons\cs_script_demo\maps\scripts\mdlchange.js
- 52790 1 a3caed0a9858b2ee9d4a005558da3236d37010f9 0 content\csgo_addons\cs_script_demo\maps\scripts\point_script.d.ts
- 2092 1 2ff2ecb556d00d6e00d026ba3860cb0977844155 0 content\csgo_addons\cs_script_demo\maps\scripts\setup.js
+ 1774 1 78e5c4937ae89c8b49af0594308cd38d64c2fa89 0 content\csgo_addons\cs_script_demo\maps\scripts\mdlchange.js
+ 55136 1 94a37ef72e5e9d67fd51d1922e25425701ac2e7c 0 content\csgo_addons\cs_script_demo\maps\scripts\point_script.d.ts
+ 2304 1 0d1e9adb823d080002b1a5e48b7bbd592d585a15 0 content\csgo_addons\cs_script_demo\maps\scripts\setup.js
6476 1 b26cb1c845028c2a73c610f66654009d12865dcd 0 content\csgo_addons\cs_script_demo\maps\scripts\trace.js
141 1 d38bb2dbf61185966292fa1c1aa57a86e5171beb 0 content\csgo_addons\cs_script_demo\maps\scripts\tsconfig.json
344 1 33085b2472c3efcdebb61a0cc4f2aec675f79166 0 content\csgo_addons\cs_script_demo\panorama\layout\custom_game\welcome.xml
@@ -638,7 +638,7 @@ Total bytes compressed : 576285616
5703320 6 265f267641ffa2f5f8eacca5ce3ae23c95c15b01 0 game\bin\win64\assetsystem.dll
1529856 2 45e7d0873608e5424312fa289a270f2faacfe8fa 0 game\bin\win64\bc7e.dll
396952 1 d40100945a08d047d65a8f8c1ba557351467136b 0 game\bin\win64\cs2_build_econ_items_workshop.exe
- 13866 1 22ce12bf18f6df3737c2ac7a83452663ed531f04 0 game\bin\win64\csgo.signatures
+ 13866 1 4e91d62ce49f83b21a49316d8e255cb52939be20 0 game\bin\win64\csgo.signatures
1271448 2 e0c0511657da151a4b8546e1ccb0f2eb5e6c6a40 0 game\bin\win64\csgocfg.exe
15683736 15 2787c3be064fd2215239c7fe9cb6f573d4984d9a 0 game\bin\win64\cs_mdl_import.exe
1196696 2 5691c2eec39a867bdb053d6880e5bc18b0bfde2a 0 game\bin\win64\dmxconvert.exe
@@ -721,7 +721,7 @@ Total bytes compressed : 576285616
133435 1 5c5acf7bffba281b1fb2de939a6953c385e26ac3 0 game\csgo\lighting\postprocessing\editor\toolsscene_default.vpost_c
3823 1 aaa9517703492629cade78571c39f5fdc2c417e3 0 game\csgo\models_gamedata.fgd
1559 1 ccef3c777e99029f1956e3ad23a718a99fd36d14 0 game\csgo\postprocessing.fgd
- 50760417 51 2864b89d3750e3547f9063365e334dca0fcd55c5 0 game\csgo\readonly_tools_asset_info.bin
+ 50760653 52 93546dbe6f18a664cf6fe049d26d6fa2669b54c1 0 game\csgo\readonly_tools_asset_info.bin
3009 1 8374c54025aad8c3d4a72b5f7f198d99951b7844 0 game\csgo\tools\cs2_icon_gen\icon_camera.png
2390 1 436ef3b91600906f462a33b9973b3f0955ddf1d6 0 game\csgo\tools\cs2_icon_gen\icon_item.png
2566 1 d78fd6c17e836a35c1cff4b375de7928ea5aea40 0 game\csgo\tools\cs2_icon_gen\icon_light_fill.png
@@ -896,24 +896,24 @@ Total bytes compressed : 576285616
124548 1 20a6acffa7ca7b25b9d9877c122fa093fa57ff0b 0 game\csgo_addons\addon_template\sounds\vent_01.vsnd_c
43 1 5c3b6d056cc345ec397072c83b3ee35b9a297c54 0 game\csgo_addons\cs_script_demo\addoninfo.txt
9365499 9 ec299d7ace3af9c2dc9389711f8245648e98f0a1 0 game\csgo_addons\cs_script_demo\maps\cs_script_demo.vpk
- 142896 1 b32b537abcbf37d3142ff9e6f993054f36794cc0 0 game\csgo_addons\cs_script_demo\maps\scripts\chess.vjs_c
- 5673 1 400181285c706c503c05df252f02d6d5afe6d287 0 game\csgo_addons\cs_script_demo\maps\scripts\grenadetraining.vjs_c
+ 142854 1 e7a944ff2a1f60050cec656163e9f222fed60fb7 0 game\csgo_addons\cs_script_demo\maps\scripts\chess.vjs_c
+ 5563 1 aa170a6c06797a100a3adcf2f9a80e94187f72fc 0 game\csgo_addons\cs_script_demo\maps\scripts\grenadetraining.vjs_c
1004 1 7f478db2558a9255c8d0f4eaf4713ec0c95289d8 0 game\csgo_addons\cs_script_demo\maps\scripts\hello.vjs_c
2388 1 d66364c7659b7d12265bf20125a8a2b047e359a4 0 game\csgo_addons\cs_script_demo\maps\scripts\input.vjs_c
- 2664 1 80b21090e2f0d1fc2b8776bcbc88831952db1afd 0 game\csgo_addons\cs_script_demo\maps\scripts\mdlchange.vjs_c
- 2972 1 39a51a14245ec28b2a640f2b52dcb7cb4ed2ef97 0 game\csgo_addons\cs_script_demo\maps\scripts\setup.vjs_c
+ 2670 1 68b17c707895ade3432792703a9b1d305c063bb2 0 game\csgo_addons\cs_script_demo\maps\scripts\mdlchange.vjs_c
+ 3184 1 86527676cb68b689379cf18e31768209b882d826 0 game\csgo_addons\cs_script_demo\maps\scripts\setup.vjs_c
7356 1 5b8e9e25a6b1b4d942e02f16c2922780e862bce7 0 game\csgo_addons\cs_script_demo\maps\scripts\trace.vjs_c
1599 1 26b7254a6bf5a03bb6fe0dab0b87763117024ee9 0 game\csgo_addons\cs_script_demo\panorama\layout\custom_game\welcome.vxml_c
2439 1 f11b0c632f773e4dee00eb71cbb43319a0acb557 0 game\csgo_addons\cs_script_demo\panorama\styles\custom_game\welcome.vcss_c
- 142016 1 5b78dcfe1e02801682f30badc197821af834f7a1 0 game\csgo_addons\cs_script_demo\panorama_stripped\maps\scripts\chess.js
- 4777 1 fb1b321cf1d587bd92762d4ae18f70e375ed8a92 0 game\csgo_addons\cs_script_demo\panorama_stripped\maps\scripts\grenadetraining.js
+ 141974 1 5ea1650a6c01a1a966cc61629112eeb398499e97 0 game\csgo_addons\cs_script_demo\panorama_stripped\maps\scripts\chess.js
+ 4667 1 b89ec7b13634f4c2c936fb45e47248abfc851b99 0 game\csgo_addons\cs_script_demo\panorama_stripped\maps\scripts\grenadetraining.js
124 1 bc5e2b800073f4e359d7d29cb07d35a7a312859a 0 game\csgo_addons\cs_script_demo\panorama_stripped\maps\scripts\hello.js
1508 1 0fc8650026ef338adae04c20fc9abacd95ccaba9 0 game\csgo_addons\cs_script_demo\panorama_stripped\maps\scripts\input.js
- 1768 1 665584f5be5a273e00cdc4d52fc777544216e3ab 0 game\csgo_addons\cs_script_demo\panorama_stripped\maps\scripts\mdlchange.js
- 2092 1 2ff2ecb556d00d6e00d026ba3860cb0977844155 0 game\csgo_addons\cs_script_demo\panorama_stripped\maps\scripts\setup.js
+ 1774 1 d1255dadcba7eff368fcf2aaf3af17eae29a9d28 0 game\csgo_addons\cs_script_demo\panorama_stripped\maps\scripts\mdlchange.js
+ 2304 1 0d1e9adb823d080002b1a5e48b7bbd592d585a15 0 game\csgo_addons\cs_script_demo\panorama_stripped\maps\scripts\setup.js
6476 1 d71bc1d5fac402a9d18d71cd2b853ec98f26ec45 0 game\csgo_addons\cs_script_demo\panorama_stripped\maps\scripts\trace.js
344 1 33085b2472c3efcdebb61a0cc4f2aec675f79166 0 game\csgo_addons\cs_script_demo\panorama_stripped\panorama\layout\custom_game\welcome.xml
774 1 d4b48ea27dc2e4a7bd771559459e058e8dcd7040 0 game\csgo_addons\cs_script_demo\panorama_stripped\panorama\styles\custom_game\welcome.css
- 4862 1 02076fae4b389b631257caa0f96c803c45a842b1 0 game\csgo_addons\cs_script_demo\readonly_tools_asset_info.bin
+ 4862 1 a1a8b99f7caf6411ddc55f278f2dd68431b120b6 0 game\csgo_addons\cs_script_demo\readonly_tools_asset_info.bin
191 1 e3c5549cb3715e2e759a11d90eddea1c1f49a341 0 game\csgo_addons\workshop_items\addoninfo.txt
1706103 2 e12db26662c1223b12302ff8618f0630586d5a14 0 game\csgo_lv\readonly_tools_asset_info.bin
manifests/manifest_731.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 731
-Manifest ID / date : 5799502335586127231 / 11/03/2026 00:24:30
+Manifest ID / date : 4368490491959295332 / 11/05/2026 00:08:03
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 759958d606a65558944eea2a1f6f5d7f6de48b65 0 game\bin\content_built_from_cl.txt
+ 8 1 bea1fc1dbd8adda08a333b7780e5ad2e82c957e6 0 game\bin\content_built_from_cl.txt
manifests/manifest_732.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 732
-Manifest ID / date : 4514904948984964204 / 11/03/2026 00:24:37
+Manifest ID / date : 2657142932244703230 / 11/05/2026 00:08:05
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 759958d606a65558944eea2a1f6f5d7f6de48b65 0 game\bin\content_built_from_cl.txt
+ 8 1 bea1fc1dbd8adda08a333b7780e5ad2e82c957e6 0 game\bin\content_built_from_cl.txt
manifests/manifest_733.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 733
-Manifest ID / date : 4581807251902851325 / 11/03/2026 00:24:44
+Manifest ID / date : 8439362531565969601 / 11/05/2026 00:08:07
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 759958d606a65558944eea2a1f6f5d7f6de48b65 0 game\bin\content_built_from_cl.txt
+ 8 1 bea1fc1dbd8adda08a333b7780e5ad2e82c957e6 0 game\bin\content_built_from_cl.txt
manifests/manifest_734.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 734
-Manifest ID / date : 519374194040118223 / 11/03/2026 00:24:50
+Manifest ID / date : 4866394379921971128 / 11/05/2026 00:08:08
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 759958d606a65558944eea2a1f6f5d7f6de48b65 0 game\bin\content_built_from_cl.txt
+ 8 1 bea1fc1dbd8adda08a333b7780e5ad2e82c957e6 0 game\bin\content_built_from_cl.txt
manifests/manifest_735.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 735
-Manifest ID / date : 7430157609109467345 / 11/03/2026 00:24:57
+Manifest ID / date : 7820664911512609889 / 11/05/2026 00:08:10
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 759958d606a65558944eea2a1f6f5d7f6de48b65 0 game\bin\content_built_from_cl.txt
+ 8 1 bea1fc1dbd8adda08a333b7780e5ad2e82c957e6 0 game\bin\content_built_from_cl.txt
3.11.2026, 01.31.14
Localization/resources update (game/csgo/pak01_dir/resource/csgo_english.txt).
Files changed: 26 • +173 / -169
scriptsuilocalizationmisccontent-change
Changed files
DumpSource2/.stringsignore
modified • +1 / -0 • changes: 1
Show patch
@@ -23939,6 +23939,7 @@ m_bQueueFinishLoading
m_bQueueSetupPathMover
m_bQueueStop
m_bQueueStopMoving
+m_bQueuedMatchmakingReportedRoundStatsPendingSend
m_bQuietTracepoints
m_bRadarFlash
m_bRadialCheck
DumpSource2/schemas/server/CCSGameRules.h
modified • +1 / -0 • changes: 1
Show patch
@@ -101,6 +101,7 @@ class CCSGameRules : public CTeamplayRules
uint32 m_numSpectatorsCountMax;
uint32 m_numSpectatorsCountMaxTV;
uint32 m_numSpectatorsCountMaxLnk;
+ bool m_bQueuedMatchmakingReportedRoundStatsPendingSend;
int32 m_nCTsAliveAtFreezetimeEnd;
int32 m_nTerroristsAliveAtFreezetimeEnd;
bool m_bForceTeamChangeSilent;
game/bin/built_from_cl.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -1 +1 @@
-11191483
+11198114
game/bin/win64/csgocfg.exe_strings.txt
modified • +1 / -2 • changes: 3
Show patch
@@ -167,7 +167,7 @@
.CRT$XIAC
.fgd
/e,/select,"
-14:52:48
+15:32:27
1AcceptIfItemPicked()
1OnAccept()
1OnAddonDoubleClicked()
@@ -1361,7 +1361,6 @@ New Item Type
No %s specified. Expected '=' '[' <%s> ']'
NoEditor()
NoRole
-Oct 23 2026
OnAccept
OnAddonDoubleClicked
OnAddonSelectionChanged
game/bin/win64/engine2_strings.txt
modified • +2 / -1 • changes: 3
Show patch
@@ -2452,7 +2452,6 @@ $tI(knN
00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
0123456789abcdef
0123456789abcdefghijklmnopqrstuvwxyz
-09:02:57
0: run all send jobs on main thread; 1: send jobs run asynchronously (except on dedicated server); 2: send jobs asynchronously; 3: send jobs run in parallel but block to not overlap the next tick; 4: main server clients' send jobs run in parallel, then HLTV server jobs; this approximately matches pre-async profile for a single HLTV server configuration
0=Off, 1=Surface Wireframe, 2=Transparent Wireframe
0=Off, 1=Visualize trace from camera, 2=Visualize occlusion, 3=Visualize far field trace from camera
@@ -2466,6 +2465,7 @@ $tI(knN
1#SNAN
1.2.11
127.0.0.1
+15:35:28
1:1: Tokens : ( T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | TOK_COLON | OPEN_BRACE | CLOSE_BRACE | OPEN_PAREN | CLOSE_PAREN | OPEN_BRACKET | CLOSE_BRACKET | SEMICOLON | OP_EQUAL | COMMA | DOUBLE_AND | NEGATIVE_TOK | DOUBLE_OR | LITERAL_TRUE | LITERAL_FALSE | POS_INTLITERAL | POS_FLOATLITERAL | SCOPE_QUALIFIER | ID | DOUBLE_QUOTED_STRING | SINGLE_QUOTED_STRING | SINGLE_LINE_COMMENT | ML_COMMENT | WS | UNRECOGNIZED );
200000
3$EE\f
@@ -5981,6 +5981,7 @@ Not saving user configuration because host_readconfig_ignore_userconfig is set.\
Not supported.
Note that enum values use C++ scoping rules, meaning that enum values are siblings of their type, not children of it. Therefore, "
Note: should use "addip" instead of "banip".\n
+Nov 2 2026
November
Now recording to "%s", immediate mode, recorded length so far is %s.\n
Now recording to "%s", recorded length so far is %s.\n
game/bin/win64/networksystem_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -271,7 +271,7 @@
0 bit issue, spot 2
0 bit issue, spot 3
0 bit issue, spot 4
-7;eZ\f
+7;eZ\r
::Storage_t
Accepting Steam Net connection %s\n
AckSeqNum
game/bin/win64/resourcecompiler_strings.txt
modified • +2 / -3 • changes: 5
Show patch
@@ -9020,7 +9020,7 @@ $key:FloatBitmap_t
/vpk.privatekey.vdf
/vpk.publickey.vdf
0123456789)"
-08:41:27
+15:37:26
1:1: Tokens : ( PLUS | MINUS | MUL | DIV | COMMA | LPAREN | RPAREN | EQUALS | PERCENT | INT | FLOAT | ID | ML_COMMENT | SL_COMMENT | NL | WS );
1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );
241:1: FLOAT : ( ( MINUS )? ( DIGIT )+ '.' ( DIGIT )* ( EXP )? ( FLOATSUFFIX )? | ( MINUS )? ( DIGIT )+ ( EXP )? ( FLOATSUFFIX )? | ( MINUS )? '.' ( DIGIT )+ ( EXP )? ( FLOATSUFFIX )? );
@@ -12354,7 +12354,6 @@ Object of the appropriate type, if valid.
Object to cast
OcclusionCullingBoundsExpand
OcclusionCullingBoundsScale
-Oct 28 2026
Offset from %d
Old params: %s\n
On After Killed
@@ -16199,7 +16198,7 @@ pathing_visibility_threshold
pathingcoeffs
pathingeq
pathingmixlevel
-pc64 Oct 28 2026 08:41:36
+pc64 Nov 2 2026 15:37:25
perchannel
permissive_panorama_compiles
permitrepeats
game/bin/win64/resourceinfo.exe_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -7243,7 +7243,7 @@ x509_req
x509_store
x931
yS/h
-z0?g\v
+z0?g\f
zlVO
zlib compression
zone
game/bin/win64/tools/hammer_strings.txt
modified • +0 / -1 • changes: 1
Show patch
@@ -7386,7 +7386,6 @@ ObjectProperties
Objects To Include
Objs Rendered
Objs fading
-Oct 28 2026
Octaves:
Offset (accumulative)
Offset the edge a constant distance from one of the neighboring edges
game/bin/win64/tools/met_strings.txt
modified • +1 / -2 • changes: 3
Show patch
@@ -235,12 +235,12 @@
// THIS FILE IS AUTO-GENERATED\n
//-------------------------------------------------\n
0123456789)"
-08:38:49
0=Wrap,1=Mirror,2=Clamp,3=Border,4=MirrorOnce
1 texel = %1px
1/%1x
1/2/3
128 x 128
+15:35:57
1:1 current mip
1:1: Tokens : ( T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | BOOLLITERAL | ID | INTEGERLITERAL | HEXINTEGERLITERAL | FLOATLITERAL | COMMENT | WS );
1AboutAction()
@@ -1248,7 +1248,6 @@ No valid vcs file found for shader %s\n
No\nPreview\nAvailable
Normal Map Conversion
OCTAL_ESC
-Oct 28 2026
OnAccept
OnAcceptClicked
OnAccepted
game/bin/win64/vconsole2.exe_strings.txt
modified • +2 / -4 • changes: 6
Show patch
@@ -481,12 +481,12 @@ $B0B
.vsky
.webp
0.0.0.0
-08:40:09
0BCDEFGHIJKLMNOPQRSTUVWXYZ1BCDEFGHIJKLMNOPQRSTUVWXYZ2BCDEFGHIJKLMNOPQRSTUVWXYZ3BCDEFGHIJKLMNOPQRSTUVWXYZ4BCDEFGHIJKLMNOPQRSTUVWXYZ\n
0x%llx
127.0.0.0
127.0.0.1:%d
-14:53:01
+15:33:14
+15:33:36
172.16.0.0
1AboutAction()
1NextFrame()
@@ -2434,8 +2434,6 @@ Not safe to 'new' this class due to alignment requirements
NotReloading
Number of devices to create (max %1):
NumberOfInks
-Oct 23 2026
-Oct 28 2026
Old-style JPEG
Old-style LZW codes, convert file
OldSubfileType
game/bin/win64/vrad3_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -2307,7 +2307,7 @@ path_trace_triangles_gpu
path_trace_triangles_gpu_init
path_trace_triangles_gpu_shutdown
path_trajectory
-pc64 Oct 23 2026 14:51:29
+pc64 Nov 2 2026 15:32:44
physicsSimplificationError
physicsSimplificationOverride
pinEnabled
game/csgo/bin/win64/host_strings.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -106,7 +106,7 @@ DotaMapUtils001
EconVData001
Entry %s was not found in surfaceproperties_footsteps.txt\n
Error loading %s: %s\n
-FaN"\n
+FaN"\v
Failed to open file: %s\n
FoliageAnimation
Game System %s is defined twice!\n
game/csgo/pak01_dir.txt
modified • +4 / -4 • changes: 8
Show patch
@@ -84581,7 +84581,7 @@ panorama/scripts/mainmenu_xpshop_tile.vts_c CRC:00d409e8ed size:24206
panorama/scripts/mapdraft.vts_c CRC:0067f23c2d size:42318
panorama/scripts/match-reconnect.vts_c CRC:009bd134cc size:6862
panorama/scripts/match_stakes.vts_c CRC:007a7a3ca9 size:10862
-panorama/scripts/matchinfo.vts_c CRC:008a1a5f2f size:105486
+panorama/scripts/matchinfo.vts_c CRC:002706dab2 size:105902
panorama/scripts/matchlist.vts_c CRC:00ac9e0e42 size:52878
panorama/scripts/matchmaking_status.vts_c CRC:0008a8c523 size:13534
panorama/scripts/mission_tile.vts_c CRC:00db95903b size:33790
@@ -87984,7 +87984,7 @@ resource/csgo_bulgarian.txt CRC:00e6aa803c size:7758759
resource/csgo_czech.txt CRC:00aa2da1f8 size:5097152
resource/csgo_danish.txt CRC:001655e064 size:5003477
resource/csgo_dutch.txt CRC:007e635df4 size:5049457
-resource/csgo_english.txt CRC:00a7f600cd size:4878645
+resource/csgo_english.txt CRC:00e83600df size:4879039
resource/csgo_finnish.txt CRC:0040d7f29a size:4960257
resource/csgo_french.txt CRC:00cf90f727 size:5254356
resource/csgo_german.txt CRC:00768f902a size:5164887
@@ -87998,15 +87998,15 @@ resource/csgo_latam.txt CRC:00436dd96a size:5188121
resource/csgo_norwegian.txt CRC:00f79e57f3 size:4924516
resource/csgo_polish.txt CRC:003eee27c8 size:5321400
resource/csgo_portuguese.txt CRC:00ed24ede6 size:5059879
-resource/csgo_romanian.txt CRC:00726dbe1b size:5270911
+resource/csgo_romanian.txt CRC:00b3958fb9 size:5270915
resource/csgo_russian.txt CRC:00ffa91341 size:6563734
resource/csgo_schinese.txt CRC:000d6871a9 size:4931452
resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645
resource/csgo_spanish.txt CRC:00f5db4811 size:5159573
resource/csgo_swedish.txt CRC:00b8b4e017 size:5031803
resource/csgo_tchinese.txt CRC:008252f083 size:4627815
resource/csgo_thai.txt CRC:00f47187a0 size:8128621
-resource/csgo_turkish.txt CRC:0004ab0a9f size:5165343
+resource/csgo_turkish.txt CRC:00ea144dfc size:5165506
resource/csgo_ukrainian.txt CRC:00ab17d5bc size:6621012
resource/csgo_vietnamese.txt CRC:00985185c2 size:5450532
resource/game.gameevents CRC:0090de10bc size:9837
game/csgo/pak01_dir/panorama/scripts/matchinfo.js
modified • +4 / -2 • changes: 6
Show patch
@@ -392,8 +392,10 @@ var matchInfo;
elPlayerRow.AddClass('no-hover');
elParentPanel.Data().activePlayerRow = elPlayerRow;
let isLive = Boolean(MatchInfoAPI.IsLive(elParentPanel.Data().matchId));
- if (isLive == false) {
- elParentPanel.FindChildInLayoutFile('id-mi-player-stats').RemoveClass('mi-player-stats__collapse');
+ let hasRoundStats = Boolean(MatchInfoAPI.GetMatchPlayerRoundStats(elParentPanel.Data().matchId, elPlayerRow.Data().playerXuid, "round_wins"));
+ elParentPanel.FindChildInLayoutFile('id-mi-player-stats').SetHasClass('mi-player-stats__collapse', isLive || !hasRoundStats);
+ if (!hasRoundStats) {
+ return;
}
let elStatsContainer = elParentPanel.FindChildInLayoutFile('id-mi-round-stats__container');
let elTickLabels = elParentPanel.FindChildInLayoutFile('id-mi-round-stats__tick-labels');
game/csgo/pak01_dir/resource/csgo_english.txt
modified • +5 / -0 • changes: 5
Show patch
@@ -46172,6 +46172,11 @@
"SFUI_Lobby_StatusRichPresence_retakes_community" "Community Retakes"
"SFUI_Lobby_StatusRichPresence_retakes_watch" "Watching Retakes"
"SFUI_Lobby_StatusRichPresence_retakes_review" "Replaying Retakes"
+ "SFUI_Lobby_StatusRichPresence_workshop_lobby" "In Workshop Map Lobby"
+ "SFUI_Lobby_StatusRichPresence_workshop_game" "Playing Workshop Map"
+ "SFUI_Lobby_StatusRichPresence_workshop_community" "Community Workshop Map"
+ "SFUI_Lobby_StatusRichPresence_workshop_watch" "Watching Workshop Map"
+ "SFUI_Lobby_StatusRichPresence_workshop_review" "Replaying Workshop Map"
"SFUI_Lobby_StatusRichPresenceSeparator_classic_competitive" " "
"SFUI_PSNPresence_SinglePlayer" "Single Player"
game/csgo/steam.inf
modified • +6 / -6 • changes: 12
Show patch
@@ -1,9 +1,9 @@
-ClientVersion=2000939
-ServerVersion=2000939
-PatchVersion=1.41.9.4
+ClientVersion=2000940
+ServerVersion=2000940
+PatchVersion=1.41.9.5
ProductName=cs2
appID=730
ServerAppID=2347773
-SourceRevision=11191540
-VersionDate=Oct 30 2026
-VersionTime=13:55:25
+SourceRevision=11198439
+VersionDate=Nov 02 2026
+VersionTime=16:17:08
manifests/manifest_2347770.txt
modified • +12 / -12 • changes: 24
Show patch
@@ -1,16 +1,16 @@
Content Manifest for Depot 2347770
-Manifest ID / date : 6694633556888099985 / 10/30/2026 21:05:03
+Manifest ID / date : 3690356453703667427 / 11/03/2026 00:25:56
Total number of files : 2992
-Total number of chunks : 65063
-Total bytes on disk : 65051805863
-Total bytes compressed : 55573428128
+Total number of chunks : 65055
+Total bytes on disk : 65048085465
+Total bytes compressed : 55568715408
Size Chunks File SHA Flags Name
- 10 1 2d6149740ea5c8f6b2d653ccf3f38a0d2a294ac3 0 game\bin\built_from_cl.txt
- 10347 1 cf297ff72b6c1648a9cecd8868cfac716c658e3c 0 game\bin\win64\csgo.signatures
- 8941 1 ec38742284e7338bb190a5eb2ff6f77c2a534438 0 game\bin\win64\vpk.signatures
+ 10 1 e1aceebbdd3814eb1f3e4216702f7dc8e3ca6465 0 game\bin\built_from_cl.txt
+ 10347 1 34e431cd4393ac0204703f2a6d9f19c224fd1479 0 game\bin\win64\csgo.signatures
+ 8941 1 f2e4452e9be7e5f6ccbbbd7979082a1321dd0aed 0 game\bin\win64\vpk.signatures
51357 1 0f5112698b482f8c1190c89192a4c0c8b0e50198 0 game\core\cfg\sfm_default_animation_groups.vcfg
2270 1 ab4e0ee92367ba6d28a89dae8f6000631ffdb641 0 game\core\cfg\user_keys_default.vcfg
2474 1 c4ff2f85048812f02c2403b0675208acfc00c7b0 0 game\core\gameinfo.gi
@@ -2438,7 +2438,7 @@ Total bytes compressed : 55573428128
118404050 113 796c7932cfeb6772b51013f28bd99bfdfb40483d 0 game\csgo\pak01_033.vpk
116169795 111 e382335666c33007e4a346ded29843a08e8656eb 0 game\csgo\pak01_034.vpk
104201764 102 d897179aaadd2b0de26e19afe39037903f6f424a 0 game\csgo\pak01_035.vpk
- 105234684 129 3493b2d21b1aecc2a0b56c7338a9fcc06f512e91 0 game\csgo\pak01_036.vpk
+ 120988884 138 f58ecf9bfb4813e19e008a7a63c2f7d48b0a059c 0 game\csgo\pak01_036.vpk
109137813 105 c1c5d1aeea369e80997338b7f41f8cadb17bbfdb 0 game\csgo\pak01_037.vpk
116538440 112 cf02841fa129fbb93933f539cc8ae0fcb54de2d9 0 game\csgo\pak01_038.vpk
103037018 103 83bd86a8c8cdc17b353c54cd4cf6a1e347a59e63 0 game\csgo\pak01_039.vpk
@@ -2773,7 +2773,7 @@ Total bytes compressed : 55573428128
99943692 100 e8da516e0d51337a189cdcd953278f762ac0a654 0 game\csgo\pak01_368.vpk
105708781 101 0f96f5bfaa0444b7e7d9913d86fff385c279a181 0 game\csgo\pak01_369.vpk
105059948 102 8bdc949a2182d103f63b3a1a78de3db43945c3ef 0 game\csgo\pak01_370.vpk
- 104830224 106 3d6f89be56c08ce63e224dcbe1f2e221c26e4a6b 0 game\csgo\pak01_371.vpk
+ 105268310 110 183c4b74cc2532675a6687a5bb28a032236ade11 0 game\csgo\pak01_371.vpk
105742452 106 5600349636412e27a10f5d7d7fdf2a524137b014 0 game\csgo\pak01_372.vpk
108035952 108 6b86e3e0c916b225f852abbf47c5f31915726e30 0 game\csgo\pak01_373.vpk
103105895 100 04531aca5df46681795ded2401e7382bd2982909 0 game\csgo\pak01_374.vpk
@@ -2906,8 +2906,8 @@ Total bytes compressed : 55573428128
99621956 106 9d2ae31cb7b16513b47b2aa6bc1a5b55a6ad8d43 0 game\csgo\pak01_501.vpk
99618250 105 568b65b644448b85efe132f8eaebe59c309c3fb3 0 game\csgo\pak01_502.vpk
100220508 102 60654a3f3231ef5de3b458ed332ba064c153c465 0 game\csgo\pak01_503.vpk
- 61294166 64 7e4515c2e23cc6b96ef870aff144182d3aa0bc84 0 game\csgo\pak01_504.vpk
- 7713358 8 860cb1f89ad46cd24ec82d18dca3f975cc951465 0 game\csgo\pak01_dir.vpk
+ 41381566 46 444eee2d83cbd067eec75b923992fa35b130c2d4 0 game\csgo\pak01_504.vpk
+ 7713274 8 7811a1e71538f431f6e160c41171ffa9efd0af6c 0 game\csgo\pak01_dir.vpk
11893 1 d2f5c237fcac89835ab901bf3cc83850c71d9b46 0 game\csgo\panorama\fonts\fonts.conf
107848 1 90edfc11fa568cd0fb5b9d6e6d369dddadfdb8c4 0 game\csgo\panorama\fonts\notomono-regular.ttf
310556 1 84e39ddc72cd1d2ac4be132d235979f10f916c2b 0 game\csgo\panorama\fonts\notosans-bold.ttf
@@ -2996,7 +2996,7 @@ Total bytes compressed : 55573428128
303670574 290 d2d77a7357436cf6fb69b704cebc84718609f70e 0 game\csgo\shaders_vulkan_003.vpk
25004138 28 7a80e74bbd9d763f27ad8788694da6d9d81cc99e 0 game\csgo\shaders_vulkan_004.vpk
41884 1 a9b38a712dcebbc8a985763a9134ec66c4264688 0 game\csgo\shaders_vulkan_dir.vpk
- 190 1 6bd54113491e0ded55a8f7d0f773905099323118 0 game\csgo\steam.inf
+ 190 1 2acf249fb98158c6b47a3af8f6254953ed9e3f50 0 game\csgo\steam.inf
209 1 cb2eaab8dbda9f075491a5410326356e127f60ec 0 game\csgo_lv\gameinfo.gi
135 1 7769174b103a021d6390cb2a31b758dbfff04639 0 game\csgo_lv\gameinfo_branchspecific.gi
473822 1 f5ca24bf12b20fee2ffb5d8bbc465ba8805d8abe 0 game\thirdpartylegalnotices.txt
manifests/manifest_2347771.txt
modified • +55 / -55 • changes: 110
Show patch
@@ -1,30 +1,30 @@
Content Manifest for Depot 2347771
-Manifest ID / date : 4494425425081083634 / 10/30/2026 21:05:41
+Manifest ID / date : 5808144614069275570 / 11/03/2026 00:26:34
Total number of files : 183
Total number of chunks : 7219
Total bytes on disk : 7753537022
-Total bytes compressed : 5011481952
+Total bytes compressed : 5011473536
Size Chunks File SHA Flags Name
181608 1 0bc12517a8ee4173867d54081a6d26527ab62672 0 game\bin\win64\amd_ags_x64.dll
- 9329816 9 c44f498f1874785f148aa743fab6e5ee4c017041 0 game\bin\win64\animationsystem.dll
- 48612504 48 a51eee7b1cc096c6245497e9b098945fafa0a3af 0 game\bin\win64\assetpreview.dll
+ 9329816 9 bf7814eef68259386519836a0575675b2f53fe03 0 game\bin\win64\animationsystem.dll
+ 48612504 48 a382d90a63b0a9a1e9efd1b3df018af1844cb3ba 0 game\bin\win64\assetpreview.dll
754024 1 84aaa5491087ffb7aa5453f48bdf3a837839f770 0 game\bin\win64\ati_compress_wrapper.dll
- 167576 1 080aa6cc967fa8780455da6cd6c900dffed7abc6 0 game\bin\win64\bugreporter_filequeue.dll
+ 167576 1 50ccfcf9e39a00f79de635fae3b788376d9f3b99 0 game\bin\win64\bugreporter_filequeue.dll
1271960 2 24eaed4030eeb1880ad94ad59d43e39894815e78 0 game\bin\win64\cairo.dll
2967704 3 543876c222172ce98b127e0b2fc6b3ea11f91f79 0 game\bin\win64\cs2.exe
4346120 5 612e6f443d927330b9b8ac13cc4a2a6b959cee48 0 game\bin\win64\d3dcompiler_47.dll
1558912 2 4ef5d229709e40f3f84e46c3a28341eadbd1a044 0 game\bin\win64\dbghelp.dll
21996904 21 bc499749a83cd7cd52673ecaa1c74760a20ba714 0 game\bin\win64\embree3.dll
- 7498392 8 ed638d59cca76998e79547d3766d4f6eb96840a4 0 game\bin\win64\engine2.dll
- 2260120 3 9ac3cc8658e9280d2dbd0f4a82aace65c34ecd32 0 game\bin\win64\filesystem_stdio.dll
+ 7498392 8 185f14e77381beea23078bc58a1d7bd0cef5e845 0 game\bin\win64\engine2.dll
+ 2260120 3 e6b2f2f01a06dd404f49cf333f68ddce1a5aebf3 0 game\bin\win64\filesystem_stdio.dll
2373 1 58812342d882cc4b5cb2469606929aa413e0ca16 0 game\bin\win64\foreign.signatures
5736000 6 7d1f621599d315bbda1c7d2129b689a999a20bd8 0 game\bin\win64\gfsdk_aftermath_lib.x64.dll
- 755864 1 501db249b47d2312d13524508e8c801991b6747f 0 game\bin\win64\helpsystem.dll
- 248472 1 4be7eb4d74567baeaf51a4686dbc81a8051787bc 0 game\bin\win64\imemanager.dll
- 302232 1 8d74403cf1ddbdd542be88b27a1a59a5c7f4772f 0 game\bin\win64\inputsystem.dll
+ 755864 1 83ed4f0304dcc6579093607217950b3b006a5975 0 game\bin\win64\helpsystem.dll
+ 248472 1 ff5cd135d038fb3cdeafde6b4fd46618025a78da 0 game\bin\win64\imemanager.dll
+ 302232 1 0eb5de06e385590668a23f5293ee7414196215ca 0 game\bin\win64\inputsystem.dll
6627176 7 49b2ad8a4e67451776d9c4e62c7aaf62a51e9735 0 game\bin\win64\libavcodec-58.dll
1847656 2 612200abbd317ae2c2173e52248cb5bcdcf6a9a1 0 game\bin\win64\libavformat-58.dll
756584 1 8949c887bd27fe265d1b4df08eb2d86cc74695a5 0 game\bin\win64\libavresample-4.dll
@@ -40,21 +40,21 @@ Total bytes compressed : 5011481952
400744 1 a4a6273b4de588fa2302d45bcc994fecfb6c5fea 0 game\bin\win64\libpango-1.0-0.dll
389992 1 a3d673d56314c10a6b742e88b4261dc9df857269 0 game\bin\win64\libpangoft2-1.0-0.dll
1283432 2 9867b4ab6b1a430242eae51aa2b1700a1ace4a2e 0 game\bin\win64\libswscale-5.dll
- 382104 1 386d54a0a1ba3ff051f148b25ec0defd5df67078 0 game\bin\win64\localize.dll
- 1428632 2 23bb3cfd4d4fe730eef8b5a18946e6bd74ab12c6 0 game\bin\win64\materialsystem2.dll
- 1664664 2 573dfb7361d93fe2bdd63ebbf132f571467e16e3 0 game\bin\win64\meshsystem.dll
- 1314968 2 1bac0b3b4639d8d47fbc6990308098a8ab1e4280 0 game\bin\win64\navsystem.dll
- 2841752 3 9a853bdb1755f40bda4e2c67cd0f55c0fd1bd4b5 0 game\bin\win64\networksystem.dll
- 147608 1 dc132099ef45f5d24cdf46ff0f4e8b95f272e03a 0 game\bin\win64\p4lib.dll
- 6108312 6 1d85b21366ba2cc6a7bd5869807140e1730ab074 0 game\bin\win64\panorama.dll
- 2748056 3 7884a9f4258e84378ad7effdee02d56255d0a82a 0 game\bin\win64\panoramauiclient.dll
- 2997912 3 199e25a095143d3a8b62ded12f74da9497aaf780 0 game\bin\win64\panorama_text_pango.dll
- 6460568 7 a6f468c64c6f133e72575694e80a5c3b1fc16dc0 0 game\bin\win64\particles.dll
+ 382104 1 2117557c22f9b58b6d0da2ba91a90fc2d7e52f9f 0 game\bin\win64\localize.dll
+ 1428632 2 d6e30c118d0f4bb139529a01d254199c71748d5c 0 game\bin\win64\materialsystem2.dll
+ 1664664 2 bfc3eb19939b3f38d85ec27b8d1bec77414b5c99 0 game\bin\win64\meshsystem.dll
+ 1314968 2 d41c0a00bc9e80ff0958412831ca483a9ad0f918 0 game\bin\win64\navsystem.dll
+ 2841752 3 2b96877b91a753e024ebd164036098c31b41ead7 0 game\bin\win64\networksystem.dll
+ 147608 1 f8b63f70ca58f6b7882b829430c9fb3cdc67487a 0 game\bin\win64\p4lib.dll
+ 6108312 6 94048c04cd1acea67d05dfe3f46972b979569617 0 game\bin\win64\panorama.dll
+ 2748056 3 2773a945a7eecf0f7722c91ce3147c8150cce087 0 game\bin\win64\panoramauiclient.dll
+ 2997912 3 9d3d1b368b8231038f7d54739985db3e80a47d4d 0 game\bin\win64\panorama_text_pango.dll
+ 6460568 7 fc7d1bac01a248f2af72a48746325208722072da 0 game\bin\win64\particles.dll
53322904 53 19e9e40c9a4780b26353e1a4d78f2a4f61ff8f3c 0 game\bin\win64\phonon.dll
567656 1 79759ec5c92853b73627da14e5e70f6c6c580a78 0 game\bin\win64\phonon4.dll
- 13950616 14 32da607e886aeed748459d9306a6917762edab13 0 game\bin\win64\physicsbuilder.dll
- 1522840 2 2e39fa5b15eaca75c30c5da1464348c9c0e23f33 0 game\bin\win64\propertyeditor.dll
- 2031768 2 bfbb7085355668eb93e95a48cf7b5312f576e72c 0 game\bin\win64\pulse_system.dll
+ 13950616 14 d97d9e5d6a64e98bd812ebe70a023c39a24e833b 0 game\bin\win64\physicsbuilder.dll
+ 1522840 2 eba06453afcdd6d6bf4b608fcc3fe6dcde592cb7 0 game\bin\win64\propertyeditor.dll
+ 2031768 2 6f40ef4d08911950fad3e1a7fb65b4ec1672b3ee 0 game\bin\win64\pulse_system.dll
131432 1 3177661f6e066460f2c859d2d5453323b68d6eda 0 game\bin\win64\Qt5Concurrent.dll
6288744 6 5f5173c825810bbd849e32b5e6e2cb32f6c456d2 0 game\bin\win64\Qt5Core.dll
7007080 7 08882a63e4c0962b33376da66224655f2b1d5e06 0 game\bin\win64\Qt5Gui.dll
@@ -67,53 +67,53 @@ Total bytes compressed : 5011481952
1616384 2 f5dc8fe31229639bd3fe28b52249af29722e0301 0 game\bin\win64\qt5_plugins\platforms\qwindows.dll
231424 1 8fc6fa3f8cda0ffc55725d817c782115322cd574 0 game\bin\win64\qt5_plugins\styles\qwindowsvistastyle.dll
828928 1 bbb2cff7f465f33d68bb00cb32c4ca897334cc94 0 game\bin\win64\qtadvanceddocking-qt5.dll
- 4545688 5 051d860ce08f10ec2a0d0345ca8f1727e337152a 0 game\bin\win64\rendersystemdx11.dll
- 1774744 2 5b6210ed355a8b9cd9a2aa7312e3bb7c08516484 0 game\bin\win64\rendersystemempty.dll
- 6249624 7 7fda1b8745d98cdbcc8fe7a1153ac6de25db01d1 0 game\bin\win64\rendersystemvulkan.dll
- 56351896 54 ae2b2266c510a9efe65a2220bb38dba42dac6e46 0 game\bin\win64\resourcecompiler.dll
- 532632 1 3eb3b6bd25b276fb670f1474260267907db9cd16 0 game\bin\win64\resourcesystem.dll
- 1297048 2 a098eda7437c0f2bd2eee3e113421c958f2aba69 0 game\bin\win64\scenefilecache.dll
- 7094936 7 2a0d7c4734b5058b0dcf8e270630c9a8a9dab4b8 0 game\bin\win64\scenesystem.dll
- 445592 1 a2d1ab7e9bfefb9df339767031cf6b6ce7a1a43e 0 game\bin\win64\schemasystem.dll
+ 4545688 5 ad12c77a510d514d29c61b7e3a515fea41864047 0 game\bin\win64\rendersystemdx11.dll
+ 1774744 2 5cc9557830aaf4ee91c22d08568bb27a0f673528 0 game\bin\win64\rendersystemempty.dll
+ 6249624 7 994dbf58e75bf4b3d0b54e70b1613f946c050d08 0 game\bin\win64\rendersystemvulkan.dll
+ 56351896 54 4dafe44305d9966c865bcc78460f31acf5153bf9 0 game\bin\win64\resourcecompiler.dll
+ 532632 1 c62dfbb1cee3f7553bfcf99b4fbac724a5341841 0 game\bin\win64\resourcesystem.dll
+ 1297048 2 94c9536c1a0b4ed2b736c41c386d08652ff81654 0 game\bin\win64\scenefilecache.dll
+ 7094936 7 9bb7594bcd332c617df4b6a9db62c8886991f84d 0 game\bin\win64\scenesystem.dll
+ 445592 1 61a9c15eab213fbb579ef604310fd28eee47145e 0 game\bin\win64\schemasystem.dll
2891928 3 2455bae3c453025d4d481afebdc517ac9e3f3659 0 game\bin\win64\SDL3.dll
- 5838488 6 dd30ad36fdcfb5d9f59b2cfb46b0bef25184328f 0 game\bin\win64\soundsystem.dll
- 3547288 4 2ed24977ac906ca1596d83f466669849116c2619 0 game\bin\win64\steamaudio.dll
+ 5838488 6 2c7068a3059c8057b9280de287cead9c2ae3a0de 0 game\bin\win64\soundsystem.dll
+ 3547288 4 dcd7e7502e53c738b5b86b29bd5dcd8ae23e53a1 0 game\bin\win64\steamaudio.dll
4290200 5 b2a6c8bdb391737a00e9d32a186d726da2037aae 0 game\bin\win64\steamnetworkingsockets.dll
317080 1 a9fd85dbfdcee3209768facb284b8788df41c3d3 0 game\bin\win64\steam_api64.dll
- 887448 1 213fce1c7bfac044eaf350a00f5e7c10870df8ae 0 game\bin\win64\subtools\convarhelper_subtool.dll
- 227992 1 e3f03807f29613a9401c411b6ce7a50d09976b4f 0 game\bin\win64\subtools\dashboard_subtool.dll
- 366232 1 38825442ff3adaf635c82e502c350008d847d242 0 game\bin\win64\subtools\netgraph_subtool.dll
- 418968 1 1b3bdc723a1dcd18222285efe5d395e46223a864 0 game\bin\win64\subtools\soundviewer_subtool.dll
- 338584 1 e2990d2f36d45f5c5321d57f4bf2e4ee9fdfae75 0 game\bin\win64\subtools\vprof_subtool.dll
+ 887448 1 51b273640034e3bf523a5899ea9d377b64e70c15 0 game\bin\win64\subtools\convarhelper_subtool.dll
+ 227992 1 e534813280d8a18b42833bdb80cf6f440ea791ad 0 game\bin\win64\subtools\dashboard_subtool.dll
+ 366232 1 514ff31ef4596425d671a13b0721e5ac1e96ec5b 0 game\bin\win64\subtools\netgraph_subtool.dll
+ 418968 1 fddeb0c0f40fe6ea7c3b6f0a00712fe9ee45955d 0 game\bin\win64\subtools\soundviewer_subtool.dll
+ 338584 1 6965c56d222b1947c5a0f4e746cb35e92349ce71 0 game\bin\win64\subtools\vprof_subtool.dll
149264 1 4b46db2a99a47ff6a6ee376f4d79f5298bff28a2 0 game\bin\win64\symsrv.dll
1473 1 a2f63b30356a09266d8e598c4a4949ad00733230 0 game\bin\win64\system.signatures
- 3979928 4 7a95e7c564b75d4e207eb013d8797c46c392edad 0 game\bin\win64\tier0.dll
- 13708952 14 683fd7f433475c1fb83f58ff4d9bac6f2df76ec1 0 game\bin\win64\toolframework2.dll
+ 3979928 4 2dc971f4ba4b15a18c2cb2b189cb6bb696549e20 0 game\bin\win64\tier0.dll
+ 13708952 14 944b6e3fce2c1c2526a39d4c65da569e96a74a48 0 game\bin\win64\toolframework2.dll
50473832 49 29b8401736bcbb130ad79cde21b1cb70c4fefabf 0 game\bin\win64\v8.dll
- 233624 1 08fbefa2846b1129d3195ea107e54529b6a75d6b 0 game\bin\win64\v8system.dll
+ 233624 1 e0be570be2c322f5d7765f85a779773dc2d301ae 0 game\bin\win64\v8system.dll
3937128 4 3a8e40f31868314b88d6514cd096dd0908f24a1b 0 game\bin\win64\v8_icui18n.dll
2849640 3 95d6436822bcf47bb4315c0c20d69775662163b6 0 game\bin\win64\v8_icuuc.dll
1637736 2 8402ca7e7ffb4c8db27c05c7d7c3d10c224a0750 0 game\bin\win64\v8_libbase.dll
1455464 2 9beacc20acdc683129c258a97432e6beb8701d71 0 game\bin\win64\v8_libplatform.dll
844136 1 97b323fba40640622eb756c42206dc088474b21a 0 game\bin\win64\v8_zlib.dll
- 194200 1 4f1f86e04e54f20e423971760257bffd0af1e81c 0 game\bin\win64\valve_avi.dll
- 11384472 12 78fbfadb81c05286f0c6f0006dfcde493248e087 0 game\bin\win64\valve_webm.dll
- 177304 1 53fe6ef4fff3e1f843be723e792fb02bdcd7a6c6 0 game\bin\win64\valve_wmf.dll
- 259736 1 6750a03108261019c3c8762094c3cecd156c07f4 0 game\bin\win64\vconcomm.dll
- 5105816 5 3884e04f808764c89f0b9ddf940183897c241456 0 game\bin\win64\vconsole2.exe
- 1327256 2 c7ecf73ad6654517f163f23bdfa7e5ed62cbd3b2 0 game\bin\win64\vfx_dx11.dll
+ 194200 1 5860e5e47341acb69dcfe7e80e22462e3acf6f21 0 game\bin\win64\valve_avi.dll
+ 11384472 12 a9a817e4576f9d0579e7c165fca5fed87079f643 0 game\bin\win64\valve_webm.dll
+ 177304 1 597b00148c9434443daf6f09058a16e82fe98a08 0 game\bin\win64\valve_wmf.dll
+ 259736 1 c17af6d351fed715ec6335204e04aff779647c41 0 game\bin\win64\vconcomm.dll
+ 5105816 5 1f4298f214e0b6425cc8acdde412048919011563 0 game\bin\win64\vconsole2.exe
+ 1327256 2 61b7e2e78c4a28ce0a739204fdd66ca771c6fad0 0 game\bin\win64\vfx_dx11.dll
4610448 5 6e02ca508c3fcbd7972475e7b1530d0a2dfa12c3 0 game\bin\win64\video64.dll
- 1855640 2 c407a13221df9390f71a999a14ab40bb7d70eef4 0 game\bin\win64\visbuilder.dll
- 4829848 5 1d443f6452208cde31a8c6e84103758ded32a8b7 0 game\bin\win64\vphysics2.dll
- 1352856 2 64f98a410a72087c75c51c0f07cc1db49fc5a639 0 game\bin\win64\vscript.dll
- 2029720 2 9b117aa56a622b6a6026c8bfa8ba65b03222efa0 0 game\bin\win64\worldrenderer.dll
+ 1855640 2 2c43f071e8ba595080b487b437e97af0526efb2b 0 game\bin\win64\visbuilder.dll
+ 4829848 5 0ae0801a6394bc9b1aa70304c9eebf831620f0bc 0 game\bin\win64\vphysics2.dll
+ 1352856 2 1ab1c7fa28d18fb621fd2a3f38ff255d3dc6bb92 0 game\bin\win64\vscript.dll
+ 2029720 2 82c110e168cd9741d1f818c6cc26f909152e65af 0 game\bin\win64\worldrenderer.dll
3185298 4 10bea5cfe6883540880c748e9506a04ad11e53ca 0 game\core\shaders_pc_000.vpk
25563 1 72204b8136ab7b8df21a52fb0b8b674f8c578b06 0 game\core\shaders_pc_dir.vpk
1728360 2 4e48ff45949c7f3cd8fd8ab5b7514ae27f44e53a 0 game\csgo\bin\legacy\csgo_legacy_app.exe
- 39224472 38 b5ad5ca0a78e816cf93836327b42d5a5ef49dcab 0 game\csgo\bin\win64\client.dll
- 1389208 2 40c6db9d0b1a07915441df9e7f002375f1bbad7a 0 game\csgo\bin\win64\host.dll
- 1890968 2 9aedfe7565fa06c398d7c4a0017bfc6490567b4d 0 game\csgo\bin\win64\matchmaking.dll
- 34690200 34 7eb4d9b19948117424d575b158aa11c565d71eec 0 game\csgo\bin\win64\server.dll
+ 39224472 38 51a449b7cac525d9470b3d98debc6a43467ead20 0 game\csgo\bin\win64\client.dll
+ 1389208 2 425f2ec89bdaa5b0d2ca47945fa08ec906661749 0 game\csgo\bin\win64\host.dll
+ 1890968 2 ebcf0d685e5347a5e246521cc0ee694f5d266bb3 0 game\csgo\bin\win64\matchmaking.dll
+ 34690200 34 b3c3e96f47acbdcf00655a3d7e5db509480eeef5 0 game\csgo\bin\win64\server.dll
115209034 117 4bbd01e43063ebade958bb509725b1b48c811b00 0 game\csgo\shaders_pc_000.vpk
189827159 182 7829b4ede09333c4e30a53d1ef958b9baeaeac39 0 game\csgo\shaders_pc_001.vpk
38973836 41 55f4f1a11b02a8a25a77a452d24ae14aa04b9f0b 0 game\csgo\shaders_pc_002.vpk
manifests/manifest_2347773.txt
modified • +32 / -32 • changes: 64
Show patch
@@ -1,53 +1,53 @@
Content Manifest for Depot 2347773
-Manifest ID / date : 6232960523750647649 / 10/30/2026 21:05:58
+Manifest ID / date : 4551386601247986792 / 11/03/2026 00:27:00
Total number of files : 135
Total number of chunks : 6673
-Total bytes on disk : 7224464934
-Total bytes compressed : 4605726512
+Total bytes on disk : 7224465798
+Total bytes compressed : 4605728448
Size Chunks File SHA Flags Name
155548 1 6f37e2bbe028e2b198f87972fc7265422a44b4b2 0 game\bin\linuxsteamrt64\cs2
84104 1 17f3c133b5c62e6e2bbb0280e038912414412579 0 game\bin\linuxsteamrt64\fltlnx64.flt
- 15438136 15 eff263174b3593ea6d8906c05749c219a16d26b1 0 game\bin\linuxsteamrt64\libanimationsystem.so
+ 15438136 15 aea2634b8346eb8e971473a5ee7110674643441c 0 game\bin\linuxsteamrt64\libanimationsystem.so
3678216 4 68f95c77a3ab19b380f142ab7e6ccb543af9d37c 0 game\bin\linuxsteamrt64\libavcodec.so.58
888848 1 bcfdd74b8bc4268cc6af190a10c8d64d27b71bc9 0 game\bin\linuxsteamrt64\libavformat.so.58
129496 1 4895da33d08a56dfb48daa79a3bcee9f9c361649 0 game\bin\linuxsteamrt64\libavresample.so.4
712672 1 451e7c11727fefe58f2cca8fc0e0cd0bc562f43e 0 game\bin\linuxsteamrt64\libavutil.so.56
1596148 2 b96dfdf2fe9a36436fd4f04ca78e292982ea15b1 0 game\bin\linuxsteamrt64\libcairo.so
- 11158432 11 e4ecff8b413f8d55553aabc4840d33f384aefdf3 0 game\bin\linuxsteamrt64\libengine2.so
- 3108744 3 8d3a0ab5d79de09b04d8a27011a697ca4528fb2d 0 game\bin\linuxsteamrt64\libfilesystem_stdio.so
+ 11158432 11 b8fd6c32f218cb3bce5c2a333fd3adf3c6214940 0 game\bin\linuxsteamrt64\libengine2.so
+ 3108744 3 d3cae622c8ce4cf58a810da91e903461d0aa22fd 0 game\bin\linuxsteamrt64\libfilesystem_stdio.so
1304272 2 0af1352041c54e16129773dc8d038872f9f839be 0 game\bin\linuxsteamrt64\libfontconfig.so.1
3930056 4 0b64e7c4eab1a6313867cb39c0fafbeb026aac7f 0 game\bin\linuxsteamrt64\libfreetype.so.6
- 513732 1 fdc1e2cc13a6ddd503628eb25a9339ce43ed8d84 0 game\bin\linuxsteamrt64\libinputsystem.so
- 648856 1 17746564434c03f97488384cf1f717bf72223a10 0 game\bin\linuxsteamrt64\liblocalize.so
- 1795744 2 118c122d1835900fefc44a0e44f86575e8a1a8a5 0 game\bin\linuxsteamrt64\libmaterialsystem2.so
- 2011620 2 169d7d3b32aaf3b22770b10c518b6bbde6a8622b 0 game\bin\linuxsteamrt64\libmeshsystem.so
+ 513732 1 7c14219443cdb6f8859ba69a44bab1f9d194a2fd 0 game\bin\linuxsteamrt64\libinputsystem.so
+ 648856 1 42cfa49393332d46fde5739d59724594ce97b29c 0 game\bin\linuxsteamrt64\liblocalize.so
+ 1795744 2 8aec8095fdc80f31e42b85a16872cf49772ec09a 0 game\bin\linuxsteamrt64\libmaterialsystem2.so
+ 2011620 2 61da167872eea90673fbe6b0d711e071571a1aa4 0 game\bin\linuxsteamrt64\libmeshsystem.so
1051154 2 312f15ffc6ca79979618858b7e371c056b5b74b2 0 game\bin\linuxsteamrt64\libmpg123.so.0
- 4864820 5 a3d12dd40f7f10e698208b1eaf476b8ceaf2adb9 0 game\bin\linuxsteamrt64\libnetworksystem.so
+ 4864820 5 246923dc3c9b6b367c93d4730df1dee021e50ad7 0 game\bin\linuxsteamrt64\libnetworksystem.so
35112 1 5f38ba115a525c4dee3dea7d9625a2164b84d457 0 game\bin\linuxsteamrt64\libogg.so.0
1278424 2 e99953922de86b898b2f0c9abc38ae24c6aea2b4 0 game\bin\linuxsteamrt64\libpango-1.0.so.0
442632 1 9e20da60c2343c610624175113428f4089236585 0 game\bin\linuxsteamrt64\libpangoft2-1.0.so.0
- 7025168 7 25c479f43f885302caa79fb0806570c8f1269366 0 game\bin\linuxsteamrt64\libpanorama.so
- 4878328 5 fff1135ac405f121ff3af28642ea4632c719a919 0 game\bin\linuxsteamrt64\libpanoramauiclient.so
+ 7025424 7 8ba8a923f234038c7c1ae98e956675bfdafecbf1 0 game\bin\linuxsteamrt64\libpanorama.so
+ 4878456 5 9ee4ef64197746622cb4026e6073d752cb19d806 0 game\bin\linuxsteamrt64\libpanoramauiclient.so
3202820 4 fec2f55b60399acd70d543ea35633f89a97eb771 0 game\bin\linuxsteamrt64\libpanorama_text_pango.so
- 8612056 9 91cb91e6fa1e19dc70d96f6a5622838c7d782de2 0 game\bin\linuxsteamrt64\libparticles.so
+ 8612056 9 4d746f89b7d06f57b7b6ef1a8bf8f169924fab5a 0 game\bin\linuxsteamrt64\libparticles.so
40786720 40 850311e7b530d04bcfbdee1e3e7d026a7791098d 0 game\bin\linuxsteamrt64\libphonon.so
- 2357916 3 87b82e6936fca5db0a85ba5004dd6b5f31068839 0 game\bin\linuxsteamrt64\libpulse_system.so
- 3679424 4 c7c6c991afc6346f6ef464752fbc36ebad94e7ec 0 game\bin\linuxsteamrt64\librendersystemempty.so
- 9199516 10 90af184604f6e3d5b70d29c9a7b2399fd33b4473 0 game\bin\linuxsteamrt64\librendersystemvulkan.so
- 800200 1 95465d864c6871d583ca4fd0576109020b34b42b 0 game\bin\linuxsteamrt64\libresourcesystem.so
- 3936472 4 fe116e09ced35241f4331094a54235dc8dd652ae 0 game\bin\linuxsteamrt64\libscenefilecache.so
- 10777468 11 3a9bd9792e999e94206fda1dadeacf2d32c96477 0 game\bin\linuxsteamrt64\libscenesystem.so
- 713948 1 ad85dae76aad400f723e768ee7286fc6993c7c2f 0 game\bin\linuxsteamrt64\libschemasystem.so
+ 2357916 3 a0122e3156918f8c58a7f6be93fc823243a54b6f 0 game\bin\linuxsteamrt64\libpulse_system.so
+ 3679424 4 e2225dec8d51bdfc0d53a6a54d54849487df9e89 0 game\bin\linuxsteamrt64\librendersystemempty.so
+ 9199516 10 b2c9ee0d939b25727cb56dbd89fbee4755d98aa0 0 game\bin\linuxsteamrt64\librendersystemvulkan.so
+ 800200 1 77686038b3b2d330b48bddf55902d173b1f842a8 0 game\bin\linuxsteamrt64\libresourcesystem.so
+ 3936472 4 e302a9468e39d94d4f00965610cc401be4ed3627 0 game\bin\linuxsteamrt64\libscenefilecache.so
+ 10777468 11 9c804ca45ac80e79f0b883babb937ef21d14579a 0 game\bin\linuxsteamrt64\libscenesystem.so
+ 713948 1 783bccbe42131eaf715fbe5ad20f64dbf60da3bc 0 game\bin\linuxsteamrt64\libschemasystem.so
3229400 4 0558f1091e79b187e42491955cf362112598cff5 0 game\bin\linuxsteamrt64\libSDL3.so.0
- 7962196 8 f8b3d7618016aef0270517c79848a225837296b8 0 game\bin\linuxsteamrt64\libsoundsystem.so
- 4771364 5 57b51902f63f93920f5bea8e86feb5b5adcda44e 0 game\bin\linuxsteamrt64\libsteamaudio.so
+ 7962196 8 859737510ae097d5fd87007727d403203e1f94eb 0 game\bin\linuxsteamrt64\libsoundsystem.so
+ 4771364 5 264949d42b595935f4ac27a6f31cbc06e9fea71c 0 game\bin\linuxsteamrt64\libsteamaudio.so
5692434 6 9ec4204cb535bb2c204a69c2d7d15e2b2c9682a1 0 game\bin\linuxsteamrt64\libsteamnetworkingsockets.so
381976 1 c109666c839a433b5ff8f635ad173cde77bdcdb6 0 game\bin\linuxsteamrt64\libsteam_api.so
555448 1 a1191c624317a97fbf634aa13990bc12abd45179 0 game\bin\linuxsteamrt64\libswscale.so.5
- 5028700 5 e68e1cc5a0c06f7694b07627b9196de05a4f7131 0 game\bin\linuxsteamrt64\libtier0.so
+ 5028700 5 8f63a592519742cf277888dc1a9d6dbcc49d6dad 0 game\bin\linuxsteamrt64\libtier0.so
30769216 30 a3ef228ee95892e08350e73af7a4063d24334c15 0 game\bin\linuxsteamrt64\libv8.so
480560 1 414fb2fac6d9e14c08115f7f68da98e33ef347d2 0 game\bin\linuxsteamrt64\libv8system.so
2926872 3 e84e468c1885ff699fdda290c1aed696b2fcc6cc 0 game\bin\linuxsteamrt64\libv8_icui18n.so
@@ -56,20 +56,20 @@ Total bytes compressed : 4605726512
1172208 2 b22b9ba29bffe328d33c6a1790e5f2b81736bf13 0 game\bin\linuxsteamrt64\libv8_libcpp.so
113320 1 a4144e9f7d534ba89e1b9dd47de7c636819d43e0 0 game\bin\linuxsteamrt64\libv8_libplatform.so
110600 1 1f3829ba17a72c8c705b66d0a48bfbd60d9b9e1d 0 game\bin\linuxsteamrt64\libv8_zlib.so
- 494128 1 aa118060f902be05fd2b5e07ac10a8af20c78b29 0 game\bin\linuxsteamrt64\libvconcomm.so
+ 494128 1 39626ca8171e6ce123f84f0b55126a0e5f8d9759 0 game\bin\linuxsteamrt64\libvconcomm.so
7032600 7 f892d251c04221fc7e54c32c379a368b8f041bee 0 game\bin\linuxsteamrt64\libvideo.so
183104 1 236012fc609253612d606f5670749387d751a6eb 0 game\bin\linuxsteamrt64\libvorbis.so.0
690400 1 b5d3043cadc61cd22fa21ee22eae3546cc7f621b 0 game\bin\linuxsteamrt64\libvorbisenc.so.2
35360 1 3c4c4fc86877c37c8f637ceae9c91795adfd23d4 0 game\bin\linuxsteamrt64\libvorbisfile.so.3
- 5739752 6 b864fa89943f572e78239863c7016133c600044e 0 game\bin\linuxsteamrt64\libvphysics2.so
+ 5739752 6 b8a02c1664a9fe22ddc74ecb9a5848342c26ae66 0 game\bin\linuxsteamrt64\libvphysics2.so
3205768 4 7ee108b86e414426587fcf8d64e037c7f3f78544 0 game\bin\linuxsteamrt64\libvpx.so.6
- 1296400 2 f63aa2c6334168781aa9b5bd2db22c0cc3a98a71 0 game\bin\linuxsteamrt64\libvscript.so
- 4570212 5 9401bc49adf98aa264340e34e93dfc06fd786adc 0 game\bin\linuxsteamrt64\libworldrenderer.so
+ 1296400 2 bd6d7e2be9b1a526f017bc474c84296569cf23d7 0 game\bin\linuxsteamrt64\libvscript.so
+ 4570212 5 7464ba7da046b1de971e290bfcf582d20aeaedde 0 game\bin\linuxsteamrt64\libworldrenderer.so
3822 1 956919b920713ce452f46c20cf8643674f7543f7 0 game\cs2.sh
- 74208376 71 a0729807ba98a01f7c8fde6b2a787897403028f6 0 game\csgo\bin\linuxsteamrt64\libclient.so
- 3184412 4 2a6ef4e4bdf777c3ccd9d2d11c8cfce69baeb82f 0 game\csgo\bin\linuxsteamrt64\libhost.so
- 3775044 4 4a6bd2fa9528edbac347b03c837c3158d93bca75 0 game\csgo\bin\linuxsteamrt64\libmatchmaking.so
- 41807640 40 da6d2163b63dbc977b94d454dd3eb1ceb322e3a5 0 game\csgo\bin\linuxsteamrt64\libserver.so
+ 74208760 71 34c9b737c072b81db28a1e84bb5c72404ce9bd19 0 game\csgo\bin\linuxsteamrt64\libclient.so
+ 3184412 4 adad77afb94069ba33399c4ed33a5b4f3a64fb04 0 game\csgo\bin\linuxsteamrt64\libhost.so
+ 3775044 4 5770b453a084c4d0bb77ca94860111b7bfdaaadf 0 game\csgo\bin\linuxsteamrt64\libmatchmaking.so
+ 41807736 40 cb4bab97878a1f04990edf9b68d1240f473b606e 0 game\csgo\bin\linuxsteamrt64\libserver.so
182648578 175 d4b7d7aea361a8b94c54e79904d642d712a1a3f5 0 game\csgo_community_addons\cs_shelter\cs_shelter_000.vpk
107052112 105 2c61877687a4e433f04a62340fb3ce54b70e039c 0 game\csgo_community_addons\cs_shelter\cs_shelter_001.vpk
106101480 104 e5dc305d96a55ae88a396ac6d98037209b4520ce 0 game\csgo_community_addons\cs_shelter\cs_shelter_002.vpk
manifests/manifest_2347779.txt
modified • +30 / -30 • changes: 60
Show patch
@@ -1,10 +1,10 @@
Content Manifest for Depot 2347779
-Manifest ID / date : 6999460720639345485 / 10/30/2026 21:06:20
+Manifest ID / date : 9144463342521858931 / 11/03/2026 00:27:26
Total number of files : 909
Total number of chunks : 2523
-Total bytes on disk : 2108138499
-Total bytes compressed : 576286240
+Total bytes on disk : 2108139011
+Total bytes compressed : 576285616
Size Chunks File SHA Flags Name
@@ -633,18 +633,18 @@ Total bytes compressed : 576286240
34 1 5ae7a5871cb358698c8a47d83b787447ebb23b53 0 content\csgo_addons\workshop_items\workshop_items.txt
32991 1 9d6322a3e2262994d74bb905f9fedcea2e5505b8 0 game\bin\assettypes_common.txt
3734 1 970059aac54dddba1b88fdec2836afd7261e5a2f 0 game\bin\sdkenginetools.txt
- 3728024 4 cdf9adddba6dab0bb14a296393128ae45c6351a7 0 game\bin\win64\assetbrowser.dll
- 33821336 33 526ed6a6ddf2c2d7ff3a0086e635daa8732e2049 0 game\bin\win64\assetrename.dll
- 5703320 6 69aef54a5be46a22842ba8a8671ef057da9ffedd 0 game\bin\win64\assetsystem.dll
+ 3728024 4 f188f8ac78b13b7f9cbf9bb3a5cc0e8426d8df33 0 game\bin\win64\assetbrowser.dll
+ 33821336 33 584e63a192942b91df259e8aef86a9c262567e38 0 game\bin\win64\assetrename.dll
+ 5703320 6 265f267641ffa2f5f8eacca5ce3ae23c95c15b01 0 game\bin\win64\assetsystem.dll
1529856 2 45e7d0873608e5424312fa289a270f2faacfe8fa 0 game\bin\win64\bc7e.dll
- 396952 1 3a1580720932ad35bdc8455fea40739014877638 0 game\bin\win64\cs2_build_econ_items_workshop.exe
- 13866 1 6e66eefa3c87d4a1c8b0971d9c9006ad4bed4f81 0 game\bin\win64\csgo.signatures
- 1271448 2 41ff225a0583e28a3755588aac5634c5db7af5c4 0 game\bin\win64\csgocfg.exe
- 15683736 15 2e0961f7f4e0776a11546c4f8a6ee8797cd7a478 0 game\bin\win64\cs_mdl_import.exe
- 1196696 2 f3364d2c801c80b4e2eb6d8c76a6ec0aca706962 0 game\bin\win64\dmxconvert.exe
- 3682968 4 21d3a8712c8d71e2dcc790a44f5c8cda24f79ab7 0 game\bin\win64\exportsystem.dll
+ 396952 1 d40100945a08d047d65a8f8c1ba557351467136b 0 game\bin\win64\cs2_build_econ_items_workshop.exe
+ 13866 1 22ce12bf18f6df3737c2ac7a83452663ed531f04 0 game\bin\win64\csgo.signatures
+ 1271448 2 e0c0511657da151a4b8546e1ccb0f2eb5e6c6a40 0 game\bin\win64\csgocfg.exe
+ 15683736 15 2787c3be064fd2215239c7fe9cb6f573d4984d9a 0 game\bin\win64\cs_mdl_import.exe
+ 1196696 2 5691c2eec39a867bdb053d6880e5bc18b0bfde2a 0 game\bin\win64\dmxconvert.exe
+ 3682968 4 e974da9fba42ae47defaf2d0c0c6bb8e1aba76cf 0 game\bin\win64\exportsystem.dll
1418240 2 d1cc730f23d2b2f8567555d0c09a36dfd01e45c9 0 game\bin\win64\ispc_texcomp.dll
- 16949912 17 c45e12842ab3f33a26a6088d9bf6646e2fe9ae33 0 game\bin\win64\modeldoc_utils.dll
+ 16949912 17 96d357b1830088fa13a52c230e2744c419424ae5 0 game\bin\win64\modeldoc_utils.dll
177280 1 27c1a881c6648129f95646e61e6f101d15ddd692 0 game\bin\win64\OpenImageDenoise.dll
50625664 49 cb2153ac3d4f75ddfb071802c9dbb39c48acf078 0 game\bin\win64\OpenImageDenoise_core.dll
513664 1 be8640db91ff826e381a9b6ea1a89e5fec462c5c 0 game\bin\win64\OpenImageDenoise_device_cpu.dll
@@ -654,26 +654,26 @@ Total bytes compressed : 576286240
831616 1 7ca261e89897f9905ffc656b84e7f0d5c49dd896 0 game\bin\win64\pi_level_zero.dll
95360 1 e7364c7c47a730233631c86b1993b2b5098df426 0 game\bin\win64\pi_win_proxy_loader.dll
165528 1 8fb641fb82a8e7e70f6c6f683ba73b981cccc873 0 game\bin\win64\resourcecompiler.exe
- 1479832 2 ee88306dfc4d55150545ecb2c269172d54e86b40 0 game\bin\win64\resourcecopy.exe
- 3925656 4 79fa01cfc438e65c2bffa4b7e06f6dedb8f0b5b2 0 game\bin\win64\resourceinfo.exe
- 1511576 2 c5c369b26b718e196d7e8ca38063af69574a1e5a 0 game\bin\win64\smartprops.dll
- 18281112 19 fda0033b3177971213cc9e0e90a7ac0bff8ac742 0 game\bin\win64\source1import.exe
+ 1479832 2 da427e2f64c2ba8a3dc34687d82656fb095f97b5 0 game\bin\win64\resourcecopy.exe
+ 3925656 4 af3704a0daf835577cb996711dba9bfd755b62f0 0 game\bin\win64\resourceinfo.exe
+ 1511576 2 5166fc0459e04f4c1399ab78760bd23fcc1374bd 0 game\bin\win64\smartprops.dll
+ 18281112 19 f11c5023e92886cbeb328234a466c3acb06af547 0 game\bin\win64\source1import.exe
4600960 5 ee4319b51e4210bb9046ec3ddee39878ab4ad33c 0 game\bin\win64\sycl7.dll
319616 1 668b7a5c4c4f9456f73a6014df1b02ae05480195 0 game\bin\win64\tbb12.dll
47744 1 6169fdd71db33cc70ef4e8c853edd73571ffc538 0 game\bin\win64\tbbbind.dll
47744 1 5e52608c5ff4fffb626a9ab3a81a0913c132fd93 0 game\bin\win64\tbbbind_2_0.dll
48768 1 b28a6fd65fe96ff562b07fcbcfe740e63a73604a 0 game\bin\win64\tbbbind_2_5.dll
- 14937240 15 f0ef2480f60bb6e9dc51d39f7c1438fb090580f9 0 game\bin\win64\toolscenenodes.dll
- 6680216 7 54df7544ec5c62db5d5665fb1d4d93e3fd3c2715 0 game\bin\win64\tools\cs2_item_editor.dll
- 2348184 3 b88d5b6645fd70323781fedbf3278493bc17e4c8 0 game\bin\win64\tools\cs2_workshop_manager.dll
- 39611544 39 a0ec8807bcb2012b0a15f083f816256536603c2e 0 game\bin\win64\tools\hammer.dll
- 4787352 5 a94d36e185c5af92cdaa77b43e6d3164b93e3b1e 0 game\bin\win64\tools\met.dll
- 27271832 27 2bccca8deac7cd9fd2e28071af16763ded581220 0 game\bin\win64\tools\modeldoc_editor.dll
- 9320088 9 398d5e8f49b7fed99fc89ebdd4580fb99255e2ec 0 game\bin\win64\tools\pet.dll
- 7924888 8 c7729a84c9e833d9ecf7b10bd0bc2847e0db9589 0 game\bin\win64\tools\postprocessingeditor.dll
- 13459608 13 ef695e294d8f374b855b2178a1cc57d014ee46d1 0 game\bin\win64\tools\sfm.dll
- 1532568 2 3cb34f647837b87d48d4581ef24d8283a803cb2b 0 game\bin\win64\tools\subrecteditor.dll
- 3269272 4 ffdd183287816b80b05233abd7261ba3a15221fb 0 game\bin\win64\vrad3.dll
+ 14937240 15 3186fdb1ad19348d2fdc8150909b4a5c97bcb28c 0 game\bin\win64\toolscenenodes.dll
+ 6680216 7 d04da3fbc0469caf5cf5c740f7b7a2a47f534b48 0 game\bin\win64\tools\cs2_item_editor.dll
+ 2348184 3 264cb8f108565161c07f98a7613501fe214bab9e 0 game\bin\win64\tools\cs2_workshop_manager.dll
+ 39611544 39 33f8a100af6c403c134f05b7f51b6acee9ffeda3 0 game\bin\win64\tools\hammer.dll
+ 4787352 5 60d9beb0c22f69363f18a07d3bf10288bc9ad742 0 game\bin\win64\tools\met.dll
+ 27271832 27 86e536006e7616a8cee816722b2ac49bf46cfbe2 0 game\bin\win64\tools\modeldoc_editor.dll
+ 9320088 9 e6e84532df1bd0ad7c2d493d77daf6358fae614e 0 game\bin\win64\tools\pet.dll
+ 7924888 8 4dd16fa1eddda0dbfa587915b0283734cf80987b 0 game\bin\win64\tools\postprocessingeditor.dll
+ 13459608 13 b324c9a2bd2e57c2201ade4a64e594bd329f12b1 0 game\bin\win64\tools\sfm.dll
+ 1532568 2 93859458c875526b6751d47449cfb097dc80f0e5 0 game\bin\win64\tools\subrecteditor.dll
+ 3269272 4 809cb8eff22456e59dc5b6198adffc8ffcdf4b39 0 game\bin\win64\vrad3.dll
165528 1 c1c90737ec6f5507a45e5beb66308ddb430b8fab 0 game\bin\win64\vrad3.exe
74744 1 fdcd0602e39a727985c5b41524c26c5b1f0e4635 0 game\core\ai_basenpc.fgd
40196 1 0ef10aaa7fb9d6f248ea7b9bed4f676cbb2a769b 0 game\core\ai_defaultnpc.fgd
@@ -687,7 +687,7 @@ Total bytes compressed : 576286240
2004 1 5cb2856b8584f65147b80cd8c87e1cbe1c155992 0 game\core\postprocessing.fgd
423652 1 c5428fef616a47986946d6c793ec643e42b85246 0 game\core\readonly_tools_asset_info.bin
4922 1 ef927dc90ee64b75629aea8e9b62e8f5dcb0864b 0 game\core\vdata_base.fgd
- 17946264 18 555499df53336fd6e9bb6c2e7a85702220fbeda4 0 game\csgo\bin\win64\modtools.dll
+ 17946776 18 5a39ede87a3d07051eef69cbf31e70b649ad7b8a 0 game\csgo\bin\win64\modtools.dll
89997 1 e5c2f5ffa14a73b9d5dbc8e967a7371a505d3df2 0 game\csgo\csgo.fgd
398843 1 5ccbe56ddcb35b7e10316f10ab5294742a75b391 0 game\csgo\import_scripts\bin\base.fgd
55534 1 d1dd4689259623923344c03ba682713d4427d7b7 0 game\csgo\import_scripts\bin\csgo.fgd
@@ -721,7 +721,7 @@ Total bytes compressed : 576286240
133435 1 5c5acf7bffba281b1fb2de939a6953c385e26ac3 0 game\csgo\lighting\postprocessing\editor\toolsscene_default.vpost_c
3823 1 aaa9517703492629cade78571c39f5fdc2c417e3 0 game\csgo\models_gamedata.fgd
1559 1 ccef3c777e99029f1956e3ad23a718a99fd36d14 0 game\csgo\postprocessing.fgd
- 50760417 51 a1997ec54c03935c14e37f7748fecf207030dc7c 0 game\csgo\readonly_tools_asset_info.bin
+ 50760417 51 2864b89d3750e3547f9063365e334dca0fcd55c5 0 game\csgo\readonly_tools_asset_info.bin
3009 1 8374c54025aad8c3d4a72b5f7f198d99951b7844 0 game\csgo\tools\cs2_icon_gen\icon_camera.png
2390 1 436ef3b91600906f462a33b9973b3f0955ddf1d6 0 game\csgo\tools\cs2_icon_gen\icon_item.png
2566 1 d78fd6c17e836a35c1cff4b375de7928ea5aea40 0 game\csgo\tools\cs2_icon_gen\icon_light_fill.png
manifests/manifest_731.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 731
-Manifest ID / date : 3579580227224146060 / 10/30/2026 21:03:36
+Manifest ID / date : 5799502335586127231 / 11/03/2026 00:24:30
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36 0 game\bin\content_built_from_cl.txt
+ 8 1 759958d606a65558944eea2a1f6f5d7f6de48b65 0 game\bin\content_built_from_cl.txt
manifests/manifest_732.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 732
-Manifest ID / date : 4813741465053806363 / 10/30/2026 21:03:43
+Manifest ID / date : 4514904948984964204 / 11/03/2026 00:24:37
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36 0 game\bin\content_built_from_cl.txt
+ 8 1 759958d606a65558944eea2a1f6f5d7f6de48b65 0 game\bin\content_built_from_cl.txt
manifests/manifest_733.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 733
-Manifest ID / date : 7325926150770753053 / 10/30/2026 21:03:50
+Manifest ID / date : 4581807251902851325 / 11/03/2026 00:24:44
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36 0 game\bin\content_built_from_cl.txt
+ 8 1 759958d606a65558944eea2a1f6f5d7f6de48b65 0 game\bin\content_built_from_cl.txt
manifests/manifest_734.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 734
-Manifest ID / date : 263743024181583359 / 10/30/2026 21:03:56
+Manifest ID / date : 519374194040118223 / 11/03/2026 00:24:50
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36 0 game\bin\content_built_from_cl.txt
+ 8 1 759958d606a65558944eea2a1f6f5d7f6de48b65 0 game\bin\content_built_from_cl.txt
manifests/manifest_735.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 735
-Manifest ID / date : 5004729745720806412 / 10/30/2026 21:04:02
+Manifest ID / date : 7430157609109467345 / 11/03/2026 00:24:57
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36 0 game\bin\content_built_from_cl.txt
+ 8 1 759958d606a65558944eea2a1f6f5d7f6de48b65 0 game\bin\content_built_from_cl.txt
30.10.2026, 22.16.46
General update: “2000939 | 116 files | M game/bin/built_from_cl.txt, M game/csgo/bin/win64/server_strings.txt, M game/csgo/pak01_dir.txt, M game/csgo/pak01_dir/soundevents/music/3kliksphilip_01/game_sounds_music.vsndevts, M game/csgo/pak01_dir/soundevents/music/adambeyer_01/game_sounds_music.vsndevts, M game/csgo/pak01_dir/soundevents/music/alrt_01/game_sounds_music.vsndevts, M game/csgo/pak01_dir/soundevents/music/altare_01/game_sounds_music.vsndevts, M game/csgo/pak01_dir/soundevents/music/amontobin_01/game_sounds_music.vsndevts, M game/csgo/pak01_dir/soundevents/music/austinwintory_01/game_sounds_music.vsndevts, M game/csgo/pak01_dir/soundevents/music/austinwintory_02/game_sounds_music.vsndevts, M game/csgo/pak01_dir/soundevents/music/austinwintory_03/game_sounds_music.vsndevts, M game/csgo/pak01_dir/soundevents/music/austinwintory_04/game_sounds_music.vsndevts, M game/csgo/pak01_dir/soundevents/music/awolnation_01/game_sounds_music.vsndevts, M game/csgo/pak01_dir/soundevents/music/bbnos_01/game_sounds_music.vsndevts, M game/csgo/pak01_dir/soun” Files touched: game/bin/built_from_cl.txt, game/csgo/bin/win64/server_strings.txt, game/csgo/pak01_dir.txt.
Files changed: 116 • +381 / -419
misccontent-change
Changed files
game/bin/built_from_cl.txt
modified • +1 / -1 • changes: 2
Show patch
@@ -1 +1 @@
-11180900
+11191483
game/csgo/bin/win64/server_strings.txt
modified • +1 / -0 • changes: 1
Show patch
@@ -21566,6 +21566,7 @@ camera_path_delete\n
camera_path_load\n
camera_path_save\n
campaign
+campaign completion bitfield
campaign_definitions
can't find SRP server param
canRemoveVertex: Out of memory 'edges' (%d).
game/csgo/pak01_dir.txt
modified • +130 / -160 • changes: 290
Show patch
@@ -1414,14 +1414,6 @@ animation/anims/viewmodel/rifle/rifle_galilar/lookat01_transfix_galilar.vnmclip_
animation/anims/viewmodel/rifle/rifle_galilar/reload_galilar.vnmclip_c CRC:002e81444d size:32222
animation/anims/viewmodel/rifle/rifle_galilar/reload_silent_galilar.vnmclip_c CRC:007be49685 size:57651
animation/anims/viewmodel/rifle/rifle_galilar/shoot1_galilar.vnmclip_c CRC:0024b715f6 size:12180
-animation/anims/viewmodel/rifle/rifle_lar/draw_lar.vnmclip_c CRC:00195a603d size:12050
-animation/anims/viewmodel/rifle/rifle_lar/idle_lar.vnmclip_c CRC:00dd4e78ce size:4327
-animation/anims/viewmodel/rifle/rifle_lar/ironsight_fidget_lar.vnmclip_c CRC:009c8c4bea size:4353
-animation/anims/viewmodel/rifle/rifle_lar/ironsight_shoot_lar.vnmclip_c CRC:0020eaa126 size:9624
-animation/anims/viewmodel/rifle/rifle_lar/lookat01_lar.vnmclip_c CRC:00612040ab size:19900
-animation/anims/viewmodel/rifle/rifle_lar/reload_lar.vnmclip_c CRC:0072310f73 size:15165
-animation/anims/viewmodel/rifle/rifle_lar/reload_silent_lar.vnmclip_c CRC:00a7e06c3c size:25769
-animation/anims/viewmodel/rifle/rifle_lar/shoot1_lar.vnmclip_c CRC:006a09e8a8 size:10602
animation/anims/viewmodel/rifle/rifle_m249/bullet_hide_m249.vnmclip+non_additive.vnmclip_c CRC:00eb7d47bd size:4631
animation/anims/viewmodel/rifle/rifle_m249/bullet_hide_m249.vnmclip_c CRC:00ac511261 size:3063
animation/anims/viewmodel/rifle/rifle_m249/draw_m249.vnmclip_c CRC:0061f41b42 size:18212
@@ -2622,18 +2614,6 @@ animation/anims/world/rifle/rifle_galilar/reload_galilar.vnmclip_c CRC:007edfa8e
animation/anims/world/rifle/rifle_galilar/reload_galilar_silent.vnmclip_c CRC:00064d0caa size:36690
animation/anims/world/rifle/rifle_galilar/shoot_galilar.vnmclip+non_additive.vnmclip_c CRC:009b1495e0 size:13167
animation/anims/world/rifle/rifle_galilar/shoot_galilar.vnmclip_c CRC:009fa743bb size:12148
-animation/anims/world/rifle/rifle_lar/draw_crouch_lar.vnmclip_c CRC:00c4e0164b size:13700
-animation/anims/world/rifle/rifle_lar/draw_lar.vnmclip_c CRC:0076c887ee size:15634
-animation/anims/world/rifle/rifle_lar/idle_crouch_lar.vnmclip+non_additive.vnmclip_c CRC:002a6cbaeb size:4611
-animation/anims/world/rifle/rifle_lar/idle_crouch_lar.vnmclip_c CRC:004a4afe19 size:4500
-animation/anims/world/rifle/rifle_lar/idle_lar.vnmclip+non_additive.vnmclip_c CRC:0075193580 size:4607
-animation/anims/world/rifle/rifle_lar/idle_lar.vnmclip_c CRC:00bae309e1 size:4429
-animation/anims/world/rifle/rifle_lar/reload_crouch_lar.vnmclip_c CRC:00ee6855a2 size:25041
-animation/anims/world/rifle/rifle_lar/reload_crouch_lar_silent.vnmclip_c CRC:006d162091 size:25041
-animation/anims/world/rifle/rifle_lar/reload_lar.vnmclip_c CRC:00e235493c size:24967
-animation/anims/world/rifle/rifle_lar/reload_lar_silent.vnmclip_c CRC:00bdca8355 size:24983
-animation/anims/world/rifle/rifle_lar/shoot_lar.vnmclip+non_additive.vnmclip_c CRC:000f15329a size:10385
-animation/anims/world/rifle/rifle_lar/shoot_lar.vnmclip_c CRC:003f8279a8 size:9377
animation/anims/world/rifle/rifle_m249/draw_crouch_m249.vnmclip_c CRC:00fec3b9a7 size:15499
animation/anims/world/rifle/rifle_m249/draw_m249.vnmclip_c CRC:00b587170e size:14892
animation/anims/world/rifle/rifle_m249/idle_crouch_m249.vnmclip+non_additive.vnmclip_c CRC:008005a391 size:4572
@@ -3276,7 +3256,6 @@ animation/skeletons/weapons/knife_stiletto.vnmskel_c CRC:00a7950052 size:1540
animation/skeletons/weapons/knife_tactical.vnmskel_c CRC:00c7120e9a size:1493
animation/skeletons/weapons/knife_talon.vnmskel_c CRC:00b191dfab size:1491
animation/skeletons/weapons/knife_ursus.vnmskel_c CRC:00f9abbf7c size:1464
-animation/skeletons/weapons/lar.vnmskel_c CRC:001cd323ec size:1689
animation/skeletons/weapons/m249.vnmskel_c CRC:00ee32cbea size:2976
animation/skeletons/weapons/m4a1_silencer.vnmskel_c CRC:0012527b96 size:1754
animation/skeletons/weapons/m4a4.vnmskel_c CRC:00151b57cf size:1658
@@ -81960,7 +81939,6 @@ panorama/images/econ/weapons/base_weapons/weapon_knife_tactical_png.vtex_c CRC:0
panorama/images/econ/weapons/base_weapons/weapon_knife_twinblade_png.vtex_c CRC:00c68858dd size:122667
panorama/images/econ/weapons/base_weapons/weapon_knife_ursus_png.vtex_c CRC:00760b6745 size:115614
panorama/images/econ/weapons/base_weapons/weapon_knife_widowmaker_png.vtex_c CRC:005841e323 size:146607
-panorama/images/econ/weapons/base_weapons/weapon_lar_png.vtex_c CRC:004244988f size:78190
panorama/images/econ/weapons/base_weapons/weapon_m249_png.vtex_c CRC:004ce94674 size:166667
panorama/images/econ/weapons/base_weapons/weapon_m4a1_png.vtex_c CRC:00ab6dcc85 size:154316
panorama/images/econ/weapons/base_weapons/weapon_m4a1_silencer_png.vtex_c CRC:00b4030a2b size:88074
@@ -82224,7 +82202,6 @@ panorama/images/icons/equipment/knife_twinblade.vsvg_c CRC:00e767f94b size:4109
panorama/images/icons/equipment/knife_ursus.vsvg_c CRC:0083428279 size:8170
panorama/images/icons/equipment/knife_widowmaker.vsvg_c CRC:0026b8d24c size:3837
panorama/images/icons/equipment/knifegg.vsvg_c CRC:0029a517f7 size:4239
-panorama/images/icons/equipment/lar.vsvg_c CRC:005b4c2f2c size:5479
panorama/images/icons/equipment/m249.vsvg_c CRC:00be3f6faf size:8327
panorama/images/icons/equipment/m4a1.vsvg_c CRC:00785c5ad4 size:5651
panorama/images/icons/equipment/m4a1_silencer.vsvg_c CRC:009eada65d size:6212
@@ -88002,36 +87979,36 @@ pulse/csgo_devonly/de_vertigo_script.vpulse_c CRC:00af116e39 size:4860
radial_quickinventory.txt CRC:005a0c1bf5 size:1080
rebuy.txt CRC:008332da3a size:1688
resource/clientscheme.res CRC:00eb299496 size:14136
-resource/csgo_brazilian.txt CRC:00a82282a2 size:5024585
-resource/csgo_bulgarian.txt CRC:00ebe771bd size:7758533
-resource/csgo_czech.txt CRC:005fe2aa54 size:5096987
-resource/csgo_danish.txt CRC:000bc32d3d size:5003477
-resource/csgo_dutch.txt CRC:00973afde0 size:5049304
+resource/csgo_brazilian.txt CRC:0022c7c9bd size:5024748
+resource/csgo_bulgarian.txt CRC:00e6aa803c size:7758759
+resource/csgo_czech.txt CRC:00aa2da1f8 size:5097152
+resource/csgo_danish.txt CRC:001655e064 size:5003477
+resource/csgo_dutch.txt CRC:007e635df4 size:5049457
resource/csgo_english.txt CRC:00a7f600cd size:4878645
-resource/csgo_finnish.txt CRC:005d413fc3 size:4960257
-resource/csgo_french.txt CRC:00d2063a7e size:5254356
-resource/csgo_german.txt CRC:006b195d73 size:5164887
-resource/csgo_greek.txt CRC:00cd04acb2 size:7151367
-resource/csgo_hungarian.txt CRC:0028d04f96 size:5078385
-resource/csgo_indonesian.txt CRC:00cd08196f size:4729034
-resource/csgo_italian.txt CRC:00e843396f size:5178073
-resource/csgo_japanese.txt CRC:0015bd64d3 size:5332761
-resource/csgo_koreana.txt CRC:00753724c5 size:5096308
-resource/csgo_latam.txt CRC:005efb1433 size:5188121
-resource/csgo_norwegian.txt CRC:00ea089aaa size:4924516
-resource/csgo_polish.txt CRC:002378ea91 size:5321400
-resource/csgo_portuguese.txt CRC:005085ecf4 size:5059708
-resource/csgo_romanian.txt CRC:006ffb7342 size:5270911
-resource/csgo_russian.txt CRC:00e2df329d size:6563506
-resource/csgo_schinese.txt CRC:00e7f44b7d size:4931303
+resource/csgo_finnish.txt CRC:0040d7f29a size:4960257
+resource/csgo_french.txt CRC:00cf90f727 size:5254356
+resource/csgo_german.txt CRC:00768f902a size:5164887
+resource/csgo_greek.txt CRC:00d09261eb size:7151367
+resource/csgo_hungarian.txt CRC:0009ea7f21 size:5078539
+resource/csgo_indonesian.txt CRC:00d09ed436 size:4729034
+resource/csgo_italian.txt CRC:00f5d5f436 size:5178073
+resource/csgo_japanese.txt CRC:008a06f43d size:5332955
+resource/csgo_koreana.txt CRC:0068a1e99c size:5096308
+resource/csgo_latam.txt CRC:00436dd96a size:5188121
+resource/csgo_norwegian.txt CRC:00f79e57f3 size:4924516
+resource/csgo_polish.txt CRC:003eee27c8 size:5321400
+resource/csgo_portuguese.txt CRC:00ed24ede6 size:5059879
+resource/csgo_romanian.txt CRC:00726dbe1b size:5270911
+resource/csgo_russian.txt CRC:00ffa91341 size:6563734
+resource/csgo_schinese.txt CRC:000d6871a9 size:4931452
resource/csgo_schinese_pw.txt CRC:0083fe268a size:15645
-resource/csgo_spanish.txt CRC:00e84d8548 size:5159573
-resource/csgo_swedish.txt CRC:00a5222d4e size:5031803
-resource/csgo_tchinese.txt CRC:009fc43dda size:4627815
-resource/csgo_thai.txt CRC:00e9e74af9 size:8128621
-resource/csgo_turkish.txt CRC:00193dc7c6 size:5165343
-resource/csgo_ukrainian.txt CRC:00b68118e5 size:6621012
-resource/csgo_vietnamese.txt CRC:0085c7489b size:5450532
+resource/csgo_spanish.txt CRC:00f5db4811 size:5159573
+resource/csgo_swedish.txt CRC:00b8b4e017 size:5031803
+resource/csgo_tchinese.txt CRC:008252f083 size:4627815
+resource/csgo_thai.txt CRC:00f47187a0 size:8128621
+resource/csgo_turkish.txt CRC:0004ab0a9f size:5165343
+resource/csgo_ukrainian.txt CRC:00ab17d5bc size:6621012
+resource/csgo_vietnamese.txt CRC:00985185c2 size:5450532
resource/game.gameevents CRC:0090de10bc size:9837
resource/halflife2.vfont CRC:00b064848c size:58000
resource/mod.gameevents CRC:0035ddf423 size:20770
@@ -88265,108 +88242,108 @@ soundevents/game_sounds_stopsoundevents.vsndevts_c CRC:00d6805181 size:1193
soundevents/game_sounds_ui.vsndevts_c CRC:00d0987180 size:28368
soundevents/game_sounds_weapons.vsndevts_c CRC:003629ddc2 size:50712
soundevents/game_sounds_world.vsndevts_c CRC:00756a5064 size:6292
-soundevents/music/3kliksphilip_01/game_sounds_music.vsndevts_c CRC:00e17cc3c1 size:4597
-soundevents/music/adambeyer_01/game_sounds_music.vsndevts_c CRC:00d073883c size:3999
-soundevents/music/alrt_01/game_sounds_music.vsndevts_c CRC:00077a5f17 size:4293
-soundevents/music/altare_01/game_sounds_music.vsndevts_c CRC:00d1108040 size:4004
-soundevents/music/amontobin_01/game_sounds_music.vsndevts_c CRC:008445c8ab size:4185
-soundevents/music/austinwintory_01/game_sounds_music.vsndevts_c CRC:0052dcf8da size:4038
-soundevents/music/austinwintory_02/game_sounds_music.vsndevts_c CRC:0095c0e93e size:4004
-soundevents/music/austinwintory_03/game_sounds_music.vsndevts_c CRC:0069739b86 size:3955
-soundevents/music/austinwintory_04/game_sounds_music.vsndevts_c CRC:0089d00749 size:3999
-soundevents/music/awolnation_01/game_sounds_music.vsndevts_c CRC:007c7353a4 size:4189
-soundevents/music/bbnos_01/game_sounds_music.vsndevts_c CRC:00d4a61f6a size:3826
-soundevents/music/beartooth_01/game_sounds_music.vsndevts_c CRC:00649de003 size:4078
-soundevents/music/beartooth_02/game_sounds_music.vsndevts_c CRC:0083b20c2f size:4027
-soundevents/music/benbromfield_01/game_sounds_music.vsndevts_c CRC:006e8f013c size:3981
-soundevents/music/blitzkids_01/game_sounds_music.vsndevts_c CRC:0083981c37 size:4074
-soundevents/music/borne_01/game_sounds_music.vsndevts_c CRC:0014c04994 size:4140
-soundevents/music/chipzel_01/game_sounds_music.vsndevts_c CRC:004f5ed2ac size:3817
-soundevents/music/damjanmravunac_01/game_sounds_music.vsndevts_c CRC:003c0334b7 size:4143
-soundevents/music/danielsadowski_01/game_sounds_music.vsndevts_c CRC:003cb0f6a7 size:3833
-soundevents/music/danielsadowski_02/game_sounds_music.vsndevts_c CRC:007ead238f size:3833
-soundevents/music/danielsadowski_03/game_sounds_music.vsndevts_c CRC:0028f85928 size:3939
-soundevents/music/danielsadowski_04/game_sounds_music.vsndevts_c CRC:00aba26504 size:3858
-soundevents/music/danielsadowski_05/game_sounds_music.vsndevts_c CRC:0049d91cd7 size:3809
-soundevents/music/darude_01/game_sounds_music.vsndevts_c CRC:00d6813173 size:4026
-soundevents/music/denzelcurry_01/game_sounds_music.vsndevts_c CRC:00120be127 size:4114
-soundevents/music/dren_01/game_sounds_music.vsndevts_c CRC:00e0ac049c size:4134
-soundevents/music/dren_02/game_sounds_music.vsndevts_c CRC:00b7bcfa41 size:4206
-soundevents/music/dren_03/game_sounds_music.vsndevts_c CRC:00fe8be7fb size:4041
-soundevents/music/dryden_01/game_sounds_music.vsndevts_c CRC:0060a8add0 size:3846
-soundevents/music/feedme_01/game_sounds_music.vsndevts_c CRC:00a484f37f size:3916
-soundevents/music/freakydna_01/game_sounds_music.vsndevts_c CRC:004f9bba64 size:4050
-soundevents/music/ghost_01/game_sounds_music.vsndevts_c CRC:00359d2569 size:3980
-soundevents/music/hades_01/game_sounds_music.vsndevts_c CRC:00bfc19003 size:4207
-soundevents/music/halo_01/game_sounds_music.vsndevts_c CRC:00ae1a18cf size:4035
-soundevents/music/health_01/game_sounds_music.vsndevts_c CRC:002c7e5d51 size:3917
-soundevents/music/hlalyx_01/game_sounds_music.vsndevts_c CRC:00a3ac22c7 size:3122
-soundevents/music/hlb_01/game_sounds_music.vsndevts_c CRC:00a5d77e49 size:4108
-soundevents/music/hotlinemiami_01/game_sounds_music.vsndevts_c CRC:004116bb44 size:4268
-soundevents/music/hundredth_01/game_sounds_music.vsndevts_c CRC:00a7d3bf60 size:4283
-soundevents/music/ianhultquist_01/game_sounds_music.vsndevts_c CRC:00ec028f97 size:4074
-soundevents/music/isoxo_01/game_sounds_music.vsndevts_c CRC:0026807e36 size:3914
-soundevents/music/jamesandthecoldgun_01/game_sounds_music.vsndevts_c CRC:0006ac8e42 size:4027
-soundevents/music/jesseharlin_01/game_sounds_music.vsndevts_c CRC:003e6761f1 size:3883
-soundevents/music/jonathanyoung_01/game_sounds_music.vsndevts_c CRC:00502f4e8e size:3832
-soundevents/music/juelz_01/game_sounds_music.vsndevts_c CRC:00005095e1 size:4031
-soundevents/music/juelz_02/game_sounds_music.vsndevts_c CRC:00cdcda320 size:4112
-soundevents/music/kellybailey_01/game_sounds_music.vsndevts_c CRC:0076bf1c05 size:3921
-soundevents/music/killermike_01/game_sounds_music.vsndevts_c CRC:00ce189c63 size:3903
-soundevents/music/killscript_01/game_sounds_music.vsndevts_c CRC:001b37b2e1 size:3849
-soundevents/music/kitheory_01/game_sounds_music.vsndevts_c CRC:00d5926e53 size:3872
-soundevents/music/knock2_01/game_sounds_music.vsndevts_c CRC:00b98a46bf size:3886
-soundevents/music/knock2_02/game_sounds_music.vsndevts_c CRC:004d159f64 size:3923
-soundevents/music/laurashigihara_01/game_sounds_music.vsndevts_c CRC:00f925df2d size:4072
-soundevents/music/lenniemoore_01/game_sounds_music.vsndevts_c CRC:0002a5468c size:4324
-soundevents/music/mateomessina_01/game_sounds_music.vsndevts_c CRC:00ce613d04 size:4133
-soundevents/music/mattlange_01/game_sounds_music.vsndevts_c CRC:00a47e8e4f size:3916
-soundevents/music/mattlevine_01/game_sounds_music.vsndevts_c CRC:009e74a9a3 size:4055
-soundevents/music/mattlevine_02/game_sounds_music.vsndevts_c CRC:00929421b1 size:4062
-soundevents/music/meechydarko_01/game_sounds_music.vsndevts_c CRC:002c6f216b size:4158
-soundevents/music/michaelbross_01/game_sounds_music.vsndevts_c CRC:00467977b8 size:3873
-soundevents/music/midnightriders_01/game_sounds_music.vsndevts_c CRC:003befb5f4 size:4076
-soundevents/music/mordfustang_01/game_sounds_music.vsndevts_c CRC:00c8875ada size:3931
-soundevents/music/neckdeep_01/game_sounds_music.vsndevts_c CRC:00f361cb64 size:4206
-soundevents/music/neckdeep_02/game_sounds_music.vsndevts_c CRC:008b925735 size:4359
-soundevents/music/newbeatfund_01/game_sounds_music.vsndevts_c CRC:0076684d86 size:4053
-soundevents/music/noisia_01/game_sounds_music.vsndevts_c CRC:0052b1f913 size:4011
-soundevents/music/perfectworld_01/game_sounds_music.vsndevts_c CRC:000d4cc02d size:3846
-soundevents/music/perfectworld_02/game_sounds_music.vsndevts_c CRC:009326fcd0 size:3901
-soundevents/music/pirapus_01/game_sounds_music.vsndevts_c CRC:0026307603 size:4050
-soundevents/music/proxy_01/game_sounds_music.vsndevts_c CRC:00464544ef size:4128
-soundevents/music/pvris_01/game_sounds_music.vsndevts_c CRC:0044a47740 size:4314
-soundevents/music/radcat_01/game_sounds_music.vsndevts_c CRC:00e120424d size:3889
-soundevents/music/repiet_01/game_sounds_music.vsndevts_c CRC:00acdc844d size:4076
-soundevents/music/roam_01/game_sounds_music.vsndevts_c CRC:0037a56337 size:4173
-soundevents/music/robertallaire_01/game_sounds_music.vsndevts_c CRC:00b0007752 size:4277
-soundevents/music/sammarshall_01/game_sounds_music.vsndevts_c CRC:002a81d7d8 size:3961
-soundevents/music/sammarshall_02/game_sounds_music.vsndevts_c CRC:007447b1b6 size:4144
-soundevents/music/sarahschachner_01/game_sounds_music.vsndevts_c CRC:00ae709e0f size:3954
-soundevents/music/sasha_01/game_sounds_music.vsndevts_c CRC:0081561582 size:3804
-soundevents/music/scarlxrd_01/game_sounds_music.vsndevts_c CRC:00a38e7f4a size:3845
-soundevents/music/scarlxrd_02/game_sounds_music.vsndevts_c CRC:0029b15909 size:3977
-soundevents/music/seanmurray_01/game_sounds_music.vsndevts_c CRC:0023bc9d3f size:4070
-soundevents/music/selectiveresponse_01/game_sounds_music.vsndevts_c CRC:004a65645b size:3951
-soundevents/music/shockone_01/game_sounds_music.vsndevts_c CRC:00ea1208f0 size:4002
-soundevents/music/skog_01/game_sounds_music.vsndevts_c CRC:0029303ade size:4209
-soundevents/music/skog_02/game_sounds_music.vsndevts_c CRC:0086f5fdd7 size:3981
-soundevents/music/skog_03/game_sounds_music.vsndevts_c CRC:000b2e4d42 size:3829
-soundevents/music/starjunk95_01/game_sounds_music.vsndevts_c CRC:00e8654d14 size:4295
-soundevents/music/sullivanking_01/game_sounds_music.vsndevts_c CRC:00ed0333af size:4047
-soundevents/music/theverkkars_01/game_sounds_music.vsndevts_c CRC:00189ff4d0 size:4039
-soundevents/music/theverkkars_02/game_sounds_music.vsndevts_c CRC:00ea764f80 size:4096
-soundevents/music/tigercub_01/game_sounds_music.vsndevts_c CRC:00dd1f0587 size:3818
-soundevents/music/timhuling_01/game_sounds_music.vsndevts_c CRC:000de04cda size:4034
-soundevents/music/timhuling_02/game_sounds_music.vsndevts_c CRC:00485e64c0 size:4042
-soundevents/music/treeadams_01/game_sounds_music.vsndevts_c CRC:00b936701c size:3895
-soundevents/music/treeadams_benbromfield_01/game_sounds_music.vsndevts_c CRC:002490202d size:4170
-soundevents/music/troelsfolmann_01/game_sounds_music.vsndevts_c CRC:0023bdb4a1 size:4031
-soundevents/music/twerl_01/game_sounds_music.vsndevts_c CRC:003c6f8667 size:3850
-soundevents/music/twinatlantic_01/game_sounds_music.vsndevts_c CRC:0099347cee size:4197
-soundevents/music/valve_01/game_sounds_music.vsndevts_c CRC:00119cbc38 size:3367
-soundevents/music/valve_02/game_sounds_music.vsndevts_c CRC:00e3e778af size:3141
-soundevents/music/valve_cs2_01/game_sounds_music.vsndevts_c CRC:00a60c5198 size:3920
+soundevents/music/3kliksphilip_01/game_sounds_music.vsndevts_c CRC:00776a2ada size:4597
+soundevents/music/adambeyer_01/game_sounds_music.vsndevts_c CRC:0059e4ee95 size:3999
+soundevents/music/alrt_01/game_sounds_music.vsndevts_c CRC:00d5208f76 size:4293
+soundevents/music/altare_01/game_sounds_music.vsndevts_c CRC:00f0d32ac2 size:4004
+soundevents/music/amontobin_01/game_sounds_music.vsndevts_c CRC:00e345c17e size:4185
+soundevents/music/austinwintory_01/game_sounds_music.vsndevts_c CRC:00c1b86e6f size:4038
+soundevents/music/austinwintory_02/game_sounds_music.vsndevts_c CRC:00f4002576 size:4004
+soundevents/music/austinwintory_03/game_sounds_music.vsndevts_c CRC:00f740c8fd size:3955
+soundevents/music/austinwintory_04/game_sounds_music.vsndevts_c CRC:008ce0c1b1 size:3999
+soundevents/music/awolnation_01/game_sounds_music.vsndevts_c CRC:006594357c size:4189
+soundevents/music/bbnos_01/game_sounds_music.vsndevts_c CRC:007005f629 size:3826
+soundevents/music/beartooth_01/game_sounds_music.vsndevts_c CRC:00441880be size:4078
+soundevents/music/beartooth_02/game_sounds_music.vsndevts_c CRC:00006cc5c5 size:4027
+soundevents/music/benbromfield_01/game_sounds_music.vsndevts_c CRC:00e4727f4f size:3981
+soundevents/music/blitzkids_01/game_sounds_music.vsndevts_c CRC:00dc606b17 size:4074
+soundevents/music/borne_01/game_sounds_music.vsndevts_c CRC:00fa1071fa size:4156
+soundevents/music/chipzel_01/game_sounds_music.vsndevts_c CRC:001529e21f size:3817
+soundevents/music/damjanmravunac_01/game_sounds_music.vsndevts_c CRC:0090c0fbe4 size:4143
+soundevents/music/danielsadowski_01/game_sounds_music.vsndevts_c CRC:0034299d1e size:3833
+soundevents/music/danielsadowski_02/game_sounds_music.vsndevts_c CRC:005ae7f251 size:3833
+soundevents/music/danielsadowski_03/game_sounds_music.vsndevts_c CRC:002b6d658c size:3939
+soundevents/music/danielsadowski_04/game_sounds_music.vsndevts_c CRC:008185ece0 size:3858
+soundevents/music/danielsadowski_05/game_sounds_music.vsndevts_c CRC:00200e99ea size:3809
+soundevents/music/darude_01/game_sounds_music.vsndevts_c CRC:00b041213b size:4026
+soundevents/music/denzelcurry_01/game_sounds_music.vsndevts_c CRC:003161c347 size:4114
+soundevents/music/dren_01/game_sounds_music.vsndevts_c CRC:00a4330bce size:4134
+soundevents/music/dren_02/game_sounds_music.vsndevts_c CRC:00e182be9f size:4206
+soundevents/music/dren_03/game_sounds_music.vsndevts_c CRC:00fd97865b size:4041
+soundevents/music/dryden_01/game_sounds_music.vsndevts_c CRC:0014642fbc size:3846
+soundevents/music/feedme_01/game_sounds_music.vsndevts_c CRC:00544f22c8 size:3916
+soundevents/music/freakydna_01/game_sounds_music.vsndevts_c CRC:0040122f80 size:4050
+soundevents/music/ghost_01/game_sounds_music.vsndevts_c CRC:00c3366a28 size:3980
+soundevents/music/hades_01/game_sounds_music.vsndevts_c CRC:00d947b718 size:4207
+soundevents/music/halo_01/game_sounds_music.vsndevts_c CRC:00a5eae6e8 size:4035
+soundevents/music/health_01/game_sounds_music.vsndevts_c CRC:008b320444 size:3917
+soundevents/music/hlalyx_01/game_sounds_music.vsndevts_c CRC:00d690e8df size:3122
+soundevents/music/hlb_01/game_sounds_music.vsndevts_c CRC:0026ddf3b7 size:4108
+soundevents/music/hotlinemiami_01/game_sounds_music.vsndevts_c CRC:00633df5a4 size:4268
+soundevents/music/hundredth_01/game_sounds_music.vsndevts_c CRC:000115086d size:4283
+soundevents/music/ianhultquist_01/game_sounds_music.vsndevts_c CRC:00b101cc43 size:4074
+soundevents/music/isoxo_01/game_sounds_music.vsndevts_c CRC:006dff4bf6 size:3914
+soundevents/music/jamesandthecoldgun_01/game_sounds_music.vsndevts_c CRC:00cef4edee size:4027
+soundevents/music/jesseharlin_01/game_sounds_music.vsndevts_c CRC:007544b555 size:3883
+soundevents/music/jonathanyoung_01/game_sounds_music.vsndevts_c CRC:009be05054 size:3832
+soundevents/music/juelz_01/game_sounds_music.vsndevts_c CRC:0087a99726 size:4031
+soundevents/music/juelz_02/game_sounds_music.vsndevts_c CRC:00851878bb size:4112
+soundevents/music/kellybailey_01/game_sounds_music.vsndevts_c CRC:00192fea8c size:3921
+soundevents/music/killermike_01/game_sounds_music.vsndevts_c CRC:00b30c6e1a size:3903
+soundevents/music/killscript_01/game_sounds_music.vsndevts_c CRC:00d57837a6 size:3849
+soundevents/music/kitheory_01/game_sounds_music.vsndevts_c CRC:00dea0c9ca size:3872
+soundevents/music/knock2_01/game_sounds_music.vsndevts_c CRC:0090ef6145 size:3886
+soundevents/music/knock2_02/game_sounds_music.vsndevts_c CRC:00a0466ece size:3923
+soundevents/music/laurashigihara_01/game_sounds_music.vsndevts_c CRC:005e2262e8 size:4072
+soundevents/music/lenniemoore_01/game_sounds_music.vsndevts_c CRC:00d7bf7ae7 size:4324
+soundevents/music/mateomessina_01/game_sounds_music.vsndevts_c CRC:001a654fe1 size:4133
+soundevents/music/mattlange_01/game_sounds_music.vsndevts_c CRC:00b03558eb size:3916
+soundevents/music/mattlevine_01/game_sounds_music.vsndevts_c CRC:000bb46a31 size:4055
+soundevents/music/mattlevine_02/game_sounds_music.vsndevts_c CRC:0084207aa8 size:4062
+soundevents/music/meechydarko_01/game_sounds_music.vsndevts_c CRC:0018ec467d size:4158
+soundevents/music/michaelbross_01/game_sounds_music.vsndevts_c CRC:0038661537 size:3873
+soundevents/music/midnightriders_01/game_sounds_music.vsndevts_c CRC:001d920b9a size:4076
+soundevents/music/mordfustang_01/game_sounds_music.vsndevts_c CRC:006f35835e size:3931
+soundevents/music/neckdeep_01/game_sounds_music.vsndevts_c CRC:001059f303 size:4206
+soundevents/music/neckdeep_02/game_sounds_music.vsndevts_c CRC:00bdf64004 size:4359
+soundevents/music/newbeatfund_01/game_sounds_music.vsndevts_c CRC:0002c4d404 size:4053
+soundevents/music/noisia_01/game_sounds_music.vsndevts_c CRC:0025e23fe7 size:4011
+soundevents/music/perfectworld_01/game_sounds_music.vsndevts_c CRC:0099d0a703 size:3846
+soundevents/music/perfectworld_02/game_sounds_music.vsndevts_c CRC:00a939a2ad size:3901
+soundevents/music/pirapus_01/game_sounds_music.vsndevts_c CRC:00381f963b size:4050
+soundevents/music/proxy_01/game_sounds_music.vsndevts_c CRC:0078f5ea9f size:4128
+soundevents/music/pvris_01/game_sounds_music.vsndevts_c CRC:008971ec4d size:4314
+soundevents/music/radcat_01/game_sounds_music.vsndevts_c CRC:0043f822b5 size:3889
+soundevents/music/repiet_01/game_sounds_music.vsndevts_c CRC:006678ad8a size:4076
+soundevents/music/roam_01/game_sounds_music.vsndevts_c CRC:008389925f size:4173
+soundevents/music/robertallaire_01/game_sounds_music.vsndevts_c CRC:00d51472bc size:4277
+soundevents/music/sammarshall_01/game_sounds_music.vsndevts_c CRC:0059874202 size:3961
+soundevents/music/sammarshall_02/game_sounds_music.vsndevts_c CRC:007694799e size:4144
+soundevents/music/sarahschachner_01/game_sounds_music.vsndevts_c CRC:0052e4163c size:3954
+soundevents/music/sasha_01/game_sounds_music.vsndevts_c CRC:00b85c25cc size:3804
+soundevents/music/scarlxrd_01/game_sounds_music.vsndevts_c CRC:00b507826f size:3845
+soundevents/music/scarlxrd_02/game_sounds_music.vsndevts_c CRC:00c9eceead size:3993
+soundevents/music/seanmurray_01/game_sounds_music.vsndevts_c CRC:008d899837 size:4070
+soundevents/music/selectiveresponse_01/game_sounds_music.vsndevts_c CRC:00753b6612 size:3951
+soundevents/music/shockone_01/game_sounds_music.vsndevts_c CRC:0015a756c2 size:4002
+soundevents/music/skog_01/game_sounds_music.vsndevts_c CRC:00c29b735d size:4209
+soundevents/music/skog_02/game_sounds_music.vsndevts_c CRC:0078daf83a size:3981
+soundevents/music/skog_03/game_sounds_music.vsndevts_c CRC:0057ed2d35 size:3829
+soundevents/music/starjunk95_01/game_sounds_music.vsndevts_c CRC:00d11e9ff3 size:4295
+soundevents/music/sullivanking_01/game_sounds_music.vsndevts_c CRC:00dd6e9603 size:4031
+soundevents/music/theverkkars_01/game_sounds_music.vsndevts_c CRC:005d89f5b8 size:4039
+soundevents/music/theverkkars_02/game_sounds_music.vsndevts_c CRC:00d8dc3b1d size:4096
+soundevents/music/tigercub_01/game_sounds_music.vsndevts_c CRC:002d75ea0c size:3818
+soundevents/music/timhuling_01/game_sounds_music.vsndevts_c CRC:002378d737 size:4034
+soundevents/music/timhuling_02/game_sounds_music.vsndevts_c CRC:000409db09 size:4042
+soundevents/music/treeadams_01/game_sounds_music.vsndevts_c CRC:008c7d8c7a size:3895
+soundevents/music/treeadams_benbromfield_01/game_sounds_music.vsndevts_c CRC:00a664c49b size:4170
+soundevents/music/troelsfolmann_01/game_sounds_music.vsndevts_c CRC:00376742a4 size:4031
+soundevents/music/twerl_01/game_sounds_music.vsndevts_c CRC:00d3fafcf7 size:3850
+soundevents/music/twinatlantic_01/game_sounds_music.vsndevts_c CRC:00a22e3dc8 size:4197
+soundevents/music/valve_01/game_sounds_music.vsndevts_c CRC:004a9e237d size:3367
+soundevents/music/valve_02/game_sounds_music.vsndevts_c CRC:00010b09bc size:3141
+soundevents/music/valve_cs2_01/game_sounds_music.vsndevts_c CRC:00bec3ffd5 size:3920
soundevents/soundevents_from_tools.vsndevts_c CRC:00a0f1a071 size:942
soundevents/soundevents_manifest.vrman_c CRC:0079a0a6ca size:23877
soundevents/soundevents_manifest_csgo_imported.vrman_c CRC:00239a171a size:712
@@ -135977,13 +135954,6 @@ weapons/models/knife/knife_ursus/materials/composite_inputs/knife_ursus_pos_pfm_
weapons/models/knife/knife_ursus/materials/composite_inputs/knife_ursus_surface_tga_ad201805.vtex_c CRC:0033c08ae7 size:554767
weapons/models/knife/knife_ursus/materials/weapon_knife_ursus.vmat_c CRC:00c660f578 size:3832
weapons/models/knife/knife_ursus/weapon_knife_ursus.vmdl_c CRC:001d21284c size:83447
-weapons/models/lar/materials/weapon_rif_lar.vmat_c CRC:00dd005dd3 size:7476
-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_albedo_jpg_a9420be9.vtex_c CRC:0006e63f39 size:3507116
-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_emissive_jpg_9d61adb2.vtex_c CRC:003a925511 size:61547
-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_normal_png_419b046c.vtex_c CRC:00a304009f size:4881460
-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_roughness_jpg_55597ce4.vtex_c CRC:00b49da714 size:3653534
-weapons/models/lar/mesh/fbx/do_not_ship/lar_temp.vmat_c CRC:005542aa01 size:4324
-weapons/models/lar/weapon_rif_lar.vmdl_c CRC:00c47aa6cf size:1326175
weapons/models/m249/materials/composite_inputs/m249_substrate_color_psd_833b9c73.vtex_c CRC:004df43269 size:4512366
weapons/models/m249/materials/composite_inputs/weapon_mach_m249_cavity_psd_a55d713.vtex_c CRC:000fa7b910 size:788553
weapons/models/m249/materials/composite_inputs/weapon_mach_m249_composite_inputs.vmat_c CRC:00e5c9f686 size:3849
game/csgo/pak01_dir/soundevents/music/3kliksphilip_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -400,7 +400,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -425,7 +425,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/adambeyer_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -334,7 +334,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -359,7 +359,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/alrt_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -370,7 +370,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -395,7 +395,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/altare_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -333,7 +333,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -358,7 +358,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/amontobin_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -403,7 +403,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -428,7 +428,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/austinwintory_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -330,7 +330,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -355,7 +355,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/austinwintory_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -336,7 +336,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -361,7 +361,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/austinwintory_03/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -336,7 +336,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -361,7 +361,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/austinwintory_04/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -336,7 +336,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -361,7 +361,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/awolnation_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -364,7 +364,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -389,7 +389,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/bbnos_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -302,7 +302,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -327,7 +327,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/beartooth_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -336,7 +336,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -361,7 +361,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/beartooth_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -333,7 +333,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -358,7 +358,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/benbromfield_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -306,7 +306,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -331,7 +331,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/blitzkids_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -339,7 +339,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -364,7 +364,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/borne_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -370,7 +370,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -395,7 +395,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/chipzel_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -302,7 +302,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -327,7 +327,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/damjanmravunac_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -339,7 +339,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -364,7 +364,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/danielsadowski_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -305,7 +305,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -330,7 +330,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/danielsadowski_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -308,7 +308,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -333,7 +333,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/danielsadowski_03/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -308,7 +308,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -333,7 +333,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/danielsadowski_04/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -305,7 +305,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -330,7 +330,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/danielsadowski_05/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -302,7 +302,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -327,7 +327,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/darude_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -367,7 +367,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -392,7 +392,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/denzelcurry_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -346,7 +346,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -371,7 +371,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/dren_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -358,7 +358,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -383,7 +383,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/dren_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -367,7 +367,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -392,7 +392,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/dren_03/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -358,7 +358,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -383,7 +383,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/dryden_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -334,7 +334,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -359,7 +359,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/feedme_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -306,7 +306,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -331,7 +331,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/freakydna_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -370,7 +370,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -395,7 +395,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/ghost_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -322,7 +322,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -347,7 +347,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/hades_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -349,7 +349,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -374,7 +374,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/halo_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -333,7 +333,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -358,7 +358,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/health_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -318,7 +318,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -343,7 +343,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/hlalyx_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -351,7 +351,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -375,7 +375,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/hlb_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -367,7 +367,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -392,7 +392,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/hotlinemiami_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -351,7 +351,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -376,7 +376,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/hundredth_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -370,7 +370,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -395,7 +395,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/ianhultquist_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -367,7 +367,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -392,7 +392,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/isoxo_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -336,7 +336,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -361,7 +361,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/jamesandthecoldgun_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -333,7 +333,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -358,7 +358,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/jesseharlin_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -308,7 +308,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -333,7 +333,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/jonathanyoung_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -302,7 +302,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -327,7 +327,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/juelz_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -336,7 +336,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -361,7 +361,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/juelz_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -334,7 +334,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -359,7 +359,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/kellybailey_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -306,7 +306,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -331,7 +331,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/killermike_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -318,7 +318,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -343,7 +343,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/killscript_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -306,7 +306,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -331,7 +331,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/kitheory_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -305,7 +305,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -330,7 +330,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/knock2_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -309,7 +309,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -334,7 +334,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/knock2_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -330,7 +330,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -355,7 +355,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/laurashigihara_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -358,7 +358,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -383,7 +383,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/lenniemoore_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -376,7 +376,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -401,7 +401,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/mateomessina_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -376,7 +376,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -401,7 +401,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/mattlange_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -309,7 +309,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -334,7 +334,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/mattlevine_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -367,7 +367,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -392,7 +392,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/mattlevine_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -358,7 +358,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -383,7 +383,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/meechydarko_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -346,7 +346,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -371,7 +371,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/michaelbross_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -305,7 +305,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -330,7 +330,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/midnightriders_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -336,7 +336,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -361,7 +361,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/mordfustang_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -336,7 +336,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -361,7 +361,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/neckdeep_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -361,7 +361,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -386,7 +386,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/neckdeep_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -379,7 +379,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -404,7 +404,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/newbeatfund_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -336,7 +336,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -361,7 +361,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/noisia_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -348,7 +348,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -373,7 +373,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/perfectworld_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -305,7 +305,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -330,7 +330,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/perfectworld_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -326,7 +326,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -351,7 +351,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/pirapus_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -333,7 +333,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -358,7 +358,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/proxy_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -339,7 +339,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -364,7 +364,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/pvris_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -376,7 +376,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -401,7 +401,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/radcat_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -336,7 +336,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -361,7 +361,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/repiet_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -357,7 +357,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -382,7 +382,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/roam_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -364,7 +364,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -389,7 +389,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/robertallaire_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -354,7 +354,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -379,7 +379,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/sammarshall_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -348,7 +348,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -373,7 +373,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/sammarshall_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -376,7 +376,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -401,7 +401,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/sarahschachner_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -334,7 +334,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -359,7 +359,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/sasha_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -302,7 +302,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -327,7 +327,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/scarlxrd_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -302,7 +302,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -327,7 +327,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/scarlxrd_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -313,7 +313,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -338,7 +338,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/seanmurray_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -330,7 +330,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -355,7 +355,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/selectiveresponse_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -336,7 +336,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -361,7 +361,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/shockone_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -333,7 +333,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -358,7 +358,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/skog_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -354,7 +354,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -379,7 +379,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/skog_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -320,7 +320,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -345,7 +345,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/skog_03/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -308,7 +308,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -333,7 +333,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/starjunk95_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -367,7 +367,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -392,7 +392,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/sullivanking_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -333,7 +333,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -358,7 +358,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/theverkkars_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -330,7 +330,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -355,7 +355,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/theverkkars_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -336,7 +336,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -361,7 +361,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/tigercub_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -302,7 +302,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -327,7 +327,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/timhuling_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -367,7 +367,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -392,7 +392,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/timhuling_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -322,7 +322,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -347,7 +347,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/treeadams_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -306,7 +306,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -331,7 +331,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/treeadams_benbromfield_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -342,7 +342,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -367,7 +367,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/troelsfolmann_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -333,7 +333,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -358,7 +358,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/twerl_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -330,7 +330,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -355,7 +355,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/twinatlantic_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -364,7 +364,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -389,7 +389,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/valve_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -352,7 +352,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -376,7 +376,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/valve_02/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -298,7 +298,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -322,7 +322,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/pak01_dir/soundevents/music/valve_cs2_01/game_sounds_music.vsndevts
modified • +2 / -2 • changes: 4
Show patch
@@ -312,7 +312,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
@@ -337,7 +337,7 @@
priority = 4.0
stop_music_except_mvp = "true"
volume_fade_out_input_max = 1.6
- loop_track = "true"
+ loop_track = "false"
should_queue_track = "true"
skip_if_muted = "true"
test_mvp_block = "true"
game/csgo/readonly_tools_asset_info.txt
modified • +0 / -9 • changes: 9
Show patch
@@ -134920,15 +134920,6 @@ sounds/graphs/reverb_6_largeroom.vsnd
sounds/graphs/reverb_7_mediumhall.vsnd
sounds/graphs/reverb_8_mediumcarpetroom.vsnd
sounds/graphs/reverb_9_mediumchamber.vsnd
-panorama/images/icons/equipment/lar.vsvg
panorama/layout/hud/hudmutators.vxml
panorama/styles/hud/hudmutators.vcss
sounds/graphs/bighead_pitch.vsnd
-weapons/models/lar/weapon_rif_lar.vmdl
-weapons/models/lar/materials/weapon_rif_lar.vmat
-weapons/models/lar/mesh/fbx/do_not_ship/lar_temp.vmat
-panorama/images/econ/weapons/base_weapons/weapon_lar_png.vtex
-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_albedo_jpg_a9420be9.vtex
-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_emissive_jpg_9d61adb2.vtex
-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_normal_png_419b046c.vtex
-weapons/models/lar/mesh/fbx/do_not_ship/initialshadinggroup_roughness_jpg_55597ce4.vtex
game/csgo/steam.inf
modified • +6 / -6 • changes: 12
Show patch
@@ -1,9 +1,9 @@
-ClientVersion=2000938
-ServerVersion=2000938
-PatchVersion=1.41.9.3
+ClientVersion=2000939
+ServerVersion=2000939
+PatchVersion=1.41.9.4
ProductName=cs2
appID=730
ServerAppID=2347773
-SourceRevision=11181008
-VersionDate=Oct 28 2026
-VersionTime=13:49:20
+SourceRevision=11191540
+VersionDate=Oct 30 2026
+VersionTime=13:55:25
manifests/manifest_2347770.txt
modified • +12 / -12 • changes: 24
Show patch
@@ -1,16 +1,16 @@
Content Manifest for Depot 2347770
-Manifest ID / date : 8833146750479675564 / 10/28/2026 20:57:52
+Manifest ID / date : 6694633556888099985 / 10/30/2026 21:05:03
Total number of files : 2992
-Total number of chunks : 65074
-Total bytes on disk : 65065602283
-Total bytes compressed : 55586326720
+Total number of chunks : 65063
+Total bytes on disk : 65051805863
+Total bytes compressed : 55573428128
Size Chunks File SHA Flags Name
- 10 1 cbdd67858201fbb67a3af7ec944ee3d8137ade56 0 game\bin\built_from_cl.txt
- 10347 1 e50c5dc3f0367da59129c5be7332559bd2fc0918 0 game\bin\win64\csgo.signatures
- 8941 1 97782ee451748c773a7732f9fb410892906422a3 0 game\bin\win64\vpk.signatures
+ 10 1 2d6149740ea5c8f6b2d653ccf3f38a0d2a294ac3 0 game\bin\built_from_cl.txt
+ 10347 1 cf297ff72b6c1648a9cecd8868cfac716c658e3c 0 game\bin\win64\csgo.signatures
+ 8941 1 ec38742284e7338bb190a5eb2ff6f77c2a534438 0 game\bin\win64\vpk.signatures
51357 1 0f5112698b482f8c1190c89192a4c0c8b0e50198 0 game\core\cfg\sfm_default_animation_groups.vcfg
2270 1 ab4e0ee92367ba6d28a89dae8f6000631ffdb641 0 game\core\cfg\user_keys_default.vcfg
2474 1 c4ff2f85048812f02c2403b0675208acfc00c7b0 0 game\core\gameinfo.gi
@@ -2438,7 +2438,7 @@ Total bytes compressed : 55586326720
118404050 113 796c7932cfeb6772b51013f28bd99bfdfb40483d 0 game\csgo\pak01_033.vpk
116169795 111 e382335666c33007e4a346ded29843a08e8656eb 0 game\csgo\pak01_034.vpk
104201764 102 d897179aaadd2b0de26e19afe39037903f6f424a 0 game\csgo\pak01_035.vpk
- 106521791 129 37f5f0b02681e7ffa2052a4b139680303910cf18 0 game\csgo\pak01_036.vpk
+ 105234684 129 3493b2d21b1aecc2a0b56c7338a9fcc06f512e91 0 game\csgo\pak01_036.vpk
109137813 105 c1c5d1aeea369e80997338b7f41f8cadb17bbfdb 0 game\csgo\pak01_037.vpk
116538440 112 cf02841fa129fbb93933f539cc8ae0fcb54de2d9 0 game\csgo\pak01_038.vpk
103037018 103 83bd86a8c8cdc17b353c54cd4cf6a1e347a59e63 0 game\csgo\pak01_039.vpk
@@ -2903,11 +2903,11 @@ Total bytes compressed : 55586326720
103652491 105 97b078393d02aaed75aa0d5f232ec9573a608d48 0 game\csgo\pak01_498.vpk
105338067 116 4af7ebb5429b351ff2b76c4f9b300cd176157ada 0 game\csgo\pak01_499.vpk
102090495 101 6cac088baddee5012d7a47318b06d119f3cbb859 0 game\csgo\pak01_500.vpk
- 99621966 105 a36d3ad51113077cf85943cd5a96a10581c7edaf 0 game\csgo\pak01_501.vpk
+ 99621956 106 9d2ae31cb7b16513b47b2aa6bc1a5b55a6ad8d43 0 game\csgo\pak01_501.vpk
99618250 105 568b65b644448b85efe132f8eaebe59c309c3fb3 0 game\csgo\pak01_502.vpk
100220508 102 60654a3f3231ef5de3b458ed332ba064c153c465 0 game\csgo\pak01_503.vpk
- 73801782 76 e868db78c1f025ef727560bdeeac4a627960590d 0 game\csgo\pak01_504.vpk
- 7715045 8 c8514c1fed295f92b27cf36ba7eea751c5b3273a 0 game\csgo\pak01_dir.vpk
+ 61294166 64 7e4515c2e23cc6b96ef870aff144182d3aa0bc84 0 game\csgo\pak01_504.vpk
+ 7713358 8 860cb1f89ad46cd24ec82d18dca3f975cc951465 0 game\csgo\pak01_dir.vpk
11893 1 d2f5c237fcac89835ab901bf3cc83850c71d9b46 0 game\csgo\panorama\fonts\fonts.conf
107848 1 90edfc11fa568cd0fb5b9d6e6d369dddadfdb8c4 0 game\csgo\panorama\fonts\notomono-regular.ttf
310556 1 84e39ddc72cd1d2ac4be132d235979f10f916c2b 0 game\csgo\panorama\fonts\notosans-bold.ttf
@@ -2996,7 +2996,7 @@ Total bytes compressed : 55586326720
303670574 290 d2d77a7357436cf6fb69b704cebc84718609f70e 0 game\csgo\shaders_vulkan_003.vpk
25004138 28 7a80e74bbd9d763f27ad8788694da6d9d81cc99e 0 game\csgo\shaders_vulkan_004.vpk
41884 1 a9b38a712dcebbc8a985763a9134ec66c4264688 0 game\csgo\shaders_vulkan_dir.vpk
- 190 1 3cd68d9dfada742adc3209d9d4bcdfd63c2e2b7a 0 game\csgo\steam.inf
+ 190 1 6bd54113491e0ded55a8f7d0f773905099323118 0 game\csgo\steam.inf
209 1 cb2eaab8dbda9f075491a5410326356e127f60ec 0 game\csgo_lv\gameinfo.gi
135 1 7769174b103a021d6390cb2a31b758dbfff04639 0 game\csgo_lv\gameinfo_branchspecific.gi
473822 1 f5ca24bf12b20fee2ffb5d8bbc465ba8805d8abe 0 game\thirdpartylegalnotices.txt
manifests/manifest_2347771.txt
modified • +6 / -6 • changes: 12
Show patch
@@ -1,10 +1,10 @@
Content Manifest for Depot 2347771
-Manifest ID / date : 5218696177408015009 / 10/28/2026 20:58:30
+Manifest ID / date : 4494425425081083634 / 10/30/2026 21:05:41
Total number of files : 183
Total number of chunks : 7219
-Total bytes on disk : 7753536510
-Total bytes compressed : 5011478400
+Total bytes on disk : 7753537022
+Total bytes compressed : 5011481952
Size Chunks File SHA Flags Name
@@ -76,7 +76,7 @@ Total bytes compressed : 5011478400
7094936 7 2a0d7c4734b5058b0dcf8e270630c9a8a9dab4b8 0 game\bin\win64\scenesystem.dll
445592 1 a2d1ab7e9bfefb9df339767031cf6b6ce7a1a43e 0 game\bin\win64\schemasystem.dll
2891928 3 2455bae3c453025d4d481afebdc517ac9e3f3659 0 game\bin\win64\SDL3.dll
- 5837976 6 19e6268724b2f6b56795d32f048ff957967ba2f1 0 game\bin\win64\soundsystem.dll
+ 5838488 6 dd30ad36fdcfb5d9f59b2cfb46b0bef25184328f 0 game\bin\win64\soundsystem.dll
3547288 4 2ed24977ac906ca1596d83f466669849116c2619 0 game\bin\win64\steamaudio.dll
4290200 5 b2a6c8bdb391737a00e9d32a186d726da2037aae 0 game\bin\win64\steamnetworkingsockets.dll
317080 1 a9fd85dbfdcee3209768facb284b8788df41c3d3 0 game\bin\win64\steam_api64.dll
@@ -110,10 +110,10 @@ Total bytes compressed : 5011478400
3185298 4 10bea5cfe6883540880c748e9506a04ad11e53ca 0 game\core\shaders_pc_000.vpk
25563 1 72204b8136ab7b8df21a52fb0b8b674f8c578b06 0 game\core\shaders_pc_dir.vpk
1728360 2 4e48ff45949c7f3cd8fd8ab5b7514ae27f44e53a 0 game\csgo\bin\legacy\csgo_legacy_app.exe
- 39224472 38 1024028a050cc8bef7a9e9ec193ba1b9f951660c 0 game\csgo\bin\win64\client.dll
+ 39224472 38 b5ad5ca0a78e816cf93836327b42d5a5ef49dcab 0 game\csgo\bin\win64\client.dll
1389208 2 40c6db9d0b1a07915441df9e7f002375f1bbad7a 0 game\csgo\bin\win64\host.dll
1890968 2 9aedfe7565fa06c398d7c4a0017bfc6490567b4d 0 game\csgo\bin\win64\matchmaking.dll
- 34690200 34 bc9cad39ac62e7154f8de2f0aee6b0c2075d88f5 0 game\csgo\bin\win64\server.dll
+ 34690200 34 7eb4d9b19948117424d575b158aa11c565d71eec 0 game\csgo\bin\win64\server.dll
115209034 117 4bbd01e43063ebade958bb509725b1b48c811b00 0 game\csgo\shaders_pc_000.vpk
189827159 182 7829b4ede09333c4e30a53d1ef958b9baeaeac39 0 game\csgo\shaders_pc_001.vpk
38973836 41 55f4f1a11b02a8a25a77a452d24ae14aa04b9f0b 0 game\csgo\shaders_pc_002.vpk
manifests/manifest_2347773.txt
modified • +6 / -6 • changes: 12
Show patch
@@ -1,10 +1,10 @@
Content Manifest for Depot 2347773
-Manifest ID / date : 3474977783625240452 / 10/28/2026 20:58:51
+Manifest ID / date : 6232960523750647649 / 10/30/2026 21:05:58
Total number of files : 135
Total number of chunks : 6673
-Total bytes on disk : 7224463846
-Total bytes compressed : 4605724896
+Total bytes on disk : 7224464934
+Total bytes compressed : 4605726512
Size Chunks File SHA Flags Name
@@ -42,7 +42,7 @@ Total bytes compressed : 4605724896
10777468 11 3a9bd9792e999e94206fda1dadeacf2d32c96477 0 game\bin\linuxsteamrt64\libscenesystem.so
713948 1 ad85dae76aad400f723e768ee7286fc6993c7c2f 0 game\bin\linuxsteamrt64\libschemasystem.so
3229400 4 0558f1091e79b187e42491955cf362112598cff5 0 game\bin\linuxsteamrt64\libSDL3.so.0
- 7961876 8 ab5e72fe683cd977926ef1d273990dd0f1b829fd 0 game\bin\linuxsteamrt64\libsoundsystem.so
+ 7962196 8 f8b3d7618016aef0270517c79848a225837296b8 0 game\bin\linuxsteamrt64\libsoundsystem.so
4771364 5 57b51902f63f93920f5bea8e86feb5b5adcda44e 0 game\bin\linuxsteamrt64\libsteamaudio.so
5692434 6 9ec4204cb535bb2c204a69c2d7d15e2b2c9682a1 0 game\bin\linuxsteamrt64\libsteamnetworkingsockets.so
381976 1 c109666c839a433b5ff8f635ad173cde77bdcdb6 0 game\bin\linuxsteamrt64\libsteam_api.so
@@ -66,10 +66,10 @@ Total bytes compressed : 4605724896
1296400 2 f63aa2c6334168781aa9b5bd2db22c0cc3a98a71 0 game\bin\linuxsteamrt64\libvscript.so
4570212 5 9401bc49adf98aa264340e34e93dfc06fd786adc 0 game\bin\linuxsteamrt64\libworldrenderer.so
3822 1 956919b920713ce452f46c20cf8643674f7543f7 0 game\cs2.sh
- 74208120 71 6424d7e40ea57f83d0f1a8d49278ddef029a8d94 0 game\csgo\bin\linuxsteamrt64\libclient.so
+ 74208376 71 a0729807ba98a01f7c8fde6b2a787897403028f6 0 game\csgo\bin\linuxsteamrt64\libclient.so
3184412 4 2a6ef4e4bdf777c3ccd9d2d11c8cfce69baeb82f 0 game\csgo\bin\linuxsteamrt64\libhost.so
3775044 4 4a6bd2fa9528edbac347b03c837c3158d93bca75 0 game\csgo\bin\linuxsteamrt64\libmatchmaking.so
- 41807128 40 caa2892202b928cf2a671fc04fb7c4f4e41b8f81 0 game\csgo\bin\linuxsteamrt64\libserver.so
+ 41807640 40 da6d2163b63dbc977b94d454dd3eb1ceb322e3a5 0 game\csgo\bin\linuxsteamrt64\libserver.so
182648578 175 d4b7d7aea361a8b94c54e79904d642d712a1a3f5 0 game\csgo_community_addons\cs_shelter\cs_shelter_000.vpk
107052112 105 2c61877687a4e433f04a62340fb3ce54b70e039c 0 game\csgo_community_addons\cs_shelter\cs_shelter_001.vpk
106101480 104 e5dc305d96a55ae88a396ac6d98037209b4520ce 0 game\csgo_community_addons\cs_shelter\cs_shelter_002.vpk
manifests/manifest_2347779.txt
modified • +5 / -5 • changes: 10
Show patch
@@ -1,9 +1,9 @@
Content Manifest for Depot 2347779
-Manifest ID / date : 2888303856247423407 / 10/28/2026 20:59:18
+Manifest ID / date : 6999460720639345485 / 10/30/2026 21:06:20
Total number of files : 909
-Total number of chunks : 2524
-Total bytes on disk : 2108142576
+Total number of chunks : 2523
+Total bytes on disk : 2108138499
Total bytes compressed : 576286240
@@ -638,7 +638,7 @@ Total bytes compressed : 576286240
5703320 6 69aef54a5be46a22842ba8a8671ef057da9ffedd 0 game\bin\win64\assetsystem.dll
1529856 2 45e7d0873608e5424312fa289a270f2faacfe8fa 0 game\bin\win64\bc7e.dll
396952 1 3a1580720932ad35bdc8455fea40739014877638 0 game\bin\win64\cs2_build_econ_items_workshop.exe
- 13866 1 62ca0b9e4c3a3df901dbd1b5f3d2d4d5dead27b5 0 game\bin\win64\csgo.signatures
+ 13866 1 6e66eefa3c87d4a1c8b0971d9c9006ad4bed4f81 0 game\bin\win64\csgo.signatures
1271448 2 41ff225a0583e28a3755588aac5634c5db7af5c4 0 game\bin\win64\csgocfg.exe
15683736 15 2e0961f7f4e0776a11546c4f8a6ee8797cd7a478 0 game\bin\win64\cs_mdl_import.exe
1196696 2 f3364d2c801c80b4e2eb6d8c76a6ec0aca706962 0 game\bin\win64\dmxconvert.exe
@@ -721,7 +721,7 @@ Total bytes compressed : 576286240
133435 1 5c5acf7bffba281b1fb2de939a6953c385e26ac3 0 game\csgo\lighting\postprocessing\editor\toolsscene_default.vpost_c
3823 1 aaa9517703492629cade78571c39f5fdc2c417e3 0 game\csgo\models_gamedata.fgd
1559 1 ccef3c777e99029f1956e3ad23a718a99fd36d14 0 game\csgo\postprocessing.fgd
- 50764494 52 9bf42a6c2e4924dab630257854137646df9fe384 0 game\csgo\readonly_tools_asset_info.bin
+ 50760417 51 a1997ec54c03935c14e37f7748fecf207030dc7c 0 game\csgo\readonly_tools_asset_info.bin
3009 1 8374c54025aad8c3d4a72b5f7f198d99951b7844 0 game\csgo\tools\cs2_icon_gen\icon_camera.png
2390 1 436ef3b91600906f462a33b9973b3f0955ddf1d6 0 game\csgo\tools\cs2_icon_gen\icon_item.png
2566 1 d78fd6c17e836a35c1cff4b375de7928ea5aea40 0 game\csgo\tools\cs2_icon_gen\icon_light_fill.png
manifests/manifest_731.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 731
-Manifest ID / date : 6136897076417766099 / 10/28/2026 20:56:26
+Manifest ID / date : 3579580227224146060 / 10/30/2026 21:03:36
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 6dbe87f2df31621a39a598c8ac5d32af40524a01 0 game\bin\content_built_from_cl.txt
+ 8 1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36 0 game\bin\content_built_from_cl.txt
manifests/manifest_732.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 732
-Manifest ID / date : 7263089472237994766 / 10/28/2026 20:56:33
+Manifest ID / date : 4813741465053806363 / 10/30/2026 21:03:43
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 6dbe87f2df31621a39a598c8ac5d32af40524a01 0 game\bin\content_built_from_cl.txt
+ 8 1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36 0 game\bin\content_built_from_cl.txt
manifests/manifest_733.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 733
-Manifest ID / date : 7014388039653554958 / 10/28/2026 20:56:39
+Manifest ID / date : 7325926150770753053 / 10/30/2026 21:03:50
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 6dbe87f2df31621a39a598c8ac5d32af40524a01 0 game\bin\content_built_from_cl.txt
+ 8 1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36 0 game\bin\content_built_from_cl.txt
manifests/manifest_734.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 734
-Manifest ID / date : 7940209396320497378 / 10/28/2026 20:56:46
+Manifest ID / date : 263743024181583359 / 10/30/2026 21:03:56
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 6dbe87f2df31621a39a598c8ac5d32af40524a01 0 game\bin\content_built_from_cl.txt
+ 8 1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36 0 game\bin\content_built_from_cl.txt
manifests/manifest_735.txt
modified • +2 / -2 • changes: 4
Show patch
@@ -1,11 +1,11 @@
Content Manifest for Depot 735
-Manifest ID / date : 4345444102999343217 / 10/28/2026 20:56:52
+Manifest ID / date : 5004729745720806412 / 10/30/2026 21:04:02
Total number of files : 1
Total number of chunks : 1
Total bytes on disk : 8
Total bytes compressed : 64
Size Chunks File SHA Flags Name
- 8 1 6dbe87f2df31621a39a598c8ac5d32af40524a01 0 game\bin\content_built_from_cl.txt
+ 8 1 edff3ab59b5c9b34ccb8311cb50084f6e601aa36 0 game\bin\content_built_from_cl.txt
30.10.2026, 21.09.19
General update: “Queue update runs instead of cancelling them” Files touched: .github/workflows/update.yml.
Files changed: 1 • +2 / -1
Changed files
.github/workflows/update.yml
modified • +2 / -1 • changes: 3
Show patch
@@ -16,7 +16,8 @@ on:
concurrency:
group: ${{ github.workflow }}
- cancel-in-progress: true
+ cancel-in-progress: false
+ queue: max
jobs:
process: