Flypig's gecko dev diary

This is great investigation all! Let me try to answer some of the questions (sorry if I miss any).

The RGB data does seem to be RBG, the RGBA, I’m notsure. You said unsigned?

Yes! Unsigned, specifically UNSIGNED_BYTE. Here are the parameters that are passed in to create the surface that this texture is supposed to be being extracted from:

{
    color_texInternalFormat = LOCAL_GL_RGB,
    color_texFormat = LOCAL_GL_RGB,
    color_texType = LOCAL_GL_UNSIGNED_BYTE, 
    color_rbFormat = LOCAL_GL_RGB8,
    depthStencil = LOCAL_GL_DEPTH24_STENCIL8,
    depth = LOCAL_GL_DEPTH_COMPONENT24,
    stencil = LOCAL_GL_STENCIL_INDEX8
}

so the next piece of the puzzle: if you access sailfishos.org from the normal browser, does it render OK?

Yes! In the browser it renders like the image on the left:

The file sizes match perfectly for 1080x2520x(3 or 4 depending on the file)

This may be a red-herring as I’m specifically filling a buffer of this size. So it could be that each pixel is more bytes and I’m only grabbing part of the image to fill the buffer.

This is making a great puzzle … just need to figure out how to put the bits together :smiley:

It’s a puzzle alright :grin: My current working assumption is that the image is corrupted (maybe I’m grabbing some random texture memory?), so bear in mind there might not be a solution here if that’s the case. But I’d love to be proven wrong!

4 Likes

Came to mind: not only the shape of the texture is wrong; also the color is off. How is the rendering context initialized in the two cases? What are the attributes? Also maybesome shader incompatibilites?

In a totally different environment, I would try to store a series of different images, to see what results are being written. Let’s say an image containing one pixel of white. Separately one blue, one red, etc.
But hey, I have no clue whether you could achieve this in a test procedure. Good luck!

A few thoughts that crossed my mind:

  • Try to extract the texture from ESR 78 to see if it’s similarly “mangled”
  • Create some simple test HTML pages with a repeating background, extract the texture from that
  • View a known 1080x1920 image and see how it differs from the texture dump
  • Is little endian / big endian mix-up a possibility?
  • Save the page as PDF and check results
1 Like

The new 4.6.0 update is here with the old browser? @flypig help :slight_smile:

It seems flypig is finishing up. Will he stretch it until Day 2^8?

Such perseverance! Really great achievement. Can we buy him a beer or coffee to celebrate?

1 Like

One week holiday would be more appropriate :slight_smile:

4 Likes

Flypig you’re great! Can we offer you a coffee or a beer? I’ll be happy to do that.

2 Likes

I would be in too. Just give us a Paypal account or a give me a coffee option and i would go for that too. Great work Flypig!

2 Likes

Really cool. Especially when you follow the blog, showing many frustrating days…

I just caught up. It’s gone from Sisyphus rolling boulders up hill to Hercules hurling them like golf balls! Yeah, @flypig !

9 Likes

Would donate this great work, too!

1 Like

Congratulations on figuring out the rendering issue @flypig, this is really great progress!

I’m really hoping for a beta release soon now :crossed_fingers:

Will we get an update as well?? Some field testing wouldnt be so bad!

As I read it there is still enough effort so that you won’t get something in your hand this month.

My secret guess is that there will be a something to celebrate the anniversary in August. :partying_face:

Its a bit late now, but I always wondered if someone could rent flypig a powerful vm for building. But as i understand it, the artifacts with debug symbols are quite big and would have to be transferred everytime.
anyone has an idea if that would be worth exploring?

Until parallel builds start working, there is not all that much that it would do. Single core performance peaks already in stuff you can readily have at home.

Did you already test the build using the updated compiler stack of 4.6? Perhaps there are performance improvements or parallel builds are working now.

Hm 10x faster compilation would probably have been … 15 days faster? Probably half the frustration during development…?
unfortunatley thats nothing i can help with…

Hm.

In theory something like a “sccache cluster” could be built, with people contributing storage and computation power.

But in practice I guess latencies over the internet will offset any gains.

Also, setting it up and getting it to work reliably is likely not exactly trivial.

Still, maybe coderus’ docker build containers could be extended to include an sccache client setup, flypig could run a server, and users who want to contribute could fire up said Docker.

Or something.

EDIT: Huh, it would appear icecream which is a related/similar tool has support for OBS (or the other way around). Interesting. So maybe once the “cluster” mentioned above is there, it could be used by a simple ‘osc build’…