Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
64 user(s) are online (43 user(s) are browsing Forums)

Members: 0
Guests: 64

more...

Headlines

 
  Register To Post  

(1) 2 3 4 ... 24 »
Shaderjoy 1.25
Just can't stay away
Just can't stay away


See User information
Shaderjoy can display Shadertoy (https://www.shadertoy.com) compatible
fragment shaders. Fragment shaders (sometimes called pixel shaders) are programs
that are executed per fragment (pixel) on the GPU.

Version 1.25 is available on http://capehill.kapsi.fi/ .
Version 1.24 is available on http://os4depot.net/?function=showfil ... hics/viewer/shaderjoy.lha .

Shader pack from kas1e: http://os4depot.net/?function=showfil ... o/misc/shaderjoy_pack.lha

Videos:

kas1e demonstrates Shaderjoy 1.0: https://www.youtube.com/watch?v=yUubbKpkPQI
kas1e demonstrates Shaderjoy 1.8: https://www.youtube.com/watch?v=K4MixYoYTgM
Hans talks about bugs reports and Shaderjoy running on background: https://www.youtube.com/watch?v=oCyw4pqUjYU
Trevor talks about Shaderjoy during his Amiwest presentation: https://www.youtube.com/watch?v=KsM-rDlxhi4


If you have created some compatible shaders, why not share your art with others :) If you haven't created a shader ever, why not start today?

Take a look at the shaders directory, there you can find some shaders (.frag) created by me and some by Shadertoy community.

Requires OpenGL ES 2.0 and Warp3D Nova.

History:

1.25
- Add keyboard channel. Also remove some keyboard shortcuts to avoid conflicts.
- Add projects files (.sjp) for those example shaders that require textures.
- Replace text buttons with more compact images.
- Show busy pointer during shader compilation.
- Disable uninitialized variable check (in icon) due to glCompileShader issue with some shaders:
future ogles2.library should fix this.
- Fix loading of arexx.class.
- Fix busy looping of ChannelWindows.
- Refactor some GUI code.

1.24
- Add GLSL Help button: a URL (khronos.org) will be opened.
- Add PUBSCREEN tooltype.
- Add editor toggle menu option in window mode.
- Disable blanker using application.library.
- Fix some CppCheck findings.
- Fix "GetAttr fail" issue which happened when user dropped a file without editor view.
- Compile with GCC 11 - thanks to all people working on the SDK!

1.23
- Start using stb_image_write.h to save PNG screenshot.
- Add LOAD_PROJECT and SAVE_SCREENSHOT ARexx commands.
- Make About window asynchronous.
- Add BORDERLESS tooltype.
- Remove support for ogles2.library versions older than 3.0
- Disable vertical flipping of FBOs when ogles2.library version is greater than 3.1.
- Remove workarounds for older library versions.

1.22
- Add LOGLEVEL tooltype.
- Add ARexx port.
- Add twister and tunnel shaders.
- Check CTRL-C signal during event handling.
- Display VSYNC status on window info bar.
- Fix issue with FPS counter when starting in fullscreen mode.

1.21
- Revert "hard-coded alpha value" change which broke some multipass shaders.
- Save screenshots using mskNone to avoid alpha channel issues.
- Try to handle space characters in shader paths of project file.

1.20
- Fix channel window issue where input selection misbehaved.
- Convert potential CR codes to LF when loading project file.
- Add one more way to combine paths when loading shaders.
- Add info log if project files entries are not recognized.

1.19
- Add screenshot support.
- About: display RadeonHD/RX.chip version.
- Improve double-click toggling (reset timer on toggle).
- Use hard-coded alpha value of 1.0f.
- Refactor channel management internally.
- Treat project file location as a secondary path when looking for shaders.
- Work on audio support internally (not finished).
- Compiled with GCC 10 - thanks to all people working on the compiler!

1.18
- Add project file support (.sjp).
- Activate the most recently loaded tab.
- Blank mouse pointer completely in fullscreen mode.
- Reorganize RMB menus due to project file.
- Rename "Channels" menu to "Shaders and Channels".
- Rename "Shaders" menu to "Debug".
- Refactor code dealing with file handling.
- Reset frame counter on rewind.

1.17
- Add FLOATTEXTURE tooltype. Note: there is an open driver issue #610.
- Fix mouse Y position (info bar height wasn't taken into account).
- Change iFrame uniform type from float to int.
- Load dropped shader file into Image slot when there is no editor view (tabs).
- Add sobel.frag.
- Refactor logging.

1.16
- Improve AppWindow feature: load file into currently active page.
- Improve Channel window by moving input selection above other gadgets.
- Disable texture file selection gadget when Buffer is chosen.
- Display message box when Buffer compilation fails.
- Compile all programs (Image + Buffers) when compile button is clicked.
- Sync shader code from GUI when compile button is clicked.
- Remove Buffer references in channels when some buffer tab is closed.
- Implement different logging levels. (Not used widely yet.)
- Improve debug logging, especially related to OpenGL resources.
- Fix a bug (of the year) that prevented Buffer channel configuration.
- Add one more rendering pass: render Image to an FBO.
- Use the latest rendered buffer instead of generating new frames in pause mode.
- Clear FBO textures on window resize.

1.15
- Add tab support (Common, Image and Buffers A, B, C, D).
- Allow editing of Common/Buffers A-D.
- Monitor changes of Common/Buffers A-D.
- Change Buffer logic: they are loaded outside the iChannel selection.
- Add Buffer selection to iChannel window: select either texture or Buffer A, B, C or D.
- Fix path issue related to '/' handling.
- Flush stdout to make real-time log filtering possible.
- Rewrite rendering logic for improved frame buffer support.

1.14
- Add Common support. Common file is "included" before shader programs.
- Refactor GUI code.
- Display shader info log always when available. In case of errors and warnings display also a requester.

1.13
- Make channel windows asynchronous and allow opening them simultaneously.
- Make load and save requesters asynchronous.
- On quit or fullscreen toggle, wait for save requester to finish. Otherwise try to close extra windows.
- Do not advance iDate uniform in pause mode.
- Update shader name when filename is passed as a startup argument.
- Set GL viewport during startup.
- Add multipass rendering concept: allow loading of shader programs as iChannels, and
allow loading of textures for those shader programs.

1.12
- Duplicate input / output streams when starting an external text editor.
- Add WINDOWSIZE tooltype.
- Add AUTORELOAD tooltype.
- Display shader name on info element.
- Display info element regardless of EDITORVIEW setting.
- Add channel window for setting up the textures.
- Clear mouse position when loading a new shader.

1.11
- Fix issue with texteditor.gadget creation (caused by missing OpenClass calls).
- Combine Play and Pause buttons.
- Display FPS and time info in a separate GUI element instead of window title bar.
- Monitor shader source file and reload it on change.
- Add Control menu (Play/Pause, Rewind, Compile).
- Rename EDITOR tooltype to EDITORVIEW.

1.10
- Add tooltype EDITOR. When enabled, allow editing in window mode.
- Add tooltype FONTNAME and FONTSIZE, to configure editor font.
- Add tooltype EDITORNAME, to define external editor tool.
- Blank mouse pointer in fullscreen mode, when mouse is inactive.
- Allow pause mode toggling with SPACE key.
- Unpause when loading a shader.
- Update display also during pause mode, but on a slower rate.
- Re-enable reload functionality.

1.9
- Allow shader editing in window mode.
- Add play, pause, rewind and compile buttons in window mode.
- Allow saving of shaders.
- Remember window size when coming back from fullscreen mode.
- Add possibility to check uninitialized variables (requires ogles2.library version 3).
- Add tooltype CHECKUNINITIALIZED.
- Add possibility to dump verbose Nova-level compilation logs (requires ogles2.library version 3).
- Add tooltype SHADERDEBUG.
- Log shader info log always when available (in verbose mode).
- Time and log shader compilation (when in verbose mode).
- Remove possibility to reload shader.

1.8
- Use vertex buffer objects (VBOs).
- Add iTimeDelta and iFrameRate uniforms.
- Add AppWindow support: shaders can be dropped into the window.
- Shader filename can be passed as an argument.
- Improve About box: display GL information.
- Fix issue with blitting over window borders.
- Initialize fragment colour because some shaders do not.
- Reverse iMouse.y.

1.7
- Open all screens with SA_LikeWorkbench tag.
- Disable optimized bitmap allocation.
- Log OpenGL information during startup.
- Display version number on screen title bar.
- Fix an issue where FPS counter was not visible when started in fullscreen mode.

1.6
- Improve VSYNC mechanism.
- Remove FPS counter flickering in fullscreen mode.
- Allow toggling of FPS counter.
- Add SHOWFPS tooltype.
- Add SCREENMODE tooltype.
- Disable Iconify menu option in fullscreen mode.
- Drop command-line argument support in favor of icon tooltypes.

1.5
- Fullscreen mode. Created using SA_LikeWorkbench so it's likely larger and slower than default window mode!
- Improved logger: buffer is no more limited to 16 kilobytes.
- Changed default texture path to "textures/shadertoy" for improve usage.
- User-selectable VSYNC mode (WaitTOF, WaitBOVP or disabled).
- Changed default window size to 800 x 450.
- Display running time on window title bar.
- Display window size on window title bar.
- Use window pointer in ASL requesters.
- Fullscreen tooltype.

1.4
- Add icon tooltypes.

1.3
- Add iDate support.
- Add verbose logging.
- Fix: window pointer is now cleared when close gadget is used.
- Keep textures (iChannels) active when switching shaders.

1.2
- Fix: iChannelResolution is an array of vec3s.
- Workaround: use GL_LINEAR texture filtering to avoid diagonal line where triangles meet.

1.1
- Add iChannel0...3 texture support. Each channel must be loaded manually at the moment.
- Add iChannelResolution0...3 support.
- Add stack cookie and log stack usage at the exit.
- Display a message box in case shader or texture loading fails, instead of exiting.

1.0
- First version


Edited by Capehill on 2020/5/9 18:19:17
Edited by Capehill on 2020/5/10 17:20:51
Edited by Capehill on 2020/5/11 20:05:19
Edited by Capehill on 2020/5/11 20:13:33
Edited by Capehill on 2020/5/12 19:38:51
Edited by Capehill on 2020/5/14 11:30:25
Edited by Capehill on 2020/5/16 14:56:05
Edited by Capehill on 2020/5/17 19:26:46
Edited by Capehill on 2020/5/18 19:29:54
Edited by Capehill on 2020/5/22 14:54:11
Edited by Capehill on 2020/5/31 18:51:59
Edited by Capehill on 2020/6/1 11:02:31
Edited by Capehill on 2020/6/18 19:27:07
Edited by Capehill on 2020/6/28 14:02:17
Edited by Capehill on 2020/6/30 13:53:47
Edited by Capehill on 2020/7/3 15:12:28
Edited by Capehill on 2020/7/8 19:25:09
Edited by Capehill on 2020/7/26 11:26:57
Edited by Capehill on 2020/8/7 18:03:55
Edited by Capehill on 2020/9/16 16:49:04
Edited by Capehill on 2020/9/26 9:02:18
Edited by Capehill on 2020/9/28 7:08:47
Edited by Capehill on 2020/10/25 7:42:33
Edited by Capehill on 2020/10/31 11:51:23
Edited by Capehill on 2020/12/31 9:35:53
Edited by Capehill on 2021/3/28 18:18:46
Edited by Capehill on 2021/4/18 14:01:35
Edited by Capehill on 2021/4/24 13:39:53
Edited by Capehill on 2022/1/7 7:37:32
Edited by Capehill on 2022/8/12 17:28:36
Edited by Capehill on 2023/1/14 17:38:51
Edited by Capehill on 2023/1/14 17:39:50
Edited by Capehill on 2023/4/6 13:42:55
Go to top
Re: Shaderjoy 1.0
Home away from home
Home away from home


See User information
@Capehill

Some shaders are really beautiful, like kissing_donuts and foot_torus.

Do some frame-rate table of all shaders on my setup (x5k + radeonHD 250x) (without VSYCN of course), and with default size of window on running (810x650 ?)

defaul (blue window) : 1188

capehill/amigaa : 1186
capehill/bars: 990
capehill/gear: 1187
capehill/helloh: 1167
capehill/helloh2 : 1147
capehill/mandelbrot: 48 (?)
capehill/nuts: 1186
capehill/ripple: 1190

shadertoy/dueling_mandelbulbs : 418
shadertoy/foot_torus: 13 (?)
shadertoy/kissing_donuts: 13 (?)
shadertoy/sunset: 1030 (is it static, or something should changes there?)
shadertoy/yetanother_torus: 21 (?)


So far some are fast as expected, some are pretty slow.

Intersting also that when i resize the window, speed of execution pretty much slower down (i was under impression, that with ogles2, most of time does not matter size of window, it all about the same should be).

But if just more data need to be transfered from ram to vram, then we hit DMA wall then..

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Shaderjoy 1.0
Just popping in
Just popping in


See User information
@capehill:

Awesome, i was hoping to make something like this, but with an integrated editor like bonzomatic, but as always, some bugs and my own incompetence made me abandon it too early.

Go to top
Re: Shaderjoy 1.0
Just can't stay away
Just can't stay away


See User information
@kas1e

FPS depends on window size, because larger pixel area means more fragments, so fragment shaders need to do more work. One pixel equals to at least one fragment.

Foot_torus is slightly broken, when you compare to Shadertoy.

Regarding sunset.frag, it's really static and here is the "making of" video for it: https://www.youtube.com/watch?v=0ifChJ0nJfM Inigo is a real wizard.

Go to top
Re: Shaderjoy 1.0
Just can't stay away
Just can't stay away


See User information
@Ami603

Yeah, integrated editor would be nice to have, to make it more "live".

Go to top
Re: Shaderjoy 1.0
Not too shy to talk
Not too shy to talk


See User information
@Capehill
I made pretty much the same in 2016 as a testbed for ogles2 and Nova, I however called it ShaderBoy
Resized Image

I totally forgot about it; back then Nova supported not enough shader commands for it to be fun.

Go to top
Re: Shaderjoy 1.0
Just can't stay away
Just can't stay away


See User information
@Daytona675x

Cool :) Does it have iChannel support?

Go to top
Re: Shaderjoy 1.0
Just popping in
Just popping in


See User information
@Capehill

Nicely done! simple and clean program for shader prototyping. Thx!

Pause option/key would be nice. But for now iconifying seems to pause the render loop as well.

Go to top
Re: Shaderjoy 1.0
Just popping in
Just popping in


See User information
And here are my results (X5K + R9 280X + VSYNC disabled + default Window size):

default (blue window) : 1069

capehill/amigaa : 1066
capehill/bars: 1062
capehill/gear: 1066
capehill/helloh: 1067
capehill/helloh2 : 1065
capehill/mandelbrot: 90
capehill/nuts: 1067
capehill/ripple: 1067

shadertoy/dueling_mandelbulbs : 704
shadertoy/foot_torus: 23
shadertoy/kissing_donuts: 24
shadertoy/sunset: 1062
shadertoy/yetanother_torus: 45

Go to top
Re: Shaderjoy 1.0
Just can't stay away
Just can't stay away


See User information
@IamSONIC

Quote:

Pause option/key would be nice. But for now iconifying seems to pause the render loop as well.


Yes :) I noticed by a chance that CPU hit 100% when iconified. Then I added a Wait() call in event handler and it started to behave nicely again.

Go to top
Re: Shaderjoy 1.0
Just popping in
Just popping in


See User information
WoW, really nice ! Some of them would make good screen saver ;)

Go to top
Re: Shaderjoy 1.0
Not too shy to talk
Not too shy to talk


See User information
@Capehill
Quote:
Does it have iChannel support?

No, it's rudimentary: it supports iResolution, iGlobalTime, iTimeDelta iFrame and iMouse. Back then I was too lazy to add some sort of texture-manager, so no iChannel The variable list on the top right is just a reminder

@kas1e
Note that with ShaderJoy you only measure fill-rate / Nova's fragment shader performance, pretty much nothing else: the geometry is just a static quad, the vertex shader is minimalistic, the shader program never changes. The only thing that changes per frame and therefore is being sent to the GPU is the DBO with the handful of uniform variables.

Would be very interesting to see how those fps numbers compare to a Windows rig with the same gfx card.

Here are my results:
X5000, ogles2 3.0 (wip), Nova 1.68, passively cooled R7 250 1GB:

default (blue window): 1049

capehill/amigaa: 1046
capehill/bars: 862
capehill/gear: 1046
capehill/helloh: 1033
capehill/helloh2: 1016
capehill/mandelbrot: 42
capehill/nuts: 1045
capehill/ripple: 1048

shadertoy/dueling_mandelbulbs: 363
shadertoy/foot_torus: 11
shadertoy/kissing_donuts: 14
shadertoy/sunset: 909
shadertoy/yetanother_torus: 18


Edited by Daytona675x on 2020/5/2 4:36:43
Edited by Daytona675x on 2020/5/2 4:55:51
Go to top
Re: Shaderjoy 1.0
Just can't stay away
Just can't stay away


See User information
@Daytona675x

It would be nice to have some kind 3D object viewer with material support, for example, load Stanford Bunny (or cow :) and apply some fire / glass / whatever shaders on it. Maybe someone has already something like that?


Quote:

ogles2 3.0 (wip)


:)

Go to top
Re: Shaderjoy 1.0
Quite a regular
Quite a regular


See User information
By now everyone should know that I love benchmarks .

Sam460ex, ogles2 2.11, Nova 1.70, Single Slot Radeon Rx 550 4GB:

default (blue window): 1438

capehill/amigaa: 1428
capehill/bars: 1284
capehill/gear: 1424
capehill/helloh: 1419
capehill/helloh2: 1393
capehill/mandelbrot: 112
capehill/nuts: 1420
capehill/ripple: 1426

shadertoy/dueling_mandelbulbs: 644
shadertoy/foot_torus: 36
shadertoy/kissing_donuts: 39
shadertoy/sunset: 1287
shadertoy/yetanother_torus: 52

Go to top
Re: Shaderjoy 1.0
Quite a regular
Quite a regular


See User information
@CampeHill
Very nice work!

My results (X1000 + RadeonHD 7550 2G, No VSYNC, default Window size):

default (blue window) : 1044

capehill/amigaa : 1040
capehill/bars: 870
capehill/gear: 1040
capehill/helloh: 1027
capehill/helloh2 : 1011
capehill/mandelbrot: 42
capehill/nuts: 1040
capehill/ripple: 1042

shadertoy/dueling_mandelbulbs : 366
shadertoy/foot_torus: 11
shadertoy/kissing_donuts: 10
shadertoy/sunset: 905
shadertoy/yetanother_torus: 18

AmigaOne X1000, uA1
Go to top
Re: Shaderjoy 1.0
Home away from home
Home away from home


See User information
@ Capehill

cool..thanks!


@Spectre660

hehe me too..will post my results tomorrow...late here and too lazy to head down to mancave tonight

_______________________________
c64-dual sids, A1000, A1200-060@50, A4000-CSMKIII
Catweasel MK4+= Amazing
! My Master Miggies-Amiga1000 & AmigaONE X1000 !
mancave-ramblings

Go to top
Re: Shaderjoy 1.0
Home away from home
Home away from home


See User information
@Daniel
Quote:

Note that with ShaderJoy you only measure fill-rate / Nova's fragment shader performance, pretty much nothing else: the geometry is just a static quad, the vertex shader is minimalistic, the shader program never changes. The only thing that changes per frame and therefore is being sent to the GPU is the DBO with the handful of uniform variables.


Did i got it right, that this mean if there will be DMA it will be faster ? I.e. now we meassure sending to the GPU of fragment shaders ?

@All

Installed RadeonRX Polaris11 on my x5000 , and with RadeonRX beta driver with fixes in the PCIe speeds and with maximum power level have those results which look pretty better:

default (blue window) : 1928

capehill/amigaa : 1925
capehill/bars: 1902
capehill/gear: 1923
capehill/helloh: 1921
capehill/helloh2 : 1918
capehill/mandelbrot: 175
capehill/nuts: 1915
capehill/ripple: 1912

shadertoy/dueling_mandelbulbs : 1153
shadertoy/foot_torus: 54
shadertoy/kissing_donuts: 63
shadertoy/sunset: 1902
shadertoy/yetanother_torus: 85


So while the same shaders slower much than others, they at least has much better fps on my RadeonRX 11 with latest beta drivers.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Shaderjoy 1.0
Not too shy to talk
Not too shy to talk


See User information
@kas1e
Quote:
Did i got it right, that this mean if there will be DMA it will be faster ? I.e. now we meassure sending to the GPU of fragment shaders ?


No. Here having DMA / GART makes almost no differnce here because nothing but some bytes are being sent to the GPU each frame (maybe 100 in worst case, depending on DBO layout and on which uniforms change).
We don't measure any sending of fragment shaders neither. Those aren't sent per frame. It's compiled once and sent / activated once when you select the desired effect.
What's measured here is the fragment-shader being run for every fragment (which in this case means for every pixel, because we only draw a window-sized rectangle), that's it (well, plus some rather static function call / OS overhead etc. of course). So the current AmigaOS-brakes don't apply here.


Edited by Daytona675x on 2020/5/3 11:04:21
Go to top
Re: Shaderjoy 1.0
Just can't stay away
Just can't stay away


See User information
@Daytona675x

It seems that I have forgot to use a VBO. Maybe in next version.

Go to top
Re: Shaderjoy 1.0
Not too shy to talk
Not too shy to talk


See User information
@Capehill
Not really necessary, I just deleted that text fragment out of my above comment
ogles2 will detect that your vertex data is the same and use the already prepared internal VBO. Providing your own will in theory still be faster but in practice this difference will hardly be measurable. The point is: in neither case will vertex data be sent to the GPU more than once.

Go to top

  Register To Post
(1) 2 3 4 ... 24 »

 




Currently Active Users Viewing This Thread: 1 ( 0 members and 1 Anonymous Users )




Powered by XOOPS 2.0 © 2001-2023 The XOOPS Project