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
RenderTexture not working on Intel GPUs #101
Comments
Most likely because Intel's gpus totally suck. Their version of OpenGL is always seriously outdated. I'd sooner use my 6 year old AMD integrated (which runs that example fine) rather than the latest and greatest intel gpu. |
Some people use notebooks and laptops with integrated video cards since they usually don't need a dedicated one. Intel does have a bad reputation for making crappy integrated GPUs, but still this is not the reason to say "your choice is wrong" to a big share of users. |
Well technically... STRICTLY technically... their choice is wrong =) Anyway the problem is that it's an error generated inside the drivers from intel so SFML can do nothing. I don't have a perfect vision of how SFML works internally but I guess if the render texture is not available in OpenGL SFML provides a kind of slow backup done on the CPU right? That could be used I guess in case the user has an intel GPU. Just an idea for Laurent. So as I said, technically their choice is wrong since they bought something half-made =) |
Anyway, I think it's best if Laurent will say for sure whether this is fixable or not. |
The standard OpenGL method for render textures is by using an FBO. Intel doesn't support FBO's, therefore all Laurent has to do is add alternate code for Intel using Pixel Buffers or software rendering. It's easier said than done. |
It would be interesting to know if the problem comes from the Linux driver, if someone can test on Windows... |
@bastienleondard - I use windows myself and I've encountered this issue numerous times before, so its not platform-specific. |
Sad to know.
I guess that doesn't worth that much effort. Now I just want to know what Laurent will say about that to finally close the issue. |
There is an alternative to FBO in SFML (not PBO, they are a different thing), otherwise sf::RenderTexture::IsAvailable() wouldn't have disappeared ;) By the way, does commenting line 236 of Renderer.cpp solve the problem? |
You mean the following line?
I commented it and rebuilt the project. No change, still the black screen. And if I launch my game (after rebuilding it, of course), it hangs significantly, not even allowing to shut it down properly. Previously, it just silently displayed nothing, now there is a hang also :) Laurent, is there any chance of this issue to be solved? |
I don't know. I'll work on RenderTexture to make it more robust, but if this is purely a driver issue... I don't know if I can help. |
I'd just like to say that Intels newest drivers no long have this problem. so its no longer a bug :) |
Good news indeed! I will try updating the driver on my GNU/Linux machine which has Intel graphic card to see it with my own eyes. I am sorry for pointing out that this was an SFML bug, because it seems, as expected, that Intel is the one to blame. Yet this issue has shown that not every graphic card will handle everything as smooth as the developer planned. Hopefully, now there is one problem less. I'll post here once I run the test once again, with drivers updated and the newest SFML. |
Can you please tell us which drivers (version, OS)? I don't think that it's fixed on all drivers ;) |
my details. |
I will be testing this myself within a few days/weeks, but I noticed there is a newer driver on the intel site. I have seen conflicting information about the intel gma's support of FBO's. |
Little update on this issue; So i suppose... Window.Draw(sf::Sprite(sf::Texture(RendText.GetTexture())); will work? (havent tested this yet) |
On our project, we have 3 people with Intel GPUs and using newest drivers. (2x Gentoo, 1x Arch Linux). We tried nailing it down. It seems, only creating a RenderTexture and using its create function is sufficient to induce the crash. |
Someone found that using power-of-two dimensions for the RenderTexture solved his problems. |
Just like to chip in that I'm running on an Ubuntu 12.04 box with an Intel GPU using kernel driver i915 and I'm having the same crash to terminal with intel_do_flush_lock error the second I try to call RenderTexture's create. Doesn't work no matter what width or height I use. |
Solved. More details here: |
Hello.
I found a bug that occurs on all Intel GPU systems.
Any kind of RenderTexture usage causes the program to display black screen, no matter how big your RenderTexture is.
This is the minimal code:
On machines with Intel GPUs this produces black screen. But on machines with other GPUs a red triangle on a black background is seen clearly.
The same problem can be also reproduced using the pong example. Just add the following line in the beginning of the program:
Even adding these two lines (without modifying anything else) produces black screen on Intel GPU machines.
This issue makes playing games which use RenderTexture for drawing entirely impossible on afore-mentioned configurations.
I am using the latest SFML2 build, and all the machines I tested this issue on run Ubuntu 11.10
The text was updated successfully, but these errors were encountered: