austriancoder changed the topic of #etnaviv to: #etnaviv - the home of the reverse-engineered Vivante GPU driver - Logs https://freenode.irclog.whitequark.org/etnaviv
\\server\share has quit [Ping timeout: 256 seconds]
Chewi has quit [Ping timeout: 246 seconds]
Chewi has joined #etnaviv
_whitelogger has joined #etnaviv
pcercuei has quit [Quit: dodo]
cphealy has quit [Ping timeout: 244 seconds]
\\server\share has joined #etnaviv
HQ has joined #etnaviv
\\server\share has quit [Ping timeout: 258 seconds]
lfa has quit [Quit: Leaving]
lfa has joined #etnaviv
lynxeye has joined #etnaviv
embden has joined #etnaviv
<dv_> hey, I could use some suggestions. in a computer vision project, I am facing the problem that the AI engine that gets DMA buffers (with rendered content inside) delivered from the imx8m board via PCIe expects 24-bit BGR data.
<dv_> and, of course, vivante GPUs don't do 24-bit GBR.
<dv_> I think I could do RGBA -> BGR conversions in a pixel shader with a little bit of double texel fetching trickery. the bigger problem is the row size of a texture.
<dv_> so for example I let opengl think that this is an RGBA texture, but internally, in the pixel shader I write it as [RGBR] [GBRG] [BRGB] ... and ad the very end, there may be no room for one full RGB triplet
<dv_> one solution would be to create a 1-scanline texture. so, <total pixel amount> x 1. but can the vivante GPU even handle something like that? and if not, are there any vivante GPU specific tricks that could be done to achieve RGBA -> BGR ?
<dv_> oops, made a mistake. I meant a renderbuffer & EGLImage, not a texture. as said, the output goes as DMA buffer to the AI engine over PCIe. so, i create an FBO, attach a renderbuffer to it, and that renderbuffer uses an EGLimage, which in turn has a DMA-BUF FD as backing store.
<dv_> can I use a 1-scanline EGLimage like that?
<lynxeye> dv_: the BLT engine on the GC7000 should support packed RGB, so you could maybe do a blit from the render target to a RGB buffer. But I don't think there is any easy way to use this capability exposed, yet.
<dv_> is BLT exposed as G2D in vendor kernels?
<lynxeye> dv_: I don't think so. The BLT can't do all the composition ops that are exposed via G2D normally.
<dv_> hmm. and is BLT available on imx8m? I don't recall what GPU the imx8m has. I do know that G2D is not available on imx8m, only on imx8m mini.
hanzelpeter has joined #etnaviv
<dv_> ah, it seems to be the GC7000 Lite
pcercuei has joined #etnaviv
embden has quit [Remote host closed the connection]
hanzelpeter has quit [Quit: leaving]
berton has joined #etnaviv
kherbst has joined #etnaviv
karolherbst has quit [Ping timeout: 265 seconds]
adjtm_ has quit [Remote host closed the connection]
adjtm has joined #etnaviv
adjtm has quit [Remote host closed the connection]
adjtm has joined #etnaviv
adjtm has quit [Remote host closed the connection]
adjtm has joined #etnaviv
HQ has quit [Read error: Connection reset by peer]
berton_ has joined #etnaviv
berton has quit [Ping timeout: 256 seconds]
berton__ has joined #etnaviv
berton_ has quit [Ping timeout: 246 seconds]
berton_ has joined #etnaviv
berton__ has quit [Ping timeout: 260 seconds]
berton_ has quit [Ping timeout: 240 seconds]
berton has joined #etnaviv
Jookia has quit [Remote host closed the connection]
Jookia has joined #etnaviv
cphealy has joined #etnaviv
hanzelpeter has joined #etnaviv
hanzelpeter has quit [Quit: leaving]
lynxeye has quit [Quit: lynxeye]
<Marex> flto: so this float_dynamic_vertex_read is broken on gc3000 too
<Marex> austriancoder: ^
<Marex> flto: and the binary_operator stuff too
<austriancoder> Marex: more details please
<Marex> austriancoder: run the gles2 deqp and you'll see it
<Marex> austriancoder: with mesa master
sravn has quit [Quit: WeeChat 2.8]
<austriancoder> k
<Marex> austriancoder: do you need the specific test which fails ?
<Marex> -n dEQP-GLES2.func*binary_oper* should fail
<Marex> and also s@binary_oper@float_dynamic_vertex_read@
<austriancoder> Marex: with tgsi the binary_ops stuff passes 100% - with nir I get the first assertion with dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_int_vertex
<Marex> austriancoder: jupp
<Marex> austriancoder: it's been broken for a while
<Marex> austriancoder: on gc7000l too
<austriancoder> that might be one of the reasons that the nir compiler is not the default
sravn has joined #etnaviv
<Marex> austriancoder: nir works on everything but gc3000/gc7000l though ? :)
<austriancoder> it works but has some rough edges
berton has quit [Quit: Leaving]
pcercuei has quit [Quit: Lost terminal]
<Marex> mntmn: hey uh, I recall you had problems with glclear
pcercuei has joined #etnaviv
<mntmn> Marex: yep
<Marex> mntmn: do you know any details ?
<Marex> mntmn: I am trying to debug another problem introduced by flto in 64c7cdcae51 ("etnaviv: add missing formats")
<flto> austriancoder, Marex: its supposed to pass all of dEQP-GLES2.functional.shader.* so its a regression somewhere
<Marex> flto: RGB10A2/RGB10X2 is not GLES2 format
<Marex> so of course it passes
<flto> talking about the deqp fails, not your RGB10A2/RGB10X2-related issue
<Marex> flto: oh right, that one crashes on binary_operations, which I think isn't in the functional.shader group
<mntmn> Marex: no, also i'm not sure if the glClear problem still exists. back when i had the problem, it would corrupt textures or something
<mntmn> Marex: so when just removing it, things would start to work (for example xwayland). but i believe there was also a fix for it in mesa
<mntmn> my memory is bad
<Marex> is it possible that the RGB10A2/RGB10X2 is completely broken on everthing ?
<Marex> sigh, GLES3 dEQPs for rgb10a2 keep crashing
<flto> Marex: it was working on GC3000 and GC7000L - I never ran GLES3 tests on GC2000
<Marex> flto: this fails on at least GC880 and GC3000
<flto> IIRC some of the GLES2 tests actually test RGB10A2 (available in GLES2 as an extension)
<Marex> flto: I literally have mesa/master on gc3000 here, now, and it fails
<flto> I haven't worked on etnaviv for 2 months now so I haven't tried it recently..
<Marex> it was broken ever since your patch though
<Marex> flto: that's how this issue was found, it was functionaly that was used and it suddenly didn't work
<Marex> flto: git bisect pointed that patch out
<flto> I understand the patch enabled the format and broke an application that started trying to use it. but GC3000/GC7000L should definitely be passing the tests for those formats, if the tests are not working then another patch broke it
<Marex> flto: which test tests those formats ?
<Marex> flto: it seems like if the RGB10A2 is source buffer for texture sampler, the result is just black frame ; the other way around, if it's destination, nothing is rendered
<flto> there should be same under functional.texture.*rgb10_a2* and functional.fbo.*rgb10_a2* (or maybe its not exactly rgb10_a2 but a different name)
<Marex> flto: yes, those are gles3