65 Commits over 120 Days - 0.02cph!
Fix race for generated hlslvariables file
New rendersystemvulkan & vfx_vulkan
RenderTools::Draw handle input layout variation better
Tag rendersystem for Sentry
Use compute shader for bloom on Vulkan & fix uav barriers
::lerp fix for FXC, couple of double layer define fixes
Invalid shader handle checks in CVideoPlayerProvider::PresentYUV420Texture
New PerViewLightingConstantBufferVr_t for Vulkan, remove unused and realign, stop using structs in a cbuffer :x
Lightbinner doesn't need all this dynamic shit, max lights is compiled into shaders
Split lightbinner into legacy and new paths, strip loads of shit that Sam pinky promises me is unused
Let -fast disable vfx_vulkan optimizations
Rebase fix for new shadergraph path
New rendersystemvulkan & vfx_vulkan
RenderTools::Draw handle input layout variation better
Tag rendersystem for Sentry
Use compute shader for bloom on Vulkan & fix uav barriers
::lerp fix for FXC, couple of double layer define fixes
[?] Fix water on vulkan (moves the water??)
[pick] Invalid shader handle checks in CVideoPlayerProvider::PresentYUV420Texture
New PerViewLightingConstantBufferVr_t for Vulkan, remove unused and realign, stop using structs in a cbuffer :x
Lightbinner doesn't need all this dynamic shit, max lights is compiled into shaders
Split lightbinner into legacy and new paths, strip loads of shit that Sam pinky promises me is unused
Compiled spv shaders
New rendersystemvulkan & vfx_vulkan
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
Tag rendersystem for Sentry
Use compute shader for bloom on Vulkan & fix uav barriers
[?] My last few questionable shader fixes I need to go over
[?] Fix water on vulkan
Make sure we're compiling DXBC + SPIRV (unless opted out)
[pick] Invalid shader handle checks in CVideoPlayerProvider::PresentYUV420Texture
New PerViewLightingConstantBufferVr_t for Vulkan, remove unused and realign, stop using structs in a cbuffer :x
Compiled core/base shaders spv only
New rendersystemvulkan & vfx_vulkan
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
Tag rendersystem for Sentry
Use compute shader for bloom on Vulkan & fix uav barriers
[?] My last few questionable shader fixes I need to go over
Recompile all core shaders (spv only)
Compiled base shaders (spirv only)
[breaking change?] Pack light type in extra light data and make it all align in 128 bits for dxc
[?] Fix water on vulkan
This should be the proper fix for extra light data, add padding to struct for Vulkan only so we don't break DX11
Messy code, but need to test if the alignment works first
Latest core shaders (spirv only oops) with hopefully correct light cbuffer padding
Make sure we're compiling DXBC + SPIRV (unless opted out)
Revert all that shit, it aligns just fine in the first place 😵💫😵💫😵💫
Latest core shaders (spirv only oops) with hopefully correct light cbuffer padding
Make sure we're compiling DXBC + SPIRV (unless opted out)
This should be the proper fix for extra light data, add padding to struct for Vulkan only so we don't break DX11
Messy code, but need to test if the alignment works first
New rendersystemvulkan & vfx_vulkan
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
Tag rendersystem for Sentry
Use compute shader for bloom on Vulkan & fix uav barriers
[?] My last few questionable shader fixes I need to go over
Recompile all core shaders (spv only)
Compiled base shaders (spirv only)
[breaking change?] Pack light type in extra light data and make it all align in 128 bits for dxc
[?] Fix water on vulkan
Keep error.shader with both dxbc and spirv
Fix warnings on mathlib_base.fxc
Pack light type in extra light data and make it all align in 128 bits for dxc
Recompile all core shaders spirv only ( 107m on an 12900kf ;0 )
resize the main window to the size of the buffer in tools mode in vulkan, fixes swapchain being created the wrong size
resize the main window to the size of the buffer in tools mode in vulkan, fixes swapchain being created the wrong size
[pick] I dunno where this should belong, but it really shouldn't be core
[pick] vr_lighting uninitalized var warning fixes
Re-enable our IMalloc passthrough for DXC, improves our build times on many threads
Reuse the DxcCompiler instance for preprocessing and compiling in the same thread
Revert to slightly older dxc until #5270 is resolved
Allocate more device access threads for the .net thread pool
New rendersystemvulkan & vfx_vulkan
Shader resource v2 has dxbc and spirv blocks, if a block doesn't exist will use a fallback shader
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
[pick] Minor shader fixes where DXC is more strict about you being stupid
Tag rendersystem for Sentry
Use compute shader for bloom on Vulkan & fix uav barriers
[temp] Disable crashing water so I can stabilize everything else first
Compiled core shader resources with DX11 & Vulkan blocks
Compiled base shaders (spirv only)
Update dxc & add pdbs ( I was gonna debug a crash with these pdbs, but updating seems to have fixed it 🤷 )
Delete debug code
Fix mem leaks in vfx_vulkan, use smart ptrs to not fuck ourselves over again
[pick] encoded_normals.fxc fixes, we shouldn't be using PixelInput in core stuff anywhere
New rendersystemvulkan & vfx_vulkan
Shader resource v2 has dxbc and spirv blocks, if a block doesn't exist will use a fallback shader
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
[pick] GetShaderFullPath: remove shader replacements and legacy prefix substitutes
[pick] Minor shader fixes where DXC is more strict about you being stupid
Tag rendersystem for Sentry
Use compute shader for bloom on Vulkan & fix uav barriers
[temp] Disable crashing water so I can stabilize everything else first
[squash] rendersystemvulkan: fix minor deprecated warnings
[squash] rendersystemvulkan: Match renderthreadvulkan changes 1:1 w/ Valve
[pick] compile fixes for postprocess_standard_p*.shader
Compiled core shader resources with DX11 & Vulkan blocks
Compiled base shaders (spirv only)
Remove device extension entrypoints & add volkLoadDevice
Fix crash when minimzing with a fake swapchain when swapchain extents are 0,0 - higher level code assumes there is always a valid HRenderTexture
[squash] more parity with Valve's code making it easier for future changes
Remove device extension entrypoints & add volkLoadDevice
Fix crash when minimzing with a fake swapchain when swapchain extents are 0,0 - higher level code assumes there is always a valid HRenderTexture
New rendersystemvulkan & vfx_vulkan
Shader resource v2 has dxbc and spirv blocks, if a block doesn't exist will use a fallback shader
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
[pick] GetShaderFullPath: remove shader replacements and legacy prefix substitutes
[pick] Minor shader fixes where DXC is more strict about you being stupid
Tag rendersystem for Sentry
Use compute shader for bloom on Vulkan & fix uav barriers
[temp] Disable crashing water so I can stabilize everything else first
[squash] rendersystemvulkan: fix minor deprecated warnings
[squash] rendersystemvulkan: Match renderthreadvulkan changes 1:1 w/ Valve
[pick] compile fixes for postprocess_standard_p*.shader
Compiled core shader resources with DX11 & Vulkan blocks
Compiled base shaders (spirv only)
Use compute shader for bloom on Vulkan & fix uav barriers
Fix visualize_depth shader
Disable crashing water so I can stabilize everything else first
Fix minor deprecated warnings
Tag rendersystem for Sentry
Remove FSR / Passthrough
Fix weird classes shit in shaders
Fix tiled light builder (fucked on master too????)
this shader include is so fucked, work around it
New rendersystemvulkan & vfx_vulkan
Shader resource v2 has dxbc and spirv blocks, if a block doesn't exist will use a fallback shader
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
GetShaderFullPath: remove shader replacements and legacy prefix substitutes
Minor shader fixes where DXC is more strict about you being stupid
Compiled core shader resources with DX11 & Vulkan blocks
Compiled base shaders
missed rubikon and navlib for threadpool api updates
New tier0 thread pooling code, should schedule better with less contention, slightly changed API
Lots of API changes here I've replicated to the rest of our code base,
I'd imagine I've fucked at least one thing up though.
Functor jobs are replaced by IThreadPool::QueueJob(WithFlags) which
accepts a std::function, much simpler to use and execute
Delete all this saverestore shit
remove convars: cl_team, cl_class, (versus_)stats_highlight_interval
make antlr codegen more sane, hopefully fixes it on build server
Delete generate_decal_normals.vmat
New rendersystemvulkan & vfx_vulkan
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
GetShaderFullPath: remove shader replacements and legacy prefix substitutes
Shader fixes where DXC is slightly less forgiving on bad syntax (has a bad hack for material api in it)
Rip up Material API to get it compiling
Shader resource v2 has optional dx11 and vulkan blocks, if a block doesn't exist will use fallback shader
New rendersystemvulkan & vfx_vulkan
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
[temp] don't mount any asset.party shaders
GetShaderFullPath: remove shader replacements and legacy prefix substitutes
Shader fixes where DXC is slightly less forgiving on bad syntax (has a bad hack for material api in it)
Rip up Material API to get it compiling
Initialize lightShades so we don't get undefined behaviour when summing them, should still be mostly stubbed out by the compiler anyway if shadingmodel doesn't use it
Latest compiled shaders
New rendersystemvulkan & vfx_vulkan
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
[temp] don't mount any asset.party shaders
GetShaderFullPath: remove shader replacements and legacy prefix substitutes
Shader fixes where DXC is slightly less forgiving on bad syntax (has a bad hack for material api in it)
Rip up Material API to get it compiling
Initialize lightShades so we don't get undefined behaviour when summing them, should still be mostly stubbed out by the compiler anyway if shadingmodel doesn't use it
Latest compiled shaders
Initialize lightShades so we don't get undefined behaviour when summing them, should still be mostly stubbed out by the compiler anyway if shadingmodel doesn't use it
Material API: Only use ShadingModelValveStandard, abstract classes aren't supported in newer versions of HLSL
Remove some unused bullshit from material API
Backport -vulkan_enable_sync_validation and other misc validation code
Revert Material API hack which was stubbing all funcs
Fix projected_sheet_decals
More backports, mainly clamping render area still
Refactor out VK_IMAGE_LAYOUT_GENERAL dead optimization for nv
Make sure renderArea always has positive offsets and clamp to the framebuffer
Recompiled all shader
misc swapchain fixes
-fvk-invert-y for built in shaders too (resolve shader)
cs_volumetric_fog shader recompiled with proper reflection
objecthighlight shader (weird folder?)
Recompiled core shaders (except projected_sheet_decals & visualize_depth)
Fix WebPanelTest throwing NRE in debugger
do reflection on the built-in shaders so we bind the samplers/textures on them properly
Delete IVfx::GetAllShaderVariables, only used for dynamic shader compiles and saves me implementing it for Vulkan for no reason
.editorconfig changes to match Valve coding style better
Make dxc include handler work with sub dirs
GetShaderFullPath: remove shader replacements and legacy prefix substitutes
Fix HLSL lexer rules interpreting some vars as float literals and failing lexing
Assert if spirv-reflect fails
Update spirv-reflect as it was failing with some issues from 2019 :x
directional_ao.shader: fix ambiguous reference to 'i'
Compiled base shaders
Compiled spritecard.shader
Fix debug param name being uninitialized
Update Vulkan SDK + Volk
Stub old vrad3-gpu, incompatible from using beta vk headers
rendersystemvulkan: fix raytracing being required, remove VK_EXT_debug_report for VK_EXT_debug_utils
vfx_vulkan HLSL compiler using dxc and spirv-tools; rendersystem_vulkan support for how dxc does $Globals / register offsets
Sam's shader changes, most of this should just go to master now
vfx_vulkan: compatability with shadergraph
vfxcompile: display shader compile time in ms
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
vfx_vulkan sets correct offsets & more reflection info for compute shaders, refactor rendersystemvulkan to use valve's new helpers, bump max samplers to 64, loads of other fixes
spir-v remapper (size reduction)
Use Vulkan 1.1 if avaliable to resolve VK_ERROR_INCOMPATIBLE_DRIVER, use Vulkan 1.2 when raytracing is avaliable
Fix invalid command buffer in CRenderContextVulkan::ApplyDelayedChanges()
[temp] don't mount any asset.party shaders
vr_lighting.fxc: need explicit sampler lod as used from vs
better logging & timeout for when the swapchain hangs, which it shouldn't be, but lets you know wtf is going on
Update vfxcompile, less mpi shit, simpler parallel processing loop
Reuse DXC instances per compiler (I think having 1 per thread would be more optimal), clean up the DxcIncludeHandler
Update DXC, some memory allocator fixes
IMalloc wrapper for our memory alloc to pass to DXC
Latest compiled shaders
Use Vulkan 1.1 if avaliable to resolve VK_ERROR_INCOMPATIBLE_DRIVER, use Vulkan 1.2 when raytracing is avaliable
Fix invalid command buffer in CRenderContextVulkan::ApplyDelayedChanges()
[temp] don't mount any asset.party shaders
vr_lighting.fxc: need explicit sampler lod as used from vs
better logging & timeout for when the swapchain hangs, which it shouldn't be, but lets you know wtf is going on
Update Vulkan SDK + Volk
Stub old vrad3-gpu, incompatible from using beta vk headers
rendersystemvulkan: fix raytracing being required, remove VK_EXT_debug_report for VK_EXT_debug_utils
vfx_vulkan HLSL compiler using dxc and spirv-tools; rendersystem_vulkan support for how dxc does $Globals / register offsets
Sam's shader changes, most of this should just go to master now
vfx_vulkan: compatability with shadergraph
vfxcompile: display shader compile time in ms
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
Add -renderdoc cli option for early renderdoc hooking
Don't needlessly set g_TransformBuffer or g_TiledLightBuffer on Submit, already set on init
vfx_vulkan sets correct offsets & more reflection info for compute shaders, refactor rendersystemvulkan to use valve's new helpers, bump max samplers to 64, loads of other fixes
spir-v remapper (size reduction)
Compiled most shaders (including complex)