Skip to content

[Runtime Bug]: Taking a capture when a mesh is being drawn by the remixAPI will result in a crash #671

Open
@xoxor4d

Description

@xoxor4d

Describe the bug

Taking a game capture when a mesh is being drawn by the remixApi will result in a crash in GameCapturer::captureMaterial.

It seems like the material of the api mesh is being interpreted as a LegacyMaterial and does not contain a valid
colorTexture pointer. Thus, materialData.getColorTexture().getImageView()->image() will access a nullptr and throw an assert:

https://github.com/NVIDIAGameWorks/dxvk-remix/blob/86269785f17a8151aea058bfbdb480d27bf2eaa9/src/dxvk/rtx_render/rtx_game_capturer.cpp#L493C31-L493C43

Screenshot 2024-10-30 143505

The meshes I've tried this with had no albedo texture assigned (simple emissive prims and rayportal's)

Note:

I've created a PR with a band-aid fix preventing api meshes from being captured:
NVIDIAGameWorks/dxvk-remix#82


How do you reproduce the bug?

  1. Create a material, a mesh and then draw it via the remixApi (only tested on x86 through the bridge)
  2. Take a game capture

What is the expected behavior?

Turning off replacements should also turn off meshes drawn via the api OR they should not be interpreted as legacy meshes

Version

latest

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingjiraA jira ticket existsruntimeRTX Remix runtime

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions