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

Add support for geometry shaders #886

Merged
merged 2 commits into from Feb 19, 2016

Conversation

Projects
None yet
7 participants
@binary1248
Member

binary1248 commented May 11, 2015

Implements #428.

@binary1248 binary1248 self-assigned this May 11, 2015

@binary1248 binary1248 added this to the 2.4 milestone May 11, 2015

@binary1248

This comment has been minimized.

Show comment
Hide comment
@binary1248

binary1248 May 11, 2015

Member

Reported issues should be fixed now, along with a few other things I missed.

Member

binary1248 commented May 11, 2015

Reported issues should be fixed now, along with a few other things I missed.

@binary1248

This comment has been minimized.

Show comment
Hide comment
@binary1248

binary1248 Oct 2, 2015

Member

Rebased. Needs review and testing.

Member

binary1248 commented Oct 2, 2015

Rebased. Needs review and testing.

@eXpl0it3r

This comment has been minimized.

Show comment
Hide comment
@eXpl0it3r

eXpl0it3r Oct 25, 2015

Member

@Mrowqa could you give this a try?

Member

eXpl0it3r commented Oct 25, 2015

@Mrowqa could you give this a try?

@Mrowqa

This comment has been minimized.

Show comment
Hide comment
@Mrowqa

Mrowqa Oct 25, 2015

Contributor

@eXpl0it3r well, I don't have much time these days, but if no one would review and test this, then I'll try find some time within some next days.

Contributor

Mrowqa commented Oct 25, 2015

@eXpl0it3r well, I don't have much time these days, but if no one would review and test this, then I'll try find some time within some next days.

@Mrowqa

This comment has been minimized.

Show comment
Hide comment
@Mrowqa

Mrowqa Nov 14, 2015

Contributor

Hi! Sorry for not responding for so long time. I downloaded repo, merged master with feature/geometry-shader, compiled and tried running examples. I don't know why, but examples close immediately after running them and return 1. I tried recompiling SFML with different settings (static/shared libraries, debug/release, etc) on different branches (master, master merged with feature/geometry-shader) but it always resulted in immediately closing examples. If you want to check this feature fast, I propose finding more reviewers and testers and relying not only on me.

PS if someone needs more details - I tried compiling 32-bit SFML binaries on 64-bit Windows 8.1 machine with gcc version 4.7.1 tdm-1 (the one included in Code::Blocks AFAIR).

Contributor

Mrowqa commented Nov 14, 2015

Hi! Sorry for not responding for so long time. I downloaded repo, merged master with feature/geometry-shader, compiled and tried running examples. I don't know why, but examples close immediately after running them and return 1. I tried recompiling SFML with different settings (static/shared libraries, debug/release, etc) on different branches (master, master merged with feature/geometry-shader) but it always resulted in immediately closing examples. If you want to check this feature fast, I propose finding more reviewers and testers and relying not only on me.

PS if someone needs more details - I tried compiling 32-bit SFML binaries on 64-bit Windows 8.1 machine with gcc version 4.7.1 tdm-1 (the one included in Code::Blocks AFAIR).

@binary1248

This comment has been minimized.

Show comment
Hide comment
@binary1248

binary1248 Nov 14, 2015

Member

If you say that all examples behave like that, you should just wipe your SFML source directory and clone a fresh copy of master from the repository and try again. This PR only affects the Shader example, so the fact that none of the examples work doesn't really offer additional insight into this PR as you said. 😕

Member

binary1248 commented Nov 14, 2015

If you say that all examples behave like that, you should just wipe your SFML source directory and clone a fresh copy of master from the repository and try again. This PR only affects the Shader example, so the fact that none of the examples work doesn't really offer additional insight into this PR as you said. 😕

@Mrowqa

This comment has been minimized.

Show comment
Hide comment
@Mrowqa

Mrowqa Nov 14, 2015

Contributor

Editing comment and checking whether new ones appeared is wrong idea, so I reverted last edition and I'm pasting content here:

Oh, statically linked debug version works (but I don't know why this version works and other not...). I realized that building examples doesn't copy resources for examples (I haven't ran mingw32-make install). All shader examples including geometry shader example work. Code also looks well. If I find my old code when I was using geometry shaders, I'll try also compiling it.

BTW for this PR I specially cloned fresh repo of SFML and immediately merged master with shader/geometry-shader. I also tried compiling HEAD~1 (which was original master) - but result was the same.

Contributor

Mrowqa commented Nov 14, 2015

Editing comment and checking whether new ones appeared is wrong idea, so I reverted last edition and I'm pasting content here:

Oh, statically linked debug version works (but I don't know why this version works and other not...). I realized that building examples doesn't copy resources for examples (I haven't ran mingw32-make install). All shader examples including geometry shader example work. Code also looks well. If I find my old code when I was using geometry shaders, I'll try also compiling it.

BTW for this PR I specially cloned fresh repo of SFML and immediately merged master with shader/geometry-shader. I also tried compiling HEAD~1 (which was original master) - but result was the same.

@binary1248

This comment has been minimized.

Show comment
Hide comment
@binary1248

binary1248 Nov 14, 2015

Member

Why don't you just git checkout this branch? GitHub already tells you here that there are merge conflicts between master and this branch, so I don't see how that could possibly work cleanly.

Member

binary1248 commented Nov 14, 2015

Why don't you just git checkout this branch? GitHub already tells you here that there are merge conflicts between master and this branch, so I don't see how that could possibly work cleanly.

@Mrowqa

This comment has been minimized.

Show comment
Hide comment
@Mrowqa

Mrowqa Nov 14, 2015

Contributor

I solved these merge conflicts locally - they are very easy to do so. But taking into account that clean master has the same problems after compilation and shader examples work when rest of examples also work (statically linked debug compilation mentioned before), then geometry shaders should work.

Contributor

Mrowqa commented Nov 14, 2015

I solved these merge conflicts locally - they are very easy to do so. But taking into account that clean master has the same problems after compilation and shader examples work when rest of examples also work (statically linked debug compilation mentioned before), then geometry shaders should work.

@Bromeon

This comment has been minimized.

Show comment
Hide comment
@Bromeon

Bromeon Nov 29, 2015

Member

@binary1248 can you rebase this onto master? Afterwards, I'd say we all test the code, give last feedback and finally merge the feature :)

Member

Bromeon commented Nov 29, 2015

@binary1248 can you rebase this onto master? Afterwards, I'd say we all test the code, give last feedback and finally merge the feature :)

@select-this

This comment has been minimized.

Show comment
Hide comment
@select-this

select-this Dec 11, 2015

I'm intending to do some work with geometry shaders in the near future, so if you need someone else to test it out I'll be happy to assist.

select-this commented Dec 11, 2015

I'm intending to do some work with geometry shaders in the near future, so if you need someone else to test it out I'll be happy to assist.

@binary1248

This comment has been minimized.

Show comment
Hide comment
@binary1248

binary1248 Dec 24, 2015

Member

Rebased onto master.

Member

binary1248 commented Dec 24, 2015

Rebased onto master.

@Bromeon

This comment has been minimized.

Show comment
Hide comment
@Bromeon

Bromeon Jan 1, 2016

Member

I wanted to test this, but apparently my laptop-integrated Intel HD Graphics 3000 doesn't support geometry shaders 😕

Member

Bromeon commented Jan 1, 2016

I wanted to test this, but apparently my laptop-integrated Intel HD Graphics 3000 doesn't support geometry shaders 😕

@select-this

This comment has been minimized.

Show comment
Hide comment
@select-this

select-this Jan 11, 2016

Looks good to me:

screenshot_2016-01-11_18-58-51

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Juniper XT [Radeon HD 6770]
Ubuntu 15.04
OpenGL version string: 4.4.13374 Compatibility Profile Context 15.20.1013
driver=fglrx_pci

select-this commented Jan 11, 2016

Looks good to me:

screenshot_2016-01-11_18-58-51

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Juniper XT [Radeon HD 6770]
Ubuntu 15.04
OpenGL version string: 4.4.13374 Compatibility Profile Context 15.20.1013
driver=fglrx_pci
@eXpl0it3r

This comment has been minimized.

Show comment
Hide comment
@eXpl0it3r

eXpl0it3r Jan 14, 2016

Member

Seems to work fine here as well. In regards to @Bromeon's comment, if the hardware doesn't support geometry shaders, will it still work fine with the other vertex/fragment shaders?

Member

eXpl0it3r commented Jan 14, 2016

Seems to work fine here as well. In regards to @Bromeon's comment, if the hardware doesn't support geometry shaders, will it still work fine with the other vertex/fragment shaders?

@binary1248

This comment has been minimized.

Show comment
Hide comment
@binary1248

binary1248 Jan 14, 2016

Member

Geometry shaders are purely optional. Everything will work as it did before if they are not available.

Member

binary1248 commented Jan 14, 2016

Geometry shaders are purely optional. Everything will work as it did before if they are not available.

@Bromeon

This comment has been minimized.

Show comment
Hide comment
@Bromeon

Bromeon Jan 14, 2016

Member

Yup, I can confirm that the vertex and fragment shaders in the SFML example worked flawlessly.

Member

Bromeon commented Jan 14, 2016

Yup, I can confirm that the vertex and fragment shaders in the SFML example worked flawlessly.

@eXpl0it3r

This comment has been minimized.

Show comment
Hide comment
@eXpl0it3r

eXpl0it3r Jan 14, 2016

Member

This PR has been added to my merge list, meaning it will be merged soon, unless someone raises any concerns.

Member

eXpl0it3r commented Jan 14, 2016

This PR has been added to my merge list, meaning it will be merged soon, unless someone raises any concerns.

@Mrowqa

This comment has been minimized.

Show comment
Hide comment
@Mrowqa

Mrowqa Jan 15, 2016

Contributor

I made two quick builds - first with everything (SFML and std libs) linked statically in release build type and second using shared libs in debug mode. Shader example worked for me only in the second build while some of other examples worked at both builds. In the first build shader example immediately exits with error code of 1. I made builds on the same machine as previously, so here's quoted spec:

I tried compiling 32-bit SFML binaries on 64-bit Windows 8.1 machine with gcc version 4.7.1 tdm-1 (the one included in Code::Blocks AFAIR).

Contributor

Mrowqa commented Jan 15, 2016

I made two quick builds - first with everything (SFML and std libs) linked statically in release build type and second using shared libs in debug mode. Shader example worked for me only in the second build while some of other examples worked at both builds. In the first build shader example immediately exits with error code of 1. I made builds on the same machine as previously, so here's quoted spec:

I tried compiling 32-bit SFML binaries on 64-bit Windows 8.1 machine with gcc version 4.7.1 tdm-1 (the one included in Code::Blocks AFAIR).

@eXpl0it3r

This comment has been minimized.

Show comment
Hide comment
@eXpl0it3r

eXpl0it3r Jan 16, 2016

Member

If static build failed but shared worked, then it's rather a build issue than a problem with SFML.
Keep in mind that if you haven't check SFML_STATIC_STD_LIB you'd have to provide the runtime DLLs even for your static build.

Member

eXpl0it3r commented Jan 16, 2016

If static build failed but shared worked, then it's rather a build issue than a problem with SFML.
Keep in mind that if you haven't check SFML_STATIC_STD_LIB you'd have to provide the runtime DLLs even for your static build.

@eXpl0it3r eXpl0it3r merged commit 146f638 into master Feb 19, 2016

16 checks passed

debian-gcc-64 Build #73 done.
Details
freebsd-gcc-64 Build #73 done.
Details
osx-clang-universal Build #73 done.
Details
static-analysis Build #73 done.
Details
windows-gcc-471-tdm-32 Build #75 done.
Details
windows-gcc-471-tdm-64 Build #75 done.
Details
windows-gcc-481-tdm-32 Build #75 done.
Details
windows-gcc-481-tdm-64 Build #75 done.
Details
windows-gcc-520-mingw-32 Build #73 done.
Details
windows-gcc-520-mingw-64 Build #75 done.
Details
windows-vc11-32 Build #74 done.
Details
windows-vc11-64 Build #75 done.
Details
windows-vc12-32 Build #74 done.
Details
windows-vc12-64 Build #73 done.
Details
windows-vc14-32 Build #73 done.
Details
windows-vc14-64 Build #75 done.
Details

@eXpl0it3r eXpl0it3r deleted the feature/geometry-shader branch Feb 19, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment