Skip to content

fix(dx11): geometry shader Pointlight used wrong world identity matrix, fixed-function batching & pipeline state caching, ... - #478

Merged
kirides merged 15 commits into
masterfrom
fix/dx11-geometry-shader-shadows
Aug 18, 2026
Merged

fix(dx11): geometry shader Pointlight used wrong world identity matrix, fixed-function batching & pipeline state caching, ...#478
kirides merged 15 commits into
masterfrom
fix/dx11-geometry-shader-shadows

Conversation

@kirides

@kirides kirides commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Fix incorrect pointlight shadows when "Use Layered Rendering" is off
seems to be the default on NVidia GPUs, they don't provide support for VPAndRTArrayIndexFromAnyShaderFeedingRasterizer.

Prior refactoring have broken the identity matrix upload for world mesh, causing flickering shadows.
Also other issues in the same path

  • fix DrawSkeletalMeshVob which didnt bind correct textures for cubemap passes.
  • fix incorrect shader input layout for VS_ExNodeCube. used packed layout, but actually needs unpacked

Additional changes:

  • share LineRenderer code between Dx11 and Dx12
  • dx11: implement vertex-ring buffer for fixed-function string/inventory rendering
  • dx11: implement 2d texture batching in fixed-function pipeline to reduce texture re-binds
  • dx11: implement state cache D3D11PipelineStateCache which caches the last known states for some parts of the engine, to reduce unnecessery state-changes
    • ID3D11InputLayout
    • ID3D11VertexShader
    • ID3D11PixelShader
    • D3D11_PRIMITIVE_TOPOLOGY
  • dx11: log support for VPAndRTArrayIndexFromAnyShaderFeedingRasterizer
  • dx11: DrawWorldAround & DrawWorldAround_Layered now also frustum-cull the world section meshes instead of just rendering the whole section
  • dx11: DrawWorldAround introduce ignoreVob support like we already have in layered path.
  • dx11: DrawWorldAround uses packed-wrapped world mesh for drawing now, instead of re-binding vertex buffers.

@kirides kirides changed the title fix(dx11): geometry shader Pointlight used wrong world identity matrix fix(dx11): geometry shader Pointlight used wrong world identity matrix, fixed-function batching & pipeline state caching, ... Aug 18, 2026
@kirides
kirides merged commit 1527e14 into master Aug 18, 2026
24 checks passed
@kirides
kirides deleted the fix/dx11-geometry-shader-shadows branch August 18, 2026 10:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant