List items
Items from the current list are shown below.
Gecko
15 Apr 2024 : Day 217 #
After re-reading patch 0053 yesterday, today I've been reintegrating the TextureImageEGL class back into the codebase. For context, patch 0053 makes a very small change to a single file, the TextureImageEGL.h file. But when I tried to check whether the patch had been applied or not I discovered the file it's supposed to apply to has been removed entirely from the ESR 91 codebase entirely.
The upstream changeset that removed the file mentions that the class doesn't add anything over and above what BasicTextureImage already offers. When I compared the two classes myself I came to pretty much the same conclusion: there really isn't much that's different between them. The key difference seems to be that TextureImageEGL allows for a wide variety of surface formats, whereas BasicTextureImage supports only RGBA format. There's also a slight difference in that TextureImageEGL seems to be more aggressive in resizing the texture.
Neither of these strike me as significant enough to prevent rendering, but you never know. So I've copied over the two relevant files — TextureImageEGL.h and TextureImageEGL.cpp — and integrated them into the build system. I also had to adjust the code in a few places in order to support the new EglDisplay class and some slight differences in the overridable parent method signatures that necessitated altering the signatures in the class.
Since then I've been trying to perform a partial rebuild of the code, trying to avoid having to do a full rebuild. Previously I would have run a full build overnight, but I've been getting increasingly confident with the way the build system works. Consequently I persuaded mach to rebuild the configuration based on the advice it offered up:
After the build I went through the usual process of transferring and installing the new library to my phone. Sadly I'm still left with a blank screen, so this wasn't enough to get the render working. That may mean these changes can safely reverted, but I'll leave them as they are for now and aim to come back to that later.
That's because it should be easier to remove redundant code once things are working than to guess exactly which changes are needed to get things to work. Or at least, that's my rationale.
This leaves me having applied another patch today (patch 0053), so that we now have the following applied:
0001, 0002, 0003, 0006, 0007, 0009, 0010, 0011, 0015, 0016, 0017, 0018, 0019, 0020, 0021, 0022, 0023, 0024, 0025, 0026, 0027, 0028, 0029, 0030, 0031, 0032, 0033, 0034, 0036, 0037. 0038, 0039, 0040, 0047, 0048, 0053
The following remain uneeded:
0004, 0005, 0013, 0035,
While the following haven't yet been applied:
0008, 0012, 0014, 0041, 0042, 0043, 0044, 0045, 0046, 0049, 0050, 0051, 0052,
Tomorrow I'll continue working through the patches. It's slow going, but this interlude with TextureImageEGL serves to highlight that there are still relevant patches still to be applied, which means it's worth checking. But I also want to reiterate that I've not forgotten the discussion from the Sailfish Community Meeting last Thursday. I still have some work to do following the advice provided there.
If you'd like to read any of my other gecko diary entries, they're all available on my Gecko-dev Diary page.
The upstream changeset that removed the file mentions that the class doesn't add anything over and above what BasicTextureImage already offers. When I compared the two classes myself I came to pretty much the same conclusion: there really isn't much that's different between them. The key difference seems to be that TextureImageEGL allows for a wide variety of surface formats, whereas BasicTextureImage supports only RGBA format. There's also a slight difference in that TextureImageEGL seems to be more aggressive in resizing the texture.
Neither of these strike me as significant enough to prevent rendering, but you never know. So I've copied over the two relevant files — TextureImageEGL.h and TextureImageEGL.cpp — and integrated them into the build system. I also had to adjust the code in a few places in order to support the new EglDisplay class and some slight differences in the overridable parent method signatures that necessitated altering the signatures in the class.
Since then I've been trying to perform a partial rebuild of the code, trying to avoid having to do a full rebuild. Previously I would have run a full build overnight, but I've been getting increasingly confident with the way the build system works. Consequently I persuaded mach to rebuild the configuration based on the advice it offered up:
$ sfdk engine exec $ sb2 -t SailfishOS-esr78-aarch64.default $ source `pwd`/obj-build-mer-qt-xr/rpm-shared.env $ make -j1 -C obj-build-mer-qt-xr/gfx/gl/ make: Entering directory '${PROJECT}/obj-build-mer-qt-xr/gfx/gl' ${PROJECT}/gecko-dev/config/rules.mk:338: *** Build configuration changed. Build with |mach build| or run |mach build-backend| to regenerate build config. Stop. make: Leaving directory '${PROJECT}/obj-build-mer-qt-xr/gfx/gl'Following that advice seems to give good results:
$ ./gecko-dev/mach build-backend 0:05.01 ${PROJECT}/obj-build-mer-qt-xr/_virtualenvs/common/bin/python ${PROJECT}/obj-build-mer-qt-xr/config.status Reticulating splines... 0:05.22 File already read. Skipping: ${PROJECT}/gecko-dev/intl/components/ moz.build 0:08.32 File already read. Skipping: ${PROJECT}/gecko-dev/gfx/angle/targets/ angle_common/moz.build Finished reading 984 moz.build files in 19.20s Read 11 gyp files in parallel contributing 0.00s to total wall time Processed into 5326 build config descriptors in 17.35s RecursiveMake backend executed in 28.37s 1959 total backend files; 0 created; 2 updated; 1957 unchanged; 0 deleted; 21 -> 664 Makefile FasterMake backend executed in 2.77s 8 total backend files; 0 created; 1 updated; 7 unchanged; 0 deleted Total wall time: 69.45s; CPU time: 68.55s; Efficiency: 99%; Untracked: 1.75s Glean could not be found, so telemetry will not be reported. You may need to run |mach bootstrap|.I can then follow my usual partial build commands in order to get a newly built version of the library out.
After the build I went through the usual process of transferring and installing the new library to my phone. Sadly I'm still left with a blank screen, so this wasn't enough to get the render working. That may mean these changes can safely reverted, but I'll leave them as they are for now and aim to come back to that later.
That's because it should be easier to remove redundant code once things are working than to guess exactly which changes are needed to get things to work. Or at least, that's my rationale.
This leaves me having applied another patch today (patch 0053), so that we now have the following applied:
0001, 0002, 0003, 0006, 0007, 0009, 0010, 0011, 0015, 0016, 0017, 0018, 0019, 0020, 0021, 0022, 0023, 0024, 0025, 0026, 0027, 0028, 0029, 0030, 0031, 0032, 0033, 0034, 0036, 0037. 0038, 0039, 0040, 0047, 0048, 0053
The following remain uneeded:
0004, 0005, 0013, 0035,
While the following haven't yet been applied:
0008, 0012, 0014, 0041, 0042, 0043, 0044, 0045, 0046, 0049, 0050, 0051, 0052,
Tomorrow I'll continue working through the patches. It's slow going, but this interlude with TextureImageEGL serves to highlight that there are still relevant patches still to be applied, which means it's worth checking. But I also want to reiterate that I've not forgotten the discussion from the Sailfish Community Meeting last Thursday. I still have some work to do following the advice provided there.
If you'd like to read any of my other gecko diary entries, they're all available on my Gecko-dev Diary page.
Comments
Uncover Disqus comments