Forum AmigaOne Zone

Forum użytkowników Amigi i nie tylko
Teraz jest czwartek, 28 mar 2024, 12:44

Strefa czasowa: UTC + 1




Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 23 ]  Przejdź na stronę Poprzednia strona  1, 2
Autor Wiadomość
PostNapisane: czwartek, 26 maja 2016, 21:30 
Offline
Znamienity forumowicz
Znamienity forumowicz

Dołączył(a): wtorek, 17 sty 2012, 20:57
Posty: 1196
Zdążyłem raz obejrzeć ale teraz url jest już "expired"...

_________________
SAM440 Flex 800MHz 1GB HD7750 :mrgreen: SBLive! OS4.1 FE/A500/A600/A600+Furia/A1200/CD32/A4000D+A2320+PiccoloSD64


Udostępnij dla FacebookUdostępnij dla Twitter
Góra
 Zobacz profil  
Cytuj  
PostNapisane: czwartek, 26 maja 2016, 22:13 
Offline
Generał
Generał

Dołączył(a): poniedziałek, 16 sty 2012, 22:11
Posty: 1829
Przemek napisał(a):
Zdążyłem raz obejrzeć ale teraz url jest już "expired"...

Wings Remastered Development Diary:
http://www.goldencode.de/amiga/

2016-05-26:
Yes, has nothing to do with Wings, but here's a OpenGLES2 video nevertheless. Testing this stuff takes (once again) longer than anticipated, mostly because Nova itself is still sort-of beta.

OpenGLES2 video:
https://www.facebook.com/daniel.mussene ... 0345497843


Ostatnio edytowano czwartek, 26 maja 2016, 22:22 przez amig_os, łącznie edytowano 4 razy

Góra
 Zobacz profil  
Cytuj  
PostNapisane: czwartek, 26 maja 2016, 22:17 
Offline
Elitarny forumowicz
Elitarny forumowicz
Avatar użytkownika

Dołączył(a): piątek, 20 sty 2012, 22:31
Posty: 617
Adres do jego profilu na fejsie. Teraz już nie powinien wygasać, poza tym wstawiony przeze mnie
był tylko w niskiej rozdzielczości, nie wiem dlaczego filmy z fejsa tak się "zachowują".

_________________
AmigaOne X5000/020, Sapphire Radeon R9 270X Toxic, 2GB RAM.
Amiga1200/060 32MB RAM
Obrazek


Góra
 Zobacz profil  
Cytuj  
PostNapisane: czwartek, 26 maja 2016, 23:06 
Offline
Znamienity forumowicz
Znamienity forumowicz

Dołączył(a): wtorek, 17 sty 2012, 20:57
Posty: 1196
Dzięki, Panowie...bez konta na fejsie trudniej wytropić ;)

_________________
SAM440 Flex 800MHz 1GB HD7750 :mrgreen: SBLive! OS4.1 FE/A500/A600/A600+Furia/A1200/CD32/A4000D+A2320+PiccoloSD64


Góra
 Zobacz profil  
Cytuj  
PostNapisane: sobota, 28 maja 2016, 06:31 
Offline
Administrator
Administrator
Avatar użytkownika

Dołączył(a): poniedziałek, 16 sty 2012, 15:14
Posty: 4652
Prędkość skalowania okien do poprawy.


Góra
 Zobacz profil  
Cytuj  
PostNapisane: środa, 10 sie 2016, 14:49 
Offline
Elitarny forumowicz
Elitarny forumowicz
Avatar użytkownika

Dołączył(a): piątek, 20 sty 2012, 22:31
Posty: 617
Kliknięcie na zdjęcie zabiera do filmu.

Załącznik:
Zrzut ekranu 2016-08-10 o 14.46.46.png


Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.

_________________
AmigaOne X5000/020, Sapphire Radeon R9 270X Toxic, 2GB RAM.
Amiga1200/060 32MB RAM
Obrazek


Góra
 Zobacz profil  
Cytuj  
PostNapisane: środa, 26 paź 2016, 13:30 
Offline
Generał
Generał

Dołączył(a): poniedziałek, 16 sty 2012, 22:11
Posty: 1829
Kolejny raport ze stanu prac:

OpenGL ES 2 (v1.8) for Warp3D Nova (AmigaOS 4)

I just put a new updated OGLES2 version on my FTP :)
This time it contains 1,5 fixes, some optimizations and a small compatibility improvement:

- cleaned up some initialization-code so that Nova doesn't flood the debug-log with pointless warnings a la "W3DNPF_XXX can only be used with W3DNEF_YYY". I consider this to be 0.5 fixes ;)

- I made the GL-object-management more cache-friendly and significantly more compact. At many places in the code this means one less pointer indirection, all in all about 15kb of code vanished (btw.: the core lib itself is about 450kb, the rest (about 1.8 MB) is occupied by the crunched GLSL-to-SPIR compiler).

- some more code optimizations, leading to about 1.7kb less core library code once again.

- Note: the performance increase of those optimizations is measurable even for the boing-ball-demo, but it's minimal there (less than 0.5 fps). In heavy loaded real world apps it will certainly be more noticable, but don't expect any miracles, it was already pretty optimized before, that was just some icing on the cake ;)

- Fix: glGetVertexAttribiv and glGetVertexAttribfv returned wrong values if used with pname = GL_CURRENT_VERTEX_ATTRIB.
A small typo with huge consequences, sorry :P
I found that one while going through the whole source looking for those abovementioned potential optimizations.

- restructured header-files to simplify porting. Just include now. It's the original gl2.h, the only file that has been modified is . To benefit from this you have to download and update the includes too (or at least said gl2platform.h file), of course!

Cheers,
Daniel



OpenGL ES 2 (v1.10) for Warp3D Nova (AmigaOS 4)

A new update is available, for beta-testers at least ;)

- Memory management: removed MEMF_CLEAR flag from the memory-pool, just an unneccessary waste of cycles, everything is initialized anyway and a zero-fill isn't required.

- Fix, memory management: added semaphore protection for internal (de)allocations.

- Memory management: tuned the internal pool's puddle size.

- Decrunching the GLSL compiler requires almost no RAM anymore.

- Some more small optimizations (one of them will help speeding up another bigger optimization I'm planning ;) ).

- glFinish improved by immediately marking all internal objects that were buffered for submission as being available again. This speeds up the following drawing calls because those will find free internal objects faster.

- Fix: non-VBO drawing (glDrawArrays / glDrawElements called with pointers into client memory) was buggy, the render-pipe wasn't flushed if necessary which could lead to wrong objects being rendered.

- VBO locking improved not to read back data unless necessary. The primary result is probably not that intuitive: It speeds up *non*-VBO drawing quite a lot, to be exact by around factor 3! This is because Nova cannot render client memory data, so the library has to copy that into dedicated internal VBOs. Of course changes you do to your own VBOs are sped up too, but since you (hopefully) don't do that too often the overall performance gain won't be that noticable.

- The GLSL patcher now also handles the following functions so that they can be used even though they have been removed / replaced from the specs: texture2DProg, texture2DLod, texture2DProjLod, textureCubeLod.

Cheers,
Daniel


Góra
 Zobacz profil  
Cytuj  
PostNapisane: piątek, 4 lis 2016, 20:21 
Offline
Generał
Generał

Dołączył(a): poniedziałek, 16 sty 2012, 22:11
Posty: 1829
OpenGL ES 2 (v1.11) for Warp3D Nova (AmigaOS 4)

I picked up the pencil I dropped after successfully finishing up the initial version 1.0 for the 11th time now, so it's a new week with a new update once again :)

This time we got one fix and some real *massive* optimizations for a common-case scenario.

The fix: glViewport didn't always work correctly. A dumb typo made it falsely depend on the provided target window- / bitmap-height :P Thanks to Frank Menzel for reporting that one. Really wondering how this one could remain unnoticed for so long.

But now to the optimizations :)
It's all about non-VBO drawing commands. So what's that anyway you may ask?

OGLES2 allows you to draw your geometry either from GPU memory (VBO) or directly from your application's RAM (non-VBO). The latter is often used in older progs when VBOs weren't available, in stuff ported from OGL(ES)1, for simplicity, for vertex-data that constantly changes, etc.

In contrast, Nova only allows you to draw your stuff through VBOs. Therefore the OGLES2 wrapper has to create / update at least one VBO internally if you want to draw sth. from your application's RAM. So for the lib-user it looks as if he'd draw from his RAM directly, but in reality the wrapper turns everything into a VBO behind the scenes. And that VBO modification means that the data has to be uploaded to the GPU. Furthermore it means that the lib has to wait until that VBO is not used by the GPU anymore, which could be the case if you issued another non-VBO draw-command before.
OGLES2 has to do all that for every single non-VBO glDraw-command you issue, because it has to asume that your vertex data changed. There is no way to tell OpenGL "hey, don't worry, that data will remain unchanged for the next 1000 draw-calls".

As you may guess all this is a huge bottleneck. So I spent some time to improve that situation.
The basic idea is that it's actually faster to check the whole data for changes and to not upload anything if there's no change than to always upload. And instead of comparing the data I hash it and compare that hash only. The hashing function has been extremely optimized in 1.10 already (it's used internally for other things already). Anyway, that's the core idea, there's a bit more though.

Note: throughout the following lines I'll present the fps of the boing-ball-test if compiled *not* to use VBOs! So it's 1024 identical balls (about 800 triangles each) rendered using client memory vertex- / index-data.
Before it was very slow in that mode (more at Warp3D than W3D Nova niveau), especially with that big load (although the previous update already contained a nice speedup by around factor 3, as you probably remember). However this test situation can be considered a best-case scenario.

I also prepared a second version of that test, one that renders two different types of balls which use completely different vertex-/ index-data sets in an alternating way (ball type A, then type B, then A, B, ...). Triangle- and ball-count is the same as in test 1. This second test is used to somewhat simulate a worst-case scenario.

So, let's begin. With 1.10 we had the following results for those tests (on a sam460ex, low-end R7 250, default window size, all ca. values).
Variant 1: 3.3 fps
Variant 2: 3.3 fps

Optimization 1: client-RAM index-arrays are uploaded only if a data change has been detected.
Variant 1: 3.7 fps
Variant 2: 3.7 fps

Optimization 2: client-RAM vertex-arrays are uploaded only if a data change has been detected.
Variant 1: 16.0 fps
Variant 2: 3.7 fps

Wow :) Variant 1 becomes insane!
Interesting to note is that variant 2 isn't getting any slower (at least not measurable), despite the fact that it now computes a hash over 25kb of vertex-data (about 800 vertices, 32 bytes each) - and it does so 1024 times per frame for nothing... Yes, the hashing has been optimized indeed ;)

Optimization 3: instead of just one VBO for index- and vertex-arrays the library now manages a hole lot of such VBOs internally.
Variant 1: 15.9 fps
Variant 2: 12.5 fps

Not bad, hm? ;)

However there's one situation that doesn't benefit much from all this, namely when you render procedurally generated vertex data that changes all the time.
If you use glDrawElements then it's likely that at least the index-array-upload can be optimized away because in the common procedural use-case this will remain constant, but the always-changing vertex-data will not just not benefit from all this but might actually become slower than before because there's the additional hashing overhead now...

However, as we have seen at "Optimization 2" computing the hash is virtually for free - at least in those tests here, which, after all, throw around about 50 times (!) more vertices while issueing about 40 times (!) more draw-calls than the current "Wings Remastered" beta does in the most heavy loaded strafing-scenes... (and "Wings Remastered" will be the most heavy Warp3D game in existence). Just to give you an idea about what amounts of data this boing-ball tests is actually about...
So, if you stay within those limits the hashing overhead is definitely neglectable.

So compared to v1.10 the new v1.11 delivers a performance gain around factor 3.8 to 4.8 for common non-VBO situations!
And because it sounds even cooler:
Compared to v1.9 we have an improvement of an incredible factor 11.4 to 14.4!

Note: the actual performance gain highly depends on the size of the data you are about to draw with one draw-call. So don't expect that your numbers are identical to those above. But the overall order of magnitude will be around that.

Cheers,
Daniel


Góra
 Zobacz profil  
Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 23 ]  Przejdź na stronę Poprzednia strona  1, 2

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 8 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Powered by phpBB® Forum Software © phpBB Group
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL
phpBB SEO