View Bug Details

IDProjectCategoryView StatusLast Update
0001640DCP-o-maticFeaturespublic2021-10-02 08:10
Reportercarl Assigned Tocarl  
PriorityimmediateSeverityminorReproducibilityN/A
Status resolvedResolutionfixed 
Target Version2.16.0 
Summary0001640: Generally fix GL backend
Description

[]

Tagsbeta-blocker, major
Branchbetter-gl
Estimated weeks required3
Estimated work requiredMajor

Relationships

related to 0002038 resolvedcarl OpenGL viewer crops scope DCPs wrong 
related to 0001634 closedcarl Try separate thread for OpenGL renderer 

Activities

carl

2020-11-01 23:45

administrator   ~0003987

Looks like we might be using very out-of-date GL APIs; 'fixed-function' instead of shader-based.
https://www.ics.com/blog/fixed-function-modern-opengl-part-1-4

carl

2021-04-18 00:04

administrator   ~0004245

Some work in better-gl

carl

2021-05-24 00:00

administrator   ~0004374

This is looking sort-of-OK, perhaps try it on Windows/macOS and see what happens.

carl

2021-06-08 23:30

administrator   ~0004456

Builds and runs on macOS now.

carl

2021-06-08 23:31

administrator   ~0004457

But is broken again on Ubuntu 20.04.

carl

2021-06-14 23:14

administrator   ~0004458

Fixed on macOS/Ubuntu, doesn't build on Windows; first thing would be an updated wxWidgets in mxe.

carl

2021-06-14 23:14

administrator   ~0004459

This updated wxwidgets dep might need a fair bit of work, but I think it's necessary to request the OpenGL version we need.

carl

2021-06-14 23:19

administrator   ~0004460

mxe git has 3.1.4 of wxWidgets.

carl

2021-06-14 23:22

administrator   ~0004461

Tried rebasing carl-2 of mxe.git onto mxe.cc master in carl-3.

carl

2021-06-29 21:39

administrator   ~0004470

Crashes without an error on Windows.

carl

2021-09-09 00:13

administrator   ~0004526

Kind of working on windows now; main problem was a missing initialisation of glew

carl

2021-09-09 23:54

administrator   ~0004527

Last edited: 2021-09-09 23:56

Assuming this works on all platforms, one thing to try might be to do the scale and XYZ->RGB in the shader just for the DCP playback case; i.e. check for no crop, image size = container size, no subtitles, no fade, then do the equivalent of PlayerVideo::make_image() in the shader. Would need to avoid PlayerVideo::prepare doing make_image() as it would be a waste of time.

carl

2021-09-12 01:53

administrator   ~0004530

It seems like it might be nice to encode the behaviour of J2KImageProxy and PlayerVideo;
they can return a thing T which they will calculate with some prepare(); you can either
call prepare() in advance and get T quickly or just get T without prepare() and it will
be slower.

Maybe some wrapper for T?

class PlayerVideo
{
    WrappedImage get() {

    }

    void prepare() {
        _wrapped.prepare();
    }
};
class WrappedT
{
    O thing;
    optional<T> result;

    void prepare() {
        // do something to thing to get result
    }

    T get () {
        if (!result) {
            result = prepare();
        }
        return *result;
    }
}

Bug History

Date Modified Username Field Change
2019-10-24 23:02 carl New Bug
2019-10-24 23:03 carl Estimated work required => Major
2019-10-24 23:03 carl Status new => confirmed
2019-10-24 23:04 carl Relationship added related to 0001634
2019-11-27 16:21 carl Tag Attached: major
2019-11-27 19:54 carl Category Bugs => Features
2019-11-27 21:44 carl Estimated weeks required => 3
2020-11-01 23:45 carl Note Added: 0003987
2020-11-01 23:46 carl Priority urgent => immediate
2021-04-18 00:04 carl Branch => better-gl
2021-04-18 00:04 carl Note Added: 0004245
2021-05-24 00:00 carl Note Added: 0004374
2021-06-07 13:00 carl Relationship added related to 0002038
2021-06-08 23:30 carl Note Added: 0004456
2021-06-08 23:31 carl Note Added: 0004457
2021-06-14 23:14 carl Note Added: 0004458
2021-06-14 23:14 carl Note Added: 0004459
2021-06-14 23:19 carl Note Added: 0004460
2021-06-14 23:22 carl Note Added: 0004461
2021-06-29 21:39 carl Note Added: 0004470
2021-07-03 20:39 carl Tag Attached: beta-blocker
2021-09-09 00:13 carl Note Added: 0004526
2021-09-09 23:54 carl Note Added: 0004527
2021-09-09 23:56 carl Note Edited: 0004527
2021-09-12 01:53 carl Note Added: 0004530
2021-10-02 08:10 carl Assigned To => carl
2021-10-02 08:10 carl Status confirmed => resolved
2021-10-02 08:10 carl Resolution open => fixed