Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 30. prosinec 2013, 21:04:25 Předmět: OpenGL 3.0 vs SDL 2.0 |
|
|
Zdravím,
snažím se rozjet funkční OpenGL core kontext na linuxu na tomto HW:
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
OpenGL version string: 3.0 Mesa 8.0.5
OpenGL shading language version string: 1.30
Nějak se to ale nedaří. Nepodařilo se to někomu z vás tady? SDL sveřepě hlásí "Could not create GL context", i když zkouším všechno možné. Na jiném HW (OpenGL 3.3) to funguje.
Díky. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 30. prosinec 2013, 21:24:18 Předmět: |
|
|
vytvaras core profile? nie som si isty o 3.0 ale viem ze mesa neposkytuje 3.1 compatibility profil. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 31. prosinec 2013, 11:09:04 Předmět: |
|
|
Nebo kdyžtak prosím hoďte třeba zdroják, který vám funguje ve windows. Tonoucí se stébla chytá Nebo fakt nikdo OpenGL 3 nepoužívá? _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 31. prosinec 2013, 16:08:21 Předmět: |
|
|
Takto to nastavuju:
kód: |
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, m_glVersionMajor);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, m_glVersionMinor);
SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 0);
|
Zvláštně se to chová i na nVidii GF9300M:
Na linuxu to funguje při nastavení 3.0 i 3.3.
Na windows to funguje pro 3.3, ale pro 3.0 opět hlásí, že nelze vytvořit kontext. Verzi SDL mám tu poslední, 2.0.1. Stejně se to chovalo ale i u několika (asi dvou) předešlých. Všechno to sem píšu v naději, že někoho trkne, v čem by to mohlo být, protože já už jsem v koncích.
Díky. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
gindar

Založen: 05. 10. 2007 Příspěvky: 86
|
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 1. leden 2014, 11:09:50 Předmět: |
|
|
Díval jsem se do logu repozitáře SDL a žádný související bugfix tam není, takže to nemá smysl zkoušet. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
micky

Založen: 28. 02. 2008 Příspěvky: 348 Bydliště: Plzeň, Praha
|
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 1. leden 2014, 16:34:10 Předmět: |
|
|
Jo, resp. záleží na dostupnosti rozšíření WGL_ARB_create_context_profile, viz např. http://www.opengl.org/registry/specs/ARB/wgl_create_context.txt
Pro verzi 3.0 jsem odstranil následující kód (problém ve windows jsem tím opravil):
kód: |
SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); |
Nicméně v linuxu na Intelu (což je můj základní problém) to nepomohlo, selhává funkce glXCreateContextAttribs s následujícími chybovými kódy:
kód: |
error_code 1
request_code 154
minor_code 34 |
_________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 1. leden 2014, 17:29:32 Předmět: |
|
|
Tento nejzákladnější příklad taky funguje divně http://www.opengl.org/wiki/Tutorial:_OpenGL_3.0_Context_Creation_%28GLX%29
Tady je výstup:
Getting matching framebuffer configs
Found 4 matching FB configs.
Getting XVisualInfos
Matching fbconfig 0, visual ID 0x21: SAMPLE_BUFFERS = 0, SAMPLES = 0
Matching fbconfig 1, visual ID 0x60: SAMPLE_BUFFERS = 0, SAMPLES = 0
Matching fbconfig 2, visual ID 0x9d: SAMPLE_BUFFERS = 0, SAMPLES = 0
Matching fbconfig 3, visual ID 0x9e: SAMPLE_BUFFERS = 0, SAMPLES = 0
Chosen visual ID = 0x21
Creating colormap
Creating window
Mapping window
glXCreateContextAttribsARB() not found ... using old-style GLX context
Direct GLX rendering context obtained
Making context current
A tady ještě výstup z glxinfo:
http://nopaste.ceske-hry.cz/223559 _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
Ladis

Založen: 18. 09. 2007 Příspěvky: 1537 Bydliště: u Prahy
|
Zaslal: 1. leden 2014, 20:06:42 Předmět: |
|
|
Existuje vůbec nějaký způsob, ve kterém funguje glXCreateContextAttribsARB() na Intelu v Linuxu? Na to bych se zaměřil první (abys zbytečně neztrácel čas, pokud tam skutečně nejede). Pak přinejhorším můžeš mít správnou codepath, a když chyba -a- Intel, tak zkusit tu, která na něm funguje, ale není "čistá". _________________ Award-winning game developer |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 1. leden 2014, 23:44:36 Předmět: |
|
|
Dobrá myšlenka, díky. Už to nějak funguje, teď zbývá odladit (nejspíš) shadery  _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 2. leden 2014, 01:47:34 Předmět: |
|
|
Objevil se další problém, který s předchozím souvisí pouze tím, že se projevuje na uvedeném Intel ovladači. Textury fungují pouze v případě, že se po glTexImage2D (resp. 1D) zavolá glGenerateMipmap. V opačném případě jsou černé. Při vykreslování používám sampler objekty a nastavení mipmap funguje. Problém je, že tam, kde nejsou potřeba, se zbytečně plýtvá pamětí. Takže je to dobré jenom jako hotfix. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 2. leden 2014, 10:52:30 Předmět: |
|
|
Na Intel kartách je toho strašně moc rozbitého. O tom bych Ti mohl vyprávět, když jsem dával dohromady engine. Jeho vývoj se mi protáhl o strašně moc dlouho jen proto, že jsem ho chtěl odladit tak, aby běžel v pořádku i na Intelu (neboť jí mám v notesu).
Možná bych zkusil pohledat, jestli neexistují nějaké neoficiální drivery. Když jsem dělal bakalářku, tak moje aplikace vykazovala podivnou vlastnost. Po spuštění mi program renderoval ve viewportu cca kolem 500 FpS, ale jakmile jsem zahýbal s oknem (změnil rozměry, změnil pozici, atp.), tak FpS kleslo na 20, ať už se něco renderovalo nebo ne. Pak jsem našel neoficiální drivery (aktuální) a přestalo to dělat.
Čeho jsem si ještě třeba všiml na Intelu je to, že když chceš pomocí glClear mazat FBO, který má větší rozměry, než rozměry obrazovky (viewport na to neměl vliv), tak smaže jen tu část, která padne na velikost obrazovky. To bohužel nedokázal spravit ani neoficiální driver, takže jsem pak musel napsat vlastní alternativní Clear.
Dělat něco na Intel grafikách je zlo... o to je to větší zlo, když tam chceš dělat vyšší OpenGL než 2.0...
S generování mipmap jsem měl také problémy, když jsem se snažil použít funkci glGenerateMipmap (řešením bylo opět vlastní výpočet mipmap). Ale u mě to nedělo problémy, když jsem mipmapy negeneroval vůbec, tak jako ve Tvém případě... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 2. leden 2014, 16:12:21 Předmět: |
|
|
Z pohledu vývojáře je asi nejlepší AMD, kde funguje, co má, a nefunguje, co nemá (oproti nvidii, kde funguje i to, co nemá, a intelu, kde nefunguje to, co má). Aspoň takový je můj pocit ze zdejších diskusí. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
|