-
Notifications
You must be signed in to change notification settings - Fork 479
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
[OpenGL] Replay issue with glUniformHandleui64ARB #911
Labels
Comments
baozholu
changed the title
Replay issue with glUniformHandleui64ARB
[OpenGL] Replay issue with glUniformHandleui64ARB
Mar 28, 2024
I captured a trace using AMD Radeon RX 7900, if using current apitrace to replay this trace on NV GPU or old ASIC AMD GPU, will observe a black window. if modify the apitrace with above patch, then replay, will observe a blue square inside the black window. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The return handle of glGetTextureHandleARB will differ between different vender/ASIC GPUs, current apitrace uses a _textureHandle_map and _imageHandle_map to store the original handle (Obtained during trace) and the new handle (Obtained during replay), but apitrace still uses the original handle when replaying the glUniformHandleui64ARB call, it should find the new handle through the _textureHandle_map and _imageHandle_map, then use it in glUniformHandleui64ARB.
Extension: GL_ARB_bindless_texture
All of the following APIs have this issue.
glUniformHandle*
glProgramUniformHandle*
For other APIs in the GL_ARB_bindless_texture extension, they used the _textureHandle_map/_imageHandle_map to store/get the real handle during replay
glGetTextureHandle*
glGetTextureSamplerHandle*
glGetImageHandle*
glMakeTextureHandle*
glMakeImageHandle*
So we should find the new handle through the _textureHandle_map/_imageHandle_map and use it in glUniformHandle and glProgramUniformHandle, just like glMakeTextureHandle and glMakeImageHandle does
The text was updated successfully, but these errors were encountered: