Search Issue Tracker

By Design

Votes

1

Found in

6000.0.60f1

6000.2.8f1

6000.3.0b6

6000.4.0a2

Issue ID

UUM-122600

Regression

No

CommandBuffer.DrawProcedural fails to render when RenderGraph and Metal Graphics API are enabled

-

How to reproduce:
1. Open the ‘GraphDrawProceduralIssue.zip' project
2. Navigate to Project settings → Graphics → Render Graph and enable Render Graph
3. Observe the GameView

Expected result: The triangle is rendered with Render Graph turned on
Actual result: The triangle is not rendered with Render Graph turned on

Reproducible with: 2023.3.0a16, 6000.0.60f1 (61dfb374e36f), 6000.2.8f1 (c9992ac36c34), 6000.3.0b6 (211490bb75a6), 6000.4.0a2 (79bd4f638ac0)
Could not test with: 2023.1.0a1 (Unresolvable console errors)

Reproducible on: macOS 26.0.1 (M1 Max), Windows 11
Not reproducible on: No other environments tested

  1. Resolution Note:

    When using an UnsafePass, you must specify which RenderTarget attachment you are rendering to. 

    Instead of doing this:
    ```
    builder.UseTexture(resourceData.activeColorTexture, AccessFlags.ReadWrite);
    builder.UseTexture(resourceData.activeDepthTexture, AccessFlags.ReadWrite);
    ```

    You should do:
    ```
    builder.SetRenderAttachment(resourceData.activeColorTexture, 0, AccessFlags.Write);
    builder.SetRenderAttachmentDepth(resourceData.activeDepthTexture, AccessFlags.ReadWrite);
    ```

    Alternatively, you could continue using the UseTexture functions, but you would need to use context.cmd.SetRenderTarget to specify the RenderTarget attachment.

    Validated on D3D12 and Vulkan, it fixes the described problem.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.