WIP 3dLUT support
#31
I'm bringing the code up-to-date with current master (no major changes needed) and changing the approach to support multi pass rendering (bigger changes needed).

I have taken the code for dithering and refactored it. My idea is to add an output stage that wraps whichever shader is run last. This is done by changing the shader to provide a process() function instead of main() and appending another shader source file that calls process() and if configured as the output stage (meaning this is the last rendering pass), handles RGB range conversion and dithering (and in the future color management and other final steps).

This gives two scenarios currently:
1) YUV2RGB -> output stage
2) YUV2RGB -> FBO -> convolution (for advanced scaling) -> output stage

I have not yet thought about other rendering paths (VAAPI, VDPAU etc).

I've modified the YUV2RGB and convolution filter shaders to append an output shader, and created a GLSLOutput helper class that can be passed to either to set up the output processing. I also added a system setting for dither depth to make testing easier.

Video is kept in limited range RGB until the output stage. This avoids banding when video is first rendered to an 8bit FBO.

This seems to work well for the cases I've tested (software decoding / VAAPI decoding without VAAPI rendering; all scaling methods; limited and full range output).

The code this far can be viewed here: https://github.com/xbmc/xbmc/compare/mas...ix-linuxgl - feedback on this approach is welcome.

Next I'll take the LUT processing and add it to the output stage.
Reply


Messages In This Thread
3dLUT support - by lmyllari - 2014-08-23, 01:30
RE: 3dLUT support - by FernetMenta - 2014-08-24, 08:21
RE: 3dLUT support - by sarbes - 2014-08-24, 22:00
RE: 3dLUT support - by Martijn - 2014-08-24, 22:04
RE: 3dLUT support - by lmyllari - 2014-08-25, 18:45
RE: 3dLUT support - by fritsch - 2014-08-25, 18:46
RE: 3dLUT support - by da-anda - 2014-08-25, 23:40
RE: 3dLUT support - by sebj - 2014-08-27, 03:00
RE: 3dLUT support - by lmyllari - 2014-08-27, 17:31
RE: 3dLUT support - by sebj - 2014-08-27, 18:04
RE: 3dLUT support - by lmyllari - 2014-08-27, 19:50
RE: 3dLUT support - by sebj - 2014-09-08, 02:40
RE: 3dLUT support - by bhampton - 2014-10-30, 19:18
RE: 3dLUT support - by bhampton - 2014-11-03, 15:19
RE: 3dLUT support - by bhampton - 2014-11-20, 15:24
RE: 3dLUT support - by sebj - 2014-11-27, 03:30
RE: 3dLUT support - by oo_void - 2014-12-02, 01:58
RE: 3dLUT support - by maiong - 2014-12-07, 19:31
RE: 3dLUT support - by lmyllari - 2015-01-01, 00:21
RE: 3dLUT support - by Mr Hipp - 2015-01-04, 17:51
RE: 3dLUT support - by lmyllari - 2015-01-06, 18:44
RE: 3dLUT support - by oo_void - 2015-01-08, 18:39
RE: 3dLUT support - by splendid - 2015-01-31, 03:00
RE: 3dLUT support - by johnsanc - 2015-02-13, 17:57
RE: 3dLUT support - by lmyllari - 2015-02-13, 18:23
RE: 3dLUT support - by sebj - 2015-02-16, 06:04
RE: 3dLUT support - by lmyllari - 2015-02-16, 06:28
RE: 3dLUT support - by sebj - 2015-02-17, 03:53
RE: 3dLUT support - by raidflex - 2015-03-24, 18:01
RE: 3dLUT support - by sat4all - 2015-03-25, 00:41
RE: 3dLUT support - by lmyllari - 2015-05-18, 22:17
RE: 3dLUT support - by bossanova808 - 2015-05-19, 02:29
RE: 3dLUT support - by lmyllari - 2015-05-19, 03:25
RE: 3dLUT support - by bossanova808 - 2015-05-19, 05:21
RE: 3dLUT support - by sebj - 2015-05-29, 03:20
RE: 3dLUT support - by bluechris - 2015-05-29, 19:44
RE: 3dLUT support - by lmyllari - 2015-06-02, 18:28
RE: 3dLUT support - by lmyllari - 2015-06-03, 17:55
RE: 3dLUT support - by sat4all - 2015-06-02, 18:49
RE: 3dLUT support - by lmyllari - 2015-06-02, 18:51
RE: 3dLUT support - by sat4all - 2015-06-02, 18:54
RE: 3dLUT support - by lmyllari - 2015-06-02, 18:56
RE: 3dLUT support - by sat4all - 2015-06-02, 18:59
RE: 3dLUT support - by lmyllari - 2015-06-02, 19:12
RE: 3dLUT support - by sat4all - 2015-06-02, 19:32
RE: 3dLUT support - by lmyllari - 2015-06-05, 07:14
RE: 3dLUT support - by sat4all - 2015-06-05, 11:50
RE: 3dLUT support - by lmyllari - 2015-06-05, 16:38
RE: 3dLUT support - by sat4all - 2015-06-05, 19:50
RE: 3dLUT support - by sebj - 2015-06-07, 15:44
RE: 3dLUT support - by lmyllari - 2015-06-07, 17:24
RE: 3dLUT support - by lmyllari - 2015-06-21, 09:15
RE: 3dLUT support - by bluechris - 2015-06-21, 09:58
RE: 3dLUT support - by lmyllari - 2015-06-21, 16:45
RE: 3dLUT support - by RockerC - 2015-06-22, 16:08
RE: 3dLUT support - by lmyllari - 2015-06-22, 18:13
RE: 3dLUT support - by lmyllari - 2015-06-21, 23:02
RE: 3dLUT support - by sat4all - 2015-06-22, 17:59
RE: 3dLUT support - by lmyllari - 2015-06-22, 18:16
RE: 3dLUT support - by sat4all - 2015-06-22, 19:06
RE: 3dLUT support - by lmyllari - 2015-06-22, 19:11
RE: 3dLUT support - by sat4all - 2015-06-22, 19:35
RE: 3dLUT support - by lmyllari - 2015-06-27, 06:45
RE: 3dLUT support - by sat4all - 2015-06-27, 12:34
RE: 3dLUT support - by InNursery - 2015-07-02, 19:31
RE: 3dLUT support - by lmyllari - 2015-07-02, 19:44
RE: 3dLUT support - by InNursery - 2015-07-02, 20:18
RE: 3dLUT support - by lmyllari - 2015-07-26, 23:19
RE: 3dLUT support - by lmyllari - 2015-07-27, 08:19
RE: 3dLUT support - by lmyllari - 2015-07-28, 07:53
RE: 3dLUT support - by sat4all - 2015-07-28, 12:43
RE: 3dLUT support - by lmyllari - 2015-07-28, 16:10
RE: 3dLUT support - by sat4all - 2015-07-28, 18:54
RE: 3dLUT support - by wsnipex - 2015-07-28, 16:05
RE: 3dLUT support - by bossanova808 - 2015-07-29, 08:08
RE: 3dLUT support - by lmyllari - 2015-07-29, 17:37
RE: 3dLUT support - by bossanova808 - 2015-07-30, 01:09
RE: 3dLUT support - by lmyllari - 2015-07-30, 03:50
RE: 3dLUT support - by lmyllari - 2015-08-03, 20:13
RE: 3dLUT support - by lmyllari - 2015-08-14, 19:35
RE: 3dLUT support - by M4tt0 - 2015-08-14, 22:08
RE: 3dLUT support - by lmyllari - 2015-08-16, 03:16
RE: 3dLUT support - by sat4all - 2015-08-16, 22:23
RE: 3dLUT support - by lmyllari - 2015-08-16, 23:01
RE: 3dLUT support - by sat4all - 2015-08-16, 23:49
RE: 3dLUT support - by lmyllari - 2015-08-19, 07:02
RE: 3dLUT support - by sat4all - 2015-08-19, 10:29
RE: 3dLUT support - by lmyllari - 2015-08-17, 07:05
RE: 3dLUT support - by bossanova808 - 2015-08-17, 07:13
RE: 3dLUT support - by pocafon - 2015-09-06, 18:40
RE: 3dLUT support - by oo_void - 2015-09-07, 04:20
RE: 3dLUT support - by sat4all - 2015-09-19, 17:57
RE: 3dLUT support - by sebj - 2015-09-26, 05:15
RE: 3dLUT support - by InNursery - 2015-11-05, 16:52
RE: 3dLUT support - by Soli - 2015-11-09, 04:32
RE: 3dLUT support - by Enkhil - 2015-11-09, 13:54
RE: 3dLUT support - by Jdiesel - 2015-11-10, 21:14
RE: 3dLUT support - by lmyllari - 2015-11-10, 21:56
RE: 3dLUT support - by Jdiesel - 2015-11-30, 03:40
RE: 3dLUT support - by Soli - 2015-11-12, 12:33
RE: 3dLUT support - by b0mb - 2015-11-12, 12:55
RE: 3dLUT support - by oo_void - 2015-11-29, 20:34
RE: 3dLUT support - by raidflex - 2016-01-14, 17:33
RE: 3dLUT support - by Jdiesel - 2016-02-04, 17:53
RE: 3dLUT support - by b0mb - 2016-02-24, 13:25
RE: 3dLUT support - by da-anda - 2016-02-24, 13:38
RE: 3dLUT support - by lmyllari - 2016-02-24, 21:35
RE: 3dLUT support - by b0mb - 2016-02-25, 11:47
RE: 3dLUT support - by sat4all - 2016-02-25, 13:40
RE: 3dLUT support - by Jdiesel - 2016-02-26, 19:41
RE: 3dLUT support - by b0mb - 2016-03-02, 11:37
RE: 3dLUT support - by lmyllari - 2016-05-02, 04:59
RE: 3dLUT support - by sat4all - 2016-05-02, 10:13
RE: 3dLUT support - by b0mb - 2016-05-07, 09:14
RE: 3dLUT support - by lmyllari - 2016-05-08, 01:50
RE: 3dLUT support - by Jdiesel - 2016-05-25, 18:47
RE: 3dLUT support - by lmyllari - 2016-06-02, 07:01
RE: 3dLUT support - by InNursery - 2016-06-02, 13:10
RE: 3dLUT support - by Soli - 2016-06-03, 20:56
RE: 3dLUT support - by FernetMenta - 2016-06-04, 15:31
RE: 3dLUT support - by lmyllari - 2016-06-10, 07:34
RE: 3dLUT support - by Soli - 2016-06-10, 18:12
RE: 3dLUT support - by lmyllari - 2016-06-11, 00:20
3dLUT support - by b0mb - 2016-06-12, 20:39
RE: 3dLUT support - by InNursery - 2016-06-12, 23:11
RE: 3dLUT support - by lmyllari - 2016-06-12, 23:30
RE: 3dLUT support - by InNursery - 2016-06-13, 03:37
RE: 3dLUT support - by lmyllari - 2016-06-13, 04:34
RE: 3dLUT support - by InNursery - 2016-06-13, 13:20
RE: 3dLUT support - by InNursery - 2016-07-02, 13:02
RE: 3dLUT support - by Soli - 2016-06-13, 12:00
RE: 3dLUT support - by b0mb - 2016-06-13, 12:32
RE: 3dLUT support - by Soli - 2016-06-13, 12:44
RE: 3dLUT support - by b0mb - 2016-06-13, 12:47
RE: 3dLUT support - by Soli - 2016-06-13, 13:11
RE: 3dLUT support - by b0mb - 2016-06-13, 13:24
RE: 3dLUT support - by Jdiesel - 2016-06-13, 23:58
RE: 3dLUT support - by lmyllari - 2016-06-14, 00:09
RE: 3dLUT support - by b0mb - 2016-06-15, 13:17
RE: 3dLUT support - by Jdiesel - 2016-06-17, 05:53
RE: 3dLUT support - by Jdiesel - 2016-06-17, 05:55
RE: 3dLUT support - by b0mb - 2016-06-17, 06:31
RE: 3dLUT support - by Jdiesel - 2016-06-17, 06:58
RE: 3dLUT support - by b0mb - 2016-06-17, 07:05
RE: 3dLUT support - by lmyllari - 2016-06-17, 07:41
RE: 3dLUT support - by Jdiesel - 2016-06-17, 07:21
RE: 3dLUT support - by b0mb - 2016-06-17, 10:28
RE: 3dLUT support - by Jdiesel - 2016-06-20, 17:27
RE: 3dLUT support - by Ed76 - 2016-06-20, 20:28
RE: 3dLUT support - by Jdiesel - 2016-06-20, 21:47
RE: 3dLUT support - by lmyllari - 2016-06-20, 18:42
RE: 3dLUT support - by b0mb - 2016-06-21, 01:10
RE: 3dLUT support - by Soli - 2016-07-04, 01:58
RE: 3dLUT support - by sebj - 2016-07-04, 06:10
RE: 3dLUT support - by Jdiesel - 2016-07-04, 18:18
RE: 3dLUT support - by b0mb - 2016-07-04, 22:35
RE: 3dLUT support - by Jdiesel - 2016-07-04, 23:30
RE: 3dLUT support - by b0mb - 2016-07-05, 06:48
RE: 3dLUT support - by lmyllari - 2016-07-07, 17:08
RE: 3dLUT support - by Jdiesel - 2016-09-07, 18:18
3dLUT support - by b0mb - 2016-07-07, 23:14
RE: 3dLUT support - by Soli - 2016-07-08, 02:47
RE: 3dLUT support - by smf007 - 2016-07-20, 19:58
RE: 3dLUT support - by lmyllari - 2016-07-21, 00:05
RE: 3dLUT support - by smf007 - 2016-07-21, 00:28
RE: 3dLUT support - by Soli - 2016-08-01, 19:23
RE: 3dLUT support - by sh4dow - 2016-08-08, 14:31
RE: 3dLUT support - by lmyllari - 2016-08-09, 03:53
RE: 3dLUT support - by sh4dow - 2016-08-09, 15:38
RE: 3dLUT support - by lmyllari - 2016-08-15, 01:31
RE: 3dLUT support - by lmyllari - 2016-08-15, 01:35
RE: 3dLUT support - by sh4dow - 2016-08-15, 02:23
RE: 3dLUT support - by lmyllari - 2016-08-15, 03:46
RE: 3dLUT support - by Soli - 2016-08-24, 07:56
RE: 3dLUT support - by lmyllari - 2016-08-24, 09:13
RE: 3dLUT support - by Soli - 2016-08-24, 13:17
RE: 3dLUT support - by Soli - 2016-08-24, 14:17
RE: 3dLUT support - by lmyllari - 2016-08-24, 20:41
RE: 3dLUT support - by Soli - 2016-08-25, 04:08
RE: 3dLUT support - by Ayla - 2016-09-01, 13:41
RE: 3dLUT support - by Soli - 2016-09-02, 17:56
RE: 3dLUT support - by Jdiesel - 2016-09-11, 04:18
RE: 3dLUT support - by lmyllari - 2016-09-11, 05:24
RE: 3dLUT support - by Jdiesel - 2016-09-11, 22:50
RE: 3dLUT support - by lmyllari - 2016-09-12, 01:59
RE: 3dLUT support - by Jdiesel - 2016-09-13, 17:00
RE: 3dLUT support - by pabba - 2016-09-20, 23:14
RE: 3dLUT support - by zombieagain - 2016-10-02, 23:28
RE: 3dLUT support - by afedchin - 2016-10-03, 10:05
RE: 3dLUT support - by pabba - 2016-10-20, 13:22
RE: 3dLUT support - by LoupD - 2016-11-15, 02:44
RE: 3dLUT support - by Soli - 2016-12-29, 21:26
RE: 3dLUT support - by pabba - 2016-12-21, 20:24
RE: 3dLUT support - by Jdiesel - 2016-12-29, 18:12
RE: 3dLUT support - by pabba - 2017-01-01, 14:00
RE: 3dLUT support - by Jdiesel - 2017-03-23, 16:32
RE: 3dLUT support - by Soli - 2017-03-26, 14:39
RE: 3dLUT support - by Jdiesel - 2017-03-26, 20:26
RE: 3dLUT support - by ((( atom ))) - 2017-03-28, 11:20
RE: 3dLUT support - by Soli - 2017-03-30, 14:16
RE: 3dLUT support - by ((( atom ))) - 2017-03-31, 12:35
RE: 3dLUT support - by ((( atom ))) - 2017-04-10, 18:50
RE: 3dLUT support - by Soli - 2017-04-14, 20:16
RE: 3dLUT support - by lmyllari - 2017-03-30, 18:33
RE: 3dLUT support - by Jdiesel - 2017-03-30, 18:55
RE: 3dLUT support - by lmyllari - 2017-03-30, 19:04
RE: 3dLUT support - by Jdiesel - 2017-03-30, 19:11
RE: 3dLUT support - by InNursery - 2017-03-31, 13:23
RE: 3dLUT support - by Soli - 2017-03-31, 15:36
RE: 3dLUT support - by ((( atom ))) - 2017-04-11, 21:37
RE: 3dLUT support - by ((( atom ))) - 2017-04-14, 12:21
RE: 3dLUT support - by afedchin - 2017-04-14, 12:23
RE: 3dLUT support - by nitish - 2017-04-14, 15:53
RE: 3dLUT support - by ((( atom ))) - 2017-04-15, 13:57
RE: 3dLUT support - by ((( atom ))) - 2017-04-15, 14:09
RE: 3dLUT support - by Soli - 2017-04-17, 02:05
RE: 3dLUT support - by ((( atom ))) - 2017-04-17, 11:08
RE: 3dLUT support - by afedchin - 2017-04-17, 16:07
RE: 3dLUT support - by ((( atom ))) - 2017-04-23, 14:36
RE: 3dLUT support - by Soli - 2017-04-24, 15:48
RE: 3dLUT support - by bossanova808 - 2017-04-25, 01:08
RE: 3dLUT support - by Soli - 2017-04-25, 15:53
RE: 3dLUT support - by bossanova808 - 2017-04-26, 01:58
RE: 3dLUT support - by ((( atom ))) - 2017-04-28, 16:20
RE: 3dLUT support - by Soli - 2017-05-02, 04:03
RE: 3dLUT support - by hannes69 - 2019-02-17, 01:19
RE: 3dLUT support - by ((( atom ))) - 2017-05-02, 21:12
RE: 3dLUT support - by Soli - 2017-05-03, 00:01
RE: 3dLUT support - by ((( atom ))) - 2017-05-04, 08:45
RE: 3dLUT support - by Soli - 2017-05-04, 15:02
RE: 3dLUT support - by ((( atom ))) - 2017-05-04, 19:04
RE: 3dLUT support - by Jdiesel - 2017-06-08, 23:55
RE: 3dLUT support - by lmyllari - 2017-06-09, 22:50
RE: 3dLUT support - by brazen1 - 2017-06-26, 15:52
RE: 3dLUT support - by Soli - 2017-06-27, 04:37
RE: 3dLUT support - by User 255479 - 2017-09-24, 01:59
RE: 3dLUT support - by Jdiesel - 2017-10-10, 22:32
RE: 3dLUT support - by ((( atom ))) - 2018-01-22, 00:02
RE: 3dLUT support - by FernetMenta - 2018-01-22, 08:53
RE: 3dLUT support - by tonybeccar - 2018-11-19, 19:32
RE: 3dLUT support - by ian-ep - 2018-11-19, 20:15
RE: 3dLUT support - by tonybeccar - 2018-11-19, 21:39
RE: 3dLUT support - by tonybeccar - 2018-11-21, 17:08
3dLUT support - by Memphiz - 2018-11-22, 08:14
3dLUT support - by Memphiz - 2019-02-19, 18:28
RE: 3dLUT support - by hannes69 - 2019-02-20, 20:39
3dLUT support - by ((( atom ))) - 2019-02-19, 21:29
RE: 3dLUT support - by hannes69 - 2019-02-20, 20:49
3dLUT support - by Memphiz - 2019-02-21, 23:01
RE: 3dLUT support - by hannes69 - 2019-02-25, 22:08
Logout Mark Read Team Forum Stats Members Help
3dLUT support3