-
Notifications
You must be signed in to change notification settings - Fork 85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hey #9
Comments
I don't know where can this issue come from, as resource states are tracked per resource, not per memory heap where they are placed. The message says the resource state has been automatically promoted from COMMON to NON_PIXEL_SHADER_RESOURCE and then used as UAV. Please try to explicitly transition it to UNORDERED_ACCESS state before using it for the compute dispatch and see if it helps. It is also possible that the validation layer has bugs. You can capture a frame using PIX and see what barriers, draw calls, and dispatches are executed that use this texture to figure out whether there is really something wrong with its state or it is a false alarm. |
there was one shader that was reading from uav, i have made it srv and the warning went away, It is in CollideHairVerticesWithSdf_forward from the tressfx sample. HairVertices buffer which is expected to be RW Also something else. If make allocations with ALLOCATION_FLAG_COMMITTED i still get the warning however if I force CalcDefaultPoolIndex to return UINT32_MAX they stop. I am on AMD 5700 XT On the cpu side everything is correct no warnings from validation, may be there is a memory aliasing any clue will be helpful. I have not seen such a warning before from DX12. D3D12 MESSAGE: GPU-BASED VALIDATION: TRACE BEGIN: BoneSkinningUpdate [ EXECUTION MESSAGE #1014: BEGIN_EVENT] |
Does your application work correctly despite these errors reported by the validation? Returning UINT32_MAX from CalcDefaultPoolIndex causes allocation of all the resources as committed. If you suspect memory aliasing, please use Allocator::BuildStatsString to get JSON dump with the list of all allocations, their offsets and sizes. You can then validate whether they overlap. But I think this is very unlikely. |
ok, will try. it works correctly on pc.
…On Wed, 21 Oct 2020 at 17:47, Adam Sawicki ***@***.***> wrote:
Does your application work correctly despite these errors reported by the
validation?
Returning UINT32_MAX from CalcDefaultPoolIndex causes allocation of all
the resources as committed.
If you suspect memory aliasing, please use Allocator::BuildStatsString to
get JSON dump with the list of all allocations, their offsets and sizes.
You can then validate whether they overlap. But I think this is very
unlikely.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#9 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAIXS4NL4NAIWO6JPXUKNJTSL3X7XANCNFSM4SZXOSUQ>
.
|
It may be a bug in the validator with the placed resources and placed resources that you supply virtual addresses directly in the root signature constant. i will confirm this and will reopen if there is something. |
I'm also getting a similar issue, but with no adverse side-effects that I've seen in my application. Always returning UINT32_MAX to force committed resources in AllocatorPimpl::CalcDefaultPoolIndex(...) suppresses these issues (or non-issues, it would seem). |
With the memory allocator there are some issues from the gpu based validator.
there is an uav which runs fine on the gpu, however i get warnings in the validator.
They do not happen on the cpu validator.
If i use only committed memory, there are no such errors.
I am looking where this may come from
D3D12 ERROR: GPU-BASED VALIDATION: Dispatch, Incompatible resource state: Resource: 0x000002BA10D56500:'Unnamed ID3D12Resource Object', Subresource Index: [0], Root descriptor type: UAV, Resource State: D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE(0x40) (Promoted from COMMON state), Shader Stage: COMPUTE, Root Parameter Index: [2], Dispatch Index: [21], Shader Code: <couldn't find file location in debug info>, Asm Instruction Range: [0xa-0xffffffff], Asm Operand Index: [0], Command List: 0x000002BA10951520:'CommandList 2, Allocator 0', SRV/UAV/CBV Descriptor Heap: 0x000002BA10693200:'StaticHeapDX12', Sampler Descriptor Heap: 0x000002BA10696300:'StaticHeapDX12', Pipeline State: 0x000002BA4D5C6A00:'TressFXSDFCollision.hlslCollideHairVerticesWithSdf_forward', [ EXECUTION ERROR #942: GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE]
The text was updated successfully, but these errors were encountered: