-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Fix Error: Couldn't import RGB Image: 00003002 and 00003004 #761
Conversation
Your PR was set to |
Is it possible this fixes #453 as well? I'll give it a try later |
I just tested the fix, and I can confirm that this fixes both #373 and #453 (00003002 and 00003004 respectively) Test environmentOS: EndeavourOS Linux x86_64 What works
What does not work
The error lies somewhere between line 477 and 532
|
This fixes #453 for me too. For the first time ever I can screencast with KMS under wayland on Nvidia EDIT: Actually I also get the "Error: GL:" and a black screen for the client, but at least is now initialises which it did not do before. |
The graphics.cpp Error: GL: problem is reported in #404 |
What error do you get? 00000501 (GL_INVALID_VALUE) like Deytron or 00000502 (GL_INVALID_OPERATION) as in #404? Looks like calls to:
can cause these errors. Conditions for these Errors are documented in https://registry.khronos.org/OpenGL-Refpages/gl4/. I don´t have a nvidia gpu, so i cannot reprduce it. Screencasting works just fine on my amd card now. |
You're right I didn't notice the difference. I get 00000501 like Deytron above. |
I will be able to investigate in the following week, I'll keep you updated |
Running this as a flatpak on fedora silverblue 37 fixed #453 but as Deytron said, I'm getting a black screen on the client. I can control the keyboard/mouse and hear audio but just no video feedback. I'm also constantly getting
in my terminal, around 10 times a second. |
I don't know if this will help much, but here's some debugging I did :
|
For reference, #649 should have fixed the GL errors, but it didn't fix it on my end |
a93c13a
to
9a34e8e
Compare
Am I correct in that this solves 00003002, and only removes the error for 00003004? |
I can't say for 00003002 as I've never had that issue but on a wayland + nvidia setup it does remove the error 00003004 and for the first time I can initialize the stream. The video stream itself doesn't work how it should but everything else does (audio and input capture). |
Yes, this is correct, both 0003002 and 00003004 are solved. I guess we should open a new issue concerning the new GL error. |
Created issue #838 for further investigation and better tracking |
I think this fix should be merged. At least the behaviour is better than it was. |
9a34e8e
to
746aa44
Compare
Description
surface_descriptor_t::fds (graphics.h) did not get properly initialized in platf::kms::display_t::refresh.
That resulted in egs::import_source reading values from uninitialized variable/array elements from surface_descriptor_t and passing them to eglCreateImage.
eglCreateImage then fails with error code 3002 (EGL_BAD_ACCESS) (see https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt)
This fix ensures that surface_descriptor_t::fds does not contain uninitialized array elements after a successfull call to platf::kms::dislplay_t::refresh. Elements corresponding to invalid handles get set to -1.
That way the check that was already in place in egs::import_source
fd < 1
(line 490 graphics.h) properly prevents passing invalid/unsupported/unwanted attributes to eglCreateImage. This check was basically dead code before this fix.Issues Fixed or Closed
Type of Change
.github/...
)Checklist
Branch Updates
LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.