<tzimmermann>
it copies a BO buffer into an internal transport buffer, then sets the 'window size' (the changed output), and finally sends it via MIPI_DCS_WRITE_MEMORY_START
<tzimmermann>
my question is: what happens if 'rect' is not the complete screen. does it still work correctly?
<tzimmermann>
it sets a window size and apparently only transfers a buffer with the size of the rectangle
bbrezill1 has quit []
<tzimmermann>
but the call to mipi_dbi_buf_copy() expects a pointer to the top-most pixel of the framebuffer
bbrezillon has joined #dri-devel
<tzimmermann>
i.e., we're not sending the correct portion of the framebuffer
<tzimmermann>
^ marex, mripard, noralf, javierm
<javierm>
tzimmermann: I see. But shouldn't drm_fb_memcpy() handle that ?
<javierm>
that is, only copying the correct portion of the rectangle into dst ?
<tzimmermann>
this code needs a fix. all the format helpers expect dst to point to the first pixel within 'rect'
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
<javierm>
tzimmermann: well, I guess it depends on how MIPI_DCS_WRITE_MEMORY_START and MIPI_DCS_SET_{COLUMN,PAGE}_ADDRESS work
<javierm>
tzimmermann: because dst (the tr pointer) is only used as a temporary buffer to send video data over MIPI DSI afaiu
<javierm>
as long as the helpers are clipping src correctly (which they do), it should work if the MIPI DSI commands expect the portion to update to be at the start of tr
itoral has quit [Remote host closed the connection]
<javierm>
tzimmermann: or maybe I'm missing something
itoral has joined #dri-devel
<javierm>
tzimmermann: if for example dst was memory-mapped I/O of a framebuffer and src a shadow buffer I would agree but in this case is different I believe
tursulin has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
rasterman has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
lynxeye has joined #dri-devel
<pq>
Igor's VKMS patch series could use opinions from actual kernel developers to sanity-check my suggestions.
ahajda has joined #dri-devel
<tzimmermann>
javierm, but drm_fb_swab() doesn't work that way
<tzimmermann>
if updates dst somewhere within rect
<tzimmermann>
i.e., it respects rect->x,y
<tzimmermann>
while the other functions do not
<tzimmermann>
either is wrong
rgallaispou has quit [Quit: Leaving.]
<javierm>
tzimmermann: ohh, right
<tzimmermann>
i guess, i'm going to change drm_fb_swab() to behave like the rest of the functions
<tzimmermann>
javierm, i'm working on a patchset that unifies these conversion helpers into a single implementation. drm_fb_swab() is different, which apparently confused me quite a bit :) as you say, i'm going to make something that looks like the rest of these helpers
<javierm>
tzimmermann: cool
<javierm>
tzimmermann: I was confused as well on a first read, but probably biased from your previous comments :)
<tzimmermann>
:D
<tzimmermann>
i merged the recent rgb-conversion funcs today. so i'll provide something soonish
pjakobsson_ has joined #dri-devel
pjakobsson has quit [Ping timeout: 480 seconds]
pcercuei has joined #dri-devel
rgallaispou has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
Daanct12 has quit [Quit: Leaving]
tanty has quit []
tanty has joined #dri-devel
cheako has quit [Quit: Connection closed for inactivity]
gawin has joined #dri-devel
Company has joined #dri-devel
sdutt has quit [Ping timeout: 480 seconds]
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
rkanwal has joined #dri-devel
<karolherbst>
jekstrand: currently wondering how to make use of ubos in rusticl, but it kind of feels like that I potentially would have to do it as a lowering pass. For kernel inputs that feels trivial, but for constant mem that can be very ugly :(
heat has joined #dri-devel
slattann has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
Lucretia has quit []
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
Lucretia has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
icecream95 has quit [Ping timeout: 480 seconds]
flacks has quit [Quit: Quitter]
flacks has joined #dri-devel
ella-0_ has joined #dri-devel
ella-0 has quit [Read error: Connection reset by peer]
itoral has quit [Remote host closed the connection]
qyliss has quit [Quit: bye]
itoral has joined #dri-devel
qyliss has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
itoral has quit [Remote host closed the connection]
<karolherbst>
let's see how we can make mem_constant use ubos as well
FireBurn has quit [Quit: Konversation terminated!]
pnowack has quit [Quit: pnowack]
macromorgan is now known as Guest2968
macromorgan has joined #dri-devel
mclasen has joined #dri-devel
Guest2968 has quit [Ping timeout: 480 seconds]
mclasen has quit [Ping timeout: 480 seconds]
itoral has quit []
<karolherbst>
jekstrand: soo.. I think before we can use ubos for constant*, we have to figure out how to express a NULL pointer here, because it's totally legal to pass in a NULL pointer into a kernel
<zmike>
should also eliminate 100+ hw jobs for llvmpipe changes
jewins has quit []
sdutt has joined #dri-devel
<jekstrand>
karolherbst: You can look at what anv_nir_apply_pipeline_layout does. Basically, we look for any cases where we can chase the deref chain all the way back to the variable and then we emit an offset calculation and the load/store op directly. If that takes care of all the uses of a binding, then we just have the bound buffer.
<karolherbst>
jekstrand: mhhh, that still doesn't help with NULL pointers, does it?
heat has quit [Read error: No route to host]
heat has joined #dri-devel
<karolherbst>
anyway.. I think we have to just deal with passing around the index/offset. there are situations where we can't use ubos, but those won't apply for now (e.g. SVM supported devices can only do it, if all constant* args are marked as "no SVM pointer")
<karolherbst>
I don't understand why that needs to be set on a kernel object, but...
fxkamd has joined #dri-devel
<javierm>
tzimmermann: I'm having build issues with your latest drm_display_helper patches...
<javierm>
tzimmermann: if for example you have CONFIG_DRM_DISPLAY_HDMI_HELPER=y and CONFIG_DRM_DISPLAY_HELPER=m
<tzimmermann>
javierm, but theese are DisplayPort functions, not hdmi. you need to enable CONFIG_DRM_DISPLAY_DP_HELPER
cef has quit [Ping timeout: 480 seconds]
<javierm>
tzimmermann: yes, but what if you don't need it ?
<karolherbst>
jekstrand: anyway.. my plan was kind of to just adjust the variable modes or something, because in practice we should be allow to follow up all chains and if not, then it's probably undefined behavior
maxzor has joined #dri-devel
<tzimmermann>
javierm, where do these references come from?
<tzimmermann>
javierm, do you have DRM_DP_CEC enabled?
<javierm>
tzimmermann: I do and also CONFIG_DRM_DP_AUX_CHARDEV
<javierm>
both to 'y'
cef has joined #dri-devel
<tzimmermann>
javierm, they should require DP in some way, but don't
<tzimmermann>
that problem was present before
<tzimmermann>
i don't think anyone noticed
<MrCooper>
zmike: FWIW, the r300 driver uses the draw module as well; panfrost also includes draw_context.h, not sure it actually uses any of it though
<tzimmermann>
we could make them select DP and Display helper
<tzimmermann>
OTOH, they could depend on DP_HELPER
<tzimmermann>
they are probably not useful otherwise
<tzimmermann>
i don't know what the better option is
<tzimmermann>
is there anything in the docs
<tzimmermann>
?
fxkamd has quit []
<zmike>
MrCooper: huh good to know on r300, I missed that
<zmike>
the panfrost one looks like an unused include
<tzimmermann>
javierm, they have config options in menuconfig. are they still visible?
<jekstrand>
karolherbst: For const -> UBO, you can do that, potentially. But you have to be careful because you need to ensure that every use of a deref can be a UBO before you do that.
<javierm>
tzimmermann: they are, yes
<tzimmermann>
javierm, care to send a patch?
<jekstrand>
karolherbst: Or you can duplicate the deref chain to make a UBO version. Maybe with a hash table cache mapping constant derefs to UBO derefs.
<javierm>
tzimmermann: sure, in a meeting now but I'll do it later
<tzimmermann>
javierm, but i don't know if it's the correct solution; cc jani and Lyude as well
<karolherbst>
jekstrand: yeah.. dunno.. I was kind of hoping to directly emit ubos, because you really really have to mess up badly in order to not start from an ubo or vec2 address
<gawin>
if someone from eu has a place for hosting r300 CI then I can donate thin client (r300 in thin clients is kinda rare)
<karolherbst>
you can't use constant ptrs for generic ones, so that makes things easier
<karolherbst>
for drivers like llvmpipe it still makes sense to use pointers though I think
<javierm>
tzimmermann: yes, I'll also look deeper at these drivers and understand better. This was just a quick workaround to be my kernel building again to test other stuff
<javierm>
*to get my kernel
<ajax>
we should try to get an r500 into ci at least
<karolherbst>
uhh.. seems like iris isn't ready for read_write images :(
<karolherbst>
maybe not even gallium is
<karolherbst>
or maybe I am doing silly things.. let's see
cef has quit [Ping timeout: 480 seconds]
cef has joined #dri-devel
<jekstrand>
karolherbst: Not sure what you mean by "directly emit UBOs"
<karolherbst>
jekstrand: just treat them as mem_ubo all the way up
<jekstrand>
karolherbst: Sure. You can treat nir_var_mem_constant as nir_address_format_32bit_index_offset. It doesn't have to be 64-bit addresses like global because you can't do generic poitners with constant.
<karolherbst>
right.. I think I tried but then lower_io asserted on stuff... I might take another look once I figure read_write images out
MrCooper_ has joined #dri-devel
MrCooper has quit [Read error: Connection reset by peer]
minecrell6 has quit []
minecrell6 has joined #dri-devel
<karolherbst>
mhhh
<karolherbst>
I think we insert a f2i for int coords
<karolherbst>
ehh.. seems like the kernel is doing that
alyssa has joined #dri-devel
<alyssa>
Is the meaning of winsys_handle->stride defined for nonlinear surfaces?
<karolherbst>
mhhhhhh
<karolherbst>
Expected (0.184314,0,0,1)
<karolherbst>
got (6.5861e-44,0,0,1.4013e-45)
<karolherbst>
1.4013e-45 == 0x1
Danct12 has joined #dri-devel
<ajax>
alyssa: i think that means "logical width in pixels" there since it can't mean "horizontal distance between vertically adjacent pixels" too like it does for linear
<alyssa>
although fcanonicalize wasn't merged apparently
<alyssa>
and also doesn't flush denorms if you're in a preserve denorm float control mode
<alyssa>
so not useful for us
<karolherbst>
alyssa: yeah.. but let's see if using the correct formats helps us here, because if kernels run with disabled denorms that might just pan all out.. dunno
<karolherbst>
jekstrand: is there a dirty hack I could use to check that?
<jekstrand>
karolherbst: It's definitely the format. The problem is you're getting 1u instead of 1.0f
<karolherbst>
sure, I am mainly wondering if we would hit this denorm issue once that's fixed
<karolherbst>
ohh.. but I think I just need to hack up isl_lower_storage_image_format, no?
<karolherbst>
yeah.. that makes it pass
<karolherbst>
jekstrand: we might want to have a MEM_FLAG saying "no_atomics" or something?
<jekstrand>
karolherbst: maybe?
<karolherbst>
mhhh
<jekstrand>
karolherbst: Unfortunately, the Intel code around all this is very annoying
<karolherbst>
I see that hw doens't support a lot of formats, so we could stop exposing them as supported
<karolherbst>
like almost all SNORM/UNORM ones
<karolherbst>
_but_
<karolherbst>
CL_R CL_UNORM_INT8 is required
<karolherbst>
same for CL_RGBA
<jekstrand>
Yeah
<jekstrand>
So, UNORM/SNORM are fine on Ice Lake and later.
<karolherbst>
yeah.. let me check on gen12 first and see if anything is left to fix there
<jekstrand>
The others are fine on Skylake and later as long as we don't care about weird packed formats like 10/10/10/2
JohnnyonFlame has joined #dri-devel
<karolherbst>
all optional
<jekstrand>
It could be that later hardware is fine with atomics on R32_FLOAT; I'm not sure.
<karolherbst>
I think we should be more strict about what to expose and simply ignore anything optional
<jekstrand>
We had GPU hangs on some hardware and swapped it over to R32_UINT since it doesn't matter 99% of the time.
mbrost has quit [Remote host closed the connection]
mbrost_ has quit [Ping timeout: 480 seconds]
heat_ has quit [Read error: No route to host]
heat has joined #dri-devel
mbrost has joined #dri-devel
slattann has quit [Quit: Leaving.]
lynxeye has quit [Quit: Leaving.]
LexSfX has quit [Read error: Connection reset by peer]
ybogdano has quit [Ping timeout: 480 seconds]
LexSfX has joined #dri-devel
LexSfX has quit [Ping timeout: 480 seconds]
LexSfX has joined #dri-devel
ybogdano has joined #dri-devel
<karolherbst>
jekstrand: I think intel is faking BGRA support by doing RGBA internally. At least I see their stack adjusting the fill color for clFillImage
<karolherbst>
but besides that, it seems to work just fine on gen12
<zmike>
dcbaker: \o/
ngcortes has joined #dri-devel
lemonzest has quit [Quit: WeeChat 3.4]
jkrzyszt has quit [Ping timeout: 480 seconds]
alanc has quit [Remote host closed the connection]
alanc has joined #dri-devel
<jekstrand>
karolherbst: Yes, likely. But that should be workable for storage
<jekstrand>
We just need to tweak some things
ahajda has quit [Remote host closed the connection]
shankaru has quit [Ping timeout: 480 seconds]
ahajda has joined #dri-devel
ybogdano has quit [Ping timeout: 480 seconds]
<karolherbst>
jekstrand: question is.. should the driver or... and also why does it work with write images?
<jekstrand>
karolherbst: There's non-trivial iris and isl work to do to get that all working
<karolherbst>
:(
<jekstrand>
Sadly, it's not like AMD or NV where you can just read/write typed things and it "just works"
<karolherbst>
the alternative is fixing LLVM
<karolherbst>
(which I think we might have to do regardless for devices really not supporting the requiered formats well enough)
<karolherbst>
kind of hoped I could just flip it on and...
<jekstrand>
For BGRA, I think most of what you need to do is add it to isl_lower_storage_image_format and then make sure that we do the swizzle when we set up the image descriptor
<jekstrand>
which we likely don't do right now
<jekstrand>
(the descriptor part)
LexSfX has quit [Ping timeout: 480 seconds]
<karolherbst>
yeah
alyssa has left #dri-devel [#dri-devel]
LexSfX has joined #dri-devel
<karolherbst>
I alrady tried that and B and R were swapped
<karolherbst>
but that becomes annoying with fill_images because one also has to fix that up
maxzor has quit [Ping timeout: 480 seconds]
oneforall2 has quit [Remote host closed the connection]
oneforall2 has joined #dri-devel
ybogdano has joined #dri-devel
<karolherbst>
ah well.. let's upstream some patches, so I don't have to carry 200+ patches :D
rasterman has quit [Quit: Gettin' stinky!]
neonking has joined #dri-devel
mbrost has quit [Ping timeout: 480 seconds]
rasterman has joined #dri-devel
Duke`` has quit [Ping timeout: 480 seconds]
vivijim has joined #dri-devel
vivijim has quit []
danvet has quit [Ping timeout: 480 seconds]
mbrost has joined #dri-devel
LexSfX has quit []
maxzor has joined #dri-devel
gawin has joined #dri-devel
ybogdano has quit [Ping timeout: 480 seconds]
ngcortes has quit [Ping timeout: 480 seconds]
ybogdano has joined #dri-devel
Haaninjo has quit [Quit: Ex-Chat]
ngcortes has joined #dri-devel
icecream95 has joined #dri-devel
nchery is now known as Guest3009
Guest3009 has quit [Read error: Connection reset by peer]
nchery has joined #dri-devel
maxzor has quit [Ping timeout: 480 seconds]
ahajda has quit [Quit: Going offline, see ya! (www.adiirc.com)]
mvlad has quit [Remote host closed the connection]
ahajda has joined #dri-devel
rasterman has quit [Quit: Gettin' stinky!]
gawin has quit [Ping timeout: 480 seconds]
<karolherbst>
airlied: with my opt libclc stuff CI is unreliable because those tests sometimes timeout and soemtimes not :(
gio has quit [Remote host closed the connection]
<karolherbst>
well.. on llvmpipe
<karolherbst>
could be have a list of flaky tests CI won't fail on?
* airlied
isn't sure how the piglit test list is hooked up
<jenatali>
Anybody willing to review the common bits out of !16182 for the tracing/symbol helpers?