Skip to content

Bone matrices are silently dropped on both DX backends #170

Description

@CanReader

src/Graphics/Common/RenderCommands.cpp:78-79; include/private/Graphics/Common/RenderContext.hpp:87

RenderCommands.cpp:78-79 routes slot-3 constant buffers to BindBoneBuffer instead of
BindConstantBuffer. BindBoneBuffer has a no-op default body (RenderContext.hpp:87) and is overridden
only by the GL and Vulkan renderers.

So DX11/DX12 do not merely skip a fast path: they never bind the bone constant buffer at all. Every skinned
mesh renders with whatever is stale in slot 3.

This is a Common-layer defect: the dispatch decision is made in backend-agnostic code that assumes an
override exists.

Severity: visual (all skeletal animation broken on DX).

Found by a full audit of the graphics layer. Assessed severity: visual.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: renderingRenderer, shaders, post processingbackend: dx11Specific to the dx11 backendbackend: dx12Specific to the dx12 backendbackend: openglSpecific to the opengl backendbackend: vulkanSpecific to the vulkan backendbugSomething isn't workingpriority: mediumWorth doing, not urgentvisualIncorrect or degraded rendering output

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions