• 1
  • 163
  • 164
  • 165
  • 166
  • 167(current)
RetroPlayer Test Builds (updated for Nexus)
(2024-04-22, 08:57)sunlollyking Wrote: New build works great and it looks like on LE12 all the visual glitches are fixed around shaders.
 
(2024-04-22, 17:00)KOPRajs Wrote: I've tested the Windows build and it seems that my blind changes to the DirectX version don't break anything. The bugs #5 and #8 seem to be fixed on Windows as well.

OK, well Windows shaders were only not merged because of shader file syncing. And now we have working Windows and LibreELEC shaders? Too bad shader file sync is still stopping us from merge.
(2024-04-22, 17:00)KOPRajs Wrote: IMHO updating the shader folder from time to time with the release of the new version of the add-on should be fine.

A solution? Sync the files manually in the git repo between releases!
(2024-04-22, 17:00)KOPRajs Wrote: @garbear Please note that there are still known issues and many multipass shaders are not rendered correctly when compared to RetroArch.

That's what "Known Issues" are for. You can see I updated the release notes. Anything that's unready with problems is just something that's ready with known issues.

One of the things the team has decided is, if a feature is complete for one platform, it can simply go in and not worry about other platforms. Are we at this point with shaders?
Reply
(2024-04-23, 06:22)garbear Wrote: One of the things the team has decided is, if a feature is complete for one platform, it can simply go in and not worry about other platforms. Are we at this point with shaders?

No, actually the single pass shaders are now working on every platform (OpenGL, OpenGL ES and DirectX) with no side effects or GUI issues.
On Windows some of the multipass shaders seem to work better, but shaders with LUTs are not.
In OpenGL/GLES shaders with LUTs now works better and multipass shaders also works better then before, but there are still issues in the multipass rendering pipeline.

I can't do much for the Windows part, but I haven't finished with the GL/GLES yet.

I've updated the WIP patch yesterday, but there is still something missing to get the multipass shaders fully working:
https://github.com/KOPRajs/xbmc/commits/...haders-v4/

This is not a single issue to solve, the whole rendering chain for multipass shaders seems broken on several places:

It starts with the creation of the FBO textures for every shader pass here: https://github.com/KOPRajs/xbmc/blob/8c0...L.cpp#L223
There are parameters read from the preset (type, format, scale, wrap and filtering of the destination framebuffer) being determined, but then they are being passed to an empty CGLTexture object and they are never being used: https://github.com/KOPRajs/xbmc/blob/8c0...L.cpp#L296
The texture is not even created here, instead it is created in CreateFBO() here: https://github.com/KOPRajs/xbmc/blob/8c0...GL.cpp#L16
The textures for all passes are given the same parameters regardless of what is read from the shader preset file (width and height are simply set to the screen resolution for every pass, filtering to GL_NEAREST, texture format to GL_RGB).
Even if the parameters were used, they are computed wrong. According to the source of RetroArch some of the parameters should be read from the next pass, not the current one (e.g. filtering and wrap type).
When fixing this, I've also done the TODO mentioned here (https://github.com/KOPRajs/xbmc/blob/8c0...L.cpp#L144) and I have removed the last shader texture, because the last pass is rendered directly to the backbuffer, so there is no need to create a framebuffer for it. So now there is no framebuffer and no textures created at all for the single pass shaders.
But we are still missing something and the render seems blurry compared to RetroArch.
Reply
(2024-04-23, 06:22)garbear Wrote: One of the things the team has decided is, if a feature is complete for one platform, it can simply go in and not worry about other platforms. Are we at this point with shaders?

(2024-04-23, 17:06)KOPRajs Wrote: No, actually the single pass shaders are now working on every platform (OpenGL, OpenGL ES and DirectX) with no side effects or GUI issues.

I love seeing the progress so far. I'm just wondering at what point we open a YOLO PR for shaders. Kodi has a high bar on quality, a low bar on completeness. There's no downside to upstreaming all the shader work, as we can still do whatever fixes/improvements we want but far more v22 users get to experiment with shaders. And not gonna lie, I've kept 5K lines rebased on master for 7 years. I'd love to see the work merged to reduce my technical debt liability. 5K lines merged is 5K lines less I maintain (which is currently about an hour a month I need to rebase).
Reply
(2024-04-24, 08:51)garbear Wrote: Kodi has a high bar on quality, a low bar on completeness. There's no downside to upstreaming all the shader work, as we can still do whatever fixes/improvements we want but far more v22 users get to experiment with shaders.

I agree, but I'd still like to try to fix the multipass shader rendering issue before the merge and it would be nice to update the GUI, so we can get a more complete experience. I'd also expect that the code will need some clean up before merging and we are probably going to see bug reports regarding different GL/GLES feature level support on variety of hardware (I've seen a lot of ifdefs regarding iOS etc. when browsing the RetroArch code).
Reply
  • 1
  • 163
  • 164
  • 165
  • 166
  • 167(current)

Logout Mark Read Team Forum Stats Members Help
RetroPlayer Test Builds (updated for Nexus)16