[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freedesktop-xorg
Subject:    XCompositeNameWindowPixmap / glXCreatePixmap
From:       redhogxorg <redhogxorg () protonmail ! com>
Date:       2022-03-21 21:43:32
Message-ID: jUqVvaaT91kPfRFB38hTtBwojz-Di2h4KhObQg0PfSvNgbW_oWh_mqttDwxjmUcBerIUviOHduDsLnFCeislZKTDVeenkI5UADD6tk570NQ= () protonmail ! com
[Download RAW message or body]

[Attachment #2 (text/plain)]

Heyas!

I'm writing a compositing window manager that renders using opengl \
(https://redhog.github.io/InfiniteGlass/ ). To render windows, I'm using \
XCompositeNameWindowPixmap and glXCreatePixmap.

Calling glXCreatePixmap for each damage / content update is expensive. On some Xorg \
servers / display drivers it works to only call it one when calling \
XCompositeNameWindowPixmap, while on others hat means window content freezes. \
Specifically it doesn't seem to work under llvmpipe.

Setups where it works:

- A stock Ubuntu 18.04 on a physical machine with Mesa DRI Intel(R) UHD Graphics (CML \
GT2).

Setups where it doesn't work:

- Xephyr with llvmpipe (LLVM 10.0.0, 256 bits)
- A stock Ubuntu 18.04 under VirtualBox with llvmpipe (LLVM 12.0.0, 256 bits) (Not \
sure why this doesn't get hardware acceleration)

My question: What's the rule? Is there one? How do I detect whether I need to call it \
on every update or not?

Thanks in advance,
Egil


[Attachment #3 (text/html)]

<div style="font-family: arial; font-size: 14px;">Heyas!</div><div \
style="font-family: arial; font-size: 14px;"><br></div><div style="font-family: \
arial; font-size: 14px;">I'm writing a compositing window manager that renders using \
opengl (<span><a target="_blank" rel="noreferrer nofollow noopener" \
href="https://redhog.github.io/InfiniteGlass/">https://redhog.github.io/InfiniteGlass/</a>&nbsp;). \
To render windows, I'm using&nbsp;<span>XCompositeNameWindowPixmap \
and&nbsp;<span>glXCreatePixmap.</span></span></span></div><div style="font-family: \
arial; font-size: 14px;"><span><span><span><br></span></span></span></div><div \
style="font-family: arial; font-size: 14px;"><span><span><span>Calling&nbsp;<span \
style="background-color:rgb(255, 255, 255);display:inline !important">glXCreatePixmap \
for each damage / content update is expensive. On some Xorg servers / display drivers \
it works to only call it one when calling&nbsp;<span style="background-color:rgb(255, \
255, 255);display:inline !important">XCompositeNameWindowPixmap, while on others hat \
means window content freezes. Specifically it doesn't seem to work under \
llvmpipe.</span></span></span></span></span></div><div style="font-family: arial; \
font-size: 14px;"><span><span><span><span style="background-color:rgb(255, 255, \
255);display:inline !important"><span style="background-color:rgb(255, 255, \
255);display:inline !important"><br></span></span></span></span></span></div><div \
style="font-family: arial; font-size: 14px;"><span><span><span><span \
style="background-color:rgb(255, 255, 255);display:inline !important"><span \
style="background-color:rgb(255, 255, 255);display:inline !important">Setups where it \
works:</span></span></span></span></span></div><div style="font-family: arial; \
font-size: 14px;"><ul><li><span><span><span><span><span \
style="background-color:rgb(255, 255, 255);display:inline !important"><span \
style="background-color:rgb(255, 255, 255);display:inline \
!important"></span></span></span></span></span>A stock Ubuntu 18.04 on a physical \
machine with&nbsp;<span>Mesa DRI Intel(R) UHD Graphics (CML \
GT2).</span></span></li></ul><div><span><span>Setups where it doesn't \
work:</span></span></div><div><ul><li><span><span><span></span></span>Xephyr \
with&nbsp;<span>llvmpipe (LLVM 10.0.0, 256 \
bits)</span></span></li><li><span>A&nbsp;<span style="background-color:rgb(255, 255, \
255);display:inline !important">stock Ubuntu 18.04<span>&nbsp;under VirtualBox \
with&nbsp;<span>llvmpipe (LLVM 12.0.0, 256 bits) (Not sure why this doesn't get \
hardware acceleration)</span></span></span></span></li></ul><div><span><span \
style="background-color:rgb(255, 255, 255);display:inline \
!important"><span><span><br></span></span></span></span></div></div><div><span><span \
style="background-color:rgb(255, 255, 255);display:inline !important"><span><span>My \
question: What's the rule? Is there one? How do I detect whether I need to call it on \
every update or not?</span></span></span></span></div><div><span><span \
style="background-color:rgb(255, 255, 255);display:inline \
!important"><span><span><br></span></span></span></span></div><div><span><span \
style="background-color:rgb(255, 255, 255);display:inline \
!important"><span><span>Thanks in \
advance,</span></span></span></span></div><div><span><span \
style="background-color:rgb(255, 255, 255);display:inline \
!important"><span><span>Egil</span></span></span></span></div><div><span><span \
style="background-color:rgb(255, 255, 255);display:inline \
!important"><span><span><br></span></span></span></span></div></div><div \
class="protonmail_signature_block" style="font-family: arial; font-size: 14px;"> \
</div>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic