35 Commits over 89 Days - 0.02cph!
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)
Proper cleanup in CompileShader
Compute shaders work
Add -renderdoc cli option for early renderdoc hooking
Up shader file version
Command buffer access cleanup, debug marker fixes
Don't needlessly set g_TransformBuffer or g_TiledLightBuffer on Submit, already set on init
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, need to review; shouldn't need to change this much probbly hiding issues with vfx_vulkan
Yank away solidcolor, seems only old glow used it
Fix warnings and errors in vfx compilation for vulkan
Fix projected_decals crashing shader compiler
Discard packoffset conflicts on vulkan, we don't care about code path, fix conficts on convolve envmap
Remove generate_decal_normals
Temp fix DXC not interpreting ShadingModel interface correctly
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
[hack] manually adjusting some vs register offsets to get shit working
fix uninitialized memory crash
vk debug utils in memorymgr
commit compiled spirv libs
hlsl_parser: strip D3D9 const defs
hlsl_parser: remove d3d9 and opengl register allocation modes, remove glsl wrappers
rendersystemvulkan: add missing debug utils check
initialize these hlsl string variables so dxc likes them
fix vulkan shader errors
vfx_vulkan: baseline compiler using dxc and spirv-reflect, no glslang shit, still using legacy d3d preprocess
Use DXC shader names MainVs, MainPs etc in vulkan pipeline
rendersystemvulkan: remove VK_EXT_debug_report completely to remove confusion with VK_EXT_debug_utils
vfx_vulkan: serialize reflection info in compiled shader
Update descriptor set bindings for HLSL -> SPIR-V
Update Vulkan SDK + Volk so we can have VK_EXT_graphics_pipeline_library
volk.c: restore valve platform defines
fix rendersystemvulkan requiring raytracing extension
Hidden uav counters work on pixel shaders
Update descriptor sets for new descriptor types & binding offsets from hlsl->spirv
rendercontexts set associated thread index from RenderSystem_GetThreadIndex() instead of Plat_GetThreadIndex(), this avoids counting non-rendering threads keeping us well within our MaxDeviceAccessThreads
Cleanup, small fixes, kill some dead code vulkan_async_descriptors
Yank away solidcolor, seems only old glow used it
Fix warnings and errors in vfx compilation for vulkan
Fix projected_decals crashing shader compiler
Discard packoffset conflicts on vulkan, we don't care about code path, fix conficts on convolve envmap
Haha it'd be helpful if we actually call this method that sets all the shader param data. Now samplers actually get bound and we're rendering
Forgot to commit this amongst debug crap
Remove generate_decal_normals
If we didn't find error shader don't bother trying to find a fallback you wouldn't get, just remove the layer, allows us to compile shaders from scratch with everything removed
Don't use d3dcompiler helpers on vulkan DXC compiler, fix hlsl processor handling of include files
Temp fix DXC not interpreting ShadingModel interface correctly
[debug] disable fast descriptor set updates, much easier to debug shit that isn't being bound properly
spirv-tools, spvremapper libs compiled to work with source 2
vfx_vulkan: post process with spirv-opt, need to do reflection after dead code removal otherwise materialsystem will try to bind invalid buffers
stub out old vrad3 gpu code erroring from new vulkan headers
backport new vulkan memory manager with support for BDA
materialsystem2 support for BDA
vfx_vulkan: add $Globals rewriting (without BDA), binding shifts after postprocess
[temp] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
reenable fast extension for descriptor updates now that everything is binding properly
vfx_dx11: fix compile errors with fxc shader compiler
[debug] disable fast descriptor set updates, much easier to debug shit that isn't being bound properly
spirv-tools, spvremapper libs compiled to work with source 2
vfx_vulkan: post process with spirv-opt, need to do reflection after dead code removal otherwise materialsystem will try to bind invalid buffers
Don't use d3dcompiler helpers on vulkan DXC compiler, fix hlsl processor handling of include files
Temp fix DXC not interpreting ShadingModel interface correctly
Remove generate_decal_normals
If we didn't find error shader don't bother trying to find a fallback you wouldn't get, just remove the layer, allows us to compile shaders from scratch with everything removed
hlsl_parser: strip D3D9 const defs
hlsl_parser: remove d3d9 and opengl register allocation modes, remove glsl wrappers
rendersystemvulkan: add missing debug utils check
initialize these hlsl string variables so dxc likes them
fix vulkan shader errors
vfx_vulkan: baseline compiler using dxc and spirv-reflect, no glslang shit, still using legacy d3d preprocess
Use DXC shader names MainVs, MainPs etc in vulkan pipeline
rendersystemvulkan: remove VK_EXT_debug_report completely to remove confusion with VK_EXT_debug_utils
vfx_vulkan: serialize reflection info in compiled shader
Update descriptor set bindings for HLSL -> SPIR-V
Update Vulkan SDK + Volk so we can have VK_EXT_graphics_pipeline_library
volk.c: restore valve platform defines
fix rendersystemvulkan requiring raytracing extension
Hidden uav counters work on pixel shaders
Update descriptor sets for new descriptor types & binding offsets from hlsl->spirv
rendercontexts set associated thread index from RenderSystem_GetThreadIndex() instead of Plat_GetThreadIndex(), this avoids counting non-rendering threads keeping us well within our MaxDeviceAccessThreads
Cleanup, small fixes, kill some dead code vulkan_async_descriptors
Yank away solidcolor, seems only old glow used it
Fix warnings and errors in vfx compilation for vulkan
Fix projected_decals crashing shader compiler
Discard packoffset conflicts on vulkan, we don't care about code path, fix conficts on convolve envmap
Haha it'd be helpful if we actually call this method that sets all the shader param data. Now samplers actually get bound and we're rendering
Forgot to commit this amongst debug crap
Haha it'd be helpful if we actually call this method that sets all the shader param data. Now samplers actually get bound and we're rendering
Fix projected_decals crashing shader compiler
Discard packoffset conflicts on vulkan, we don't care about code path, fix conficts on convolve envmap
Yank away solidcolor, seems only old glow used it
Fix warnings and errors in vfx compilation for vulkan
hlsl_parser: strip D3D9 const defs
hlsl_parser: remove d3d9 and opengl register allocation modes, remove glsl wrappers
rendersystemvulkan: add missing debug utils check
initialize these hlsl string variables so dxc likes them
fix vulkan shader errors
vfx_vulkan: baseline compiler using dxc and spirv-reflect, no glslang shit, still using legacy d3d preprocess
Use DXC shader names MainVs, MainPs etc in vulkan pipeline
rendersystemvulkan: remove VK_EXT_debug_report completely to remove confusion with VK_EXT_debug_utils
vfx_vulkan: serialize reflection info in compiled shader
Update descriptor set bindings for HLSL -> SPIR-V
Update Vulkan SDK + Volk so we can have VK_EXT_graphics_pipeline_library
volk.c: restore valve platform defines
fix rendersystemvulkan requiring raytracing extension
Hidden uav counters work on pixel shaders
Update descriptor sets for new descriptor types & binding offsets from hlsl->spirv
rendercontexts set associated thread index from RenderSystem_GetThreadIndex() instead of Plat_GetThreadIndex(), this avoids counting non-rendering threads keeping us well within our MaxDeviceAccessThreads
Cleanup, small fixes, kill some dead code vulkan_async_descriptors
rendersystemvulkan: remove VK_EXT_debug_report completely to remove confusion with VK_EXT_debug_utils
vfx_vulkan: serialize reflection info in compiled shader
Update descriptor set bindings for HLSL -> SPIR-V
hlsl_parser: strip D3D9 const defs
hlsl_parser: remove d3d9 and opengl register allocation modes, remove glsl wrappers
rendersystemvulkan: add missing debug utils check
initialize these hlsl string variables so dxc likes them
fix vulkan shader errors
vfx_vulkan: baseline compiler using dxc and spirv-reflect, no glslang shit, still using legacy d3d preprocess
Use DXC shader names MainVs, MainPs etc in vulkan pipeline