You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For example:
My vertex shader use cbuffer 'A' it get assign to register b0. At the same time, my pixel shader use cbuffer 'B' and after compilation it get assign to the same register b0.
As i can see, in order to resolve the collision i have a few options.
1.) use old school binding model. One descriptor table per stage ( VS / PS... ) with D3D12_SHADER_VISIBILITY flag.
2.) explicit register assignment in HLSL ( : register( b0 )... etc ). One descriptor table for all stages.
3.) bindless rendering
IMHO, all three is not a option for me.
So, the question is. Is there anyway to compile HLSL for specific shader stage with regards to previous shader stage inorder to resolve register collision?
My vertex shader use cbuffer 'A' it get assign to register b0. When time gets to compile pixel shader, somehow to pass to compiler a memory blob from previous stage, then cbuffer 'B' will get assign to the next free register b1 in my case.
In this case, i can put all my handles in one descriptor table for all stages.
Thanks,
The text was updated successfully, but these errors were encountered:
For example:
My vertex shader use cbuffer 'A' it get assign to register b0. At the same time, my pixel shader use cbuffer 'B' and after compilation it get assign to the same register b0.
As i can see, in order to resolve the collision i have a few options.
1.) use old school binding model. One descriptor table per stage ( VS / PS... ) with D3D12_SHADER_VISIBILITY flag.
2.) explicit register assignment in HLSL ( : register( b0 )... etc ). One descriptor table for all stages.
3.) bindless rendering
IMHO, all three is not a option for me.
So, the question is. Is there anyway to compile HLSL for specific shader stage with regards to previous shader stage inorder to resolve register collision?
My vertex shader use cbuffer 'A' it get assign to register b0. When time gets to compile pixel shader, somehow to pass to compiler a memory blob from previous stage, then cbuffer 'B' will get assign to the next free register b1 in my case.
In this case, i can put all my handles in one descriptor table for all stages.
Thanks,
The text was updated successfully, but these errors were encountered: