Open sapnho opened 3 years ago
Hi Wolfgang,
While I don't have an answer, perhaps you could clarify this statement:
On some of the pictures, I have a thin line which is a continuation of the right side area.
Are you saying that (in the sample image):
... or ...
I assume the latter, but wanted to verify.
Does it consistently happen on the same images or does it not happen sometimes on images where you've seen it before?
Is it always in the same location?
Hi Jeff, yes
The white area on the right edge is (correctly) part of the image, but it's being (incorrectly) carried over onto the left edge
Yes, the white area is correct on the right side but it shouldn't be on the left side.
Does it consistently happen on the same images or does it not happen sometimes on images where you've seen it before?
It happens consistently on the same images and the position is always exactly mirrored from the right to the left.
I first thought that it might have something to do with https://www.thedigitalpictureframe.com/pi3d-parameters-directory-config/#Background_color_at_edge but I don't have that activated and the images fit the screen dimensions to the pixel.
What I find completely puzzling is that I made a test with the image below which should result in a very thin interrupted white stripe on the left mirrored from the right. But on this particular image, it doesn't happen. On most others, however, it does.
All images are exported from Lightroom, even the test image.
Certainly could be a bug I guess, though it would seem to be lower-level than the frame software (maybe pi3D?). @paddywwoof would know more here...
Otherwise, I wonder if it could be related to the RPi's overscan settings or custom HDMI timing settings? Though, I'd expect those would give consistent results.
It might be interesting to see if changing the overscan settings has any impact.
Overscan is set to disable_overscan=1
Otherwise, I wonder if it could be related to the RPi's overscan settings or custom HDMI timing settings? Though, I'd expect those would give consistent results.
Just to make sure that I put it correctly: The results are consistent for a particular image, but not all images have this mirroring line effect.
Wolfgang, is the whole of the right side or does it happen at a certain distance up screen? It seems like a rounding effect and I suppose it could be due to using medium precision floats for the texture lookup. But I can't really think what the mechanism would be - especially if it happens on some images and not others. If the resolution of the floats can't access the full resolution of the image then maybe the OpenGL automatically uses the mipmap.. I suppose you could test the the highp shaders by just copying those files into wherever picframe has been installed. Might be /usr/lib/python3/dist-packages/picframe/data/shaders/
if you back up the existing two files you could try putting in the files from https://github.com/helgeerbe/picframe/tree/glsl_highp/picframe/data/shaders
Just to make sure that I put it correctly: The results are consistent for a particular image, but not all images have this mirroring line effect.
Yes, that was clear. I just meant to say that I'd think that an RPi setting (for example, overscan
) would give you the same results for all images - not some good, some bad...
Wolfgang, is the whole of the right side or does it happen at a certain distance up screen?
My impression is that the colors are picked up from along the entire right side.
Will try the highp shaders tomorrow. Thanks!
Just tried the new files already, but unfortunately, they didn't make a difference.
It's like 2/10 of a millimeter from the right side is copied over to the left side.
It might still be a rounding error. I will look at the code - maybe it needs to have 0.5 / 3840.0 added (or subtracted).
The other thing is the edge pixel treatment. OpenGL can either wrap or reflect or discard texture lookup going over the edge of the 0.0 to 1.0 range and this can cause a pixel from one edge to appear at the other side. However I was fairly sure that picframe was set up to reflect. I will check that.
Some more information on this issue. I am not sure why but when I used my test image again today (with the new highp shaders), it also showed the effect.
It might still be a rounding error. I will look at the code - maybe it needs to have 0.5 / 3840.0 added (or subtracted).
The other thing is the edge pixel treatment. OpenGL can either wrap or reflect or discard texture lookup going over the edge of the 0.0 to 1.0 range and this can cause a pixel from one edge to appear at the other side. However I was fairly sure that picframe was set up to reflect. I will check that.
Hi @paddywwoof : Any new thoughts on this? Thanks!
Hi, No joy with this so far - but I haven't done any very systematic testing. The argument to mirror is set i.e. here so that won't help. I have a feeling there is a basic rounding error in pi3d as sometime I think there is a pixel missing at the edge of the screen, also the pi3d_demos.Conway
program that uses the GPU to do the Game of Life calculation sometimes shifts diagonally and sometimes doesn't depending on what it's running on
Hmmm, any chance to take another shot at this issue? :-)
Sorry Wolfgang, I've been diverted onto other topics. I will see if I can find what causes the random movement on the Conway simulation as that ought to be fixed anyway and it might throw something up relevant to the 4K issue.
Thanks so much, Paddy. That would be so great!
I have a really weird issue with my 4k frame.
My images are all formatted to 3840 x 2160 which is exactly the pixel size of my display. On some of the pictures, I have a thin line which is a continuation of the right side area. On some, there isn't.
I have attached an example (you can disregard the fact that the image is currently in transition, it doesn't matter in this case). You can see on the right side a white area and a small part of that on the left. I have tested that with a number of images, and on most of them, this very thing happens.
I was wondering if changing a setting in configuration.yaml would bring about a change, but I wouldn't know where.
Here is the viewer part of my config file: