<div style="font-family: arial; font-size: 14px;"><span style="font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 0.875rem;">Heyas!</span></div><div><br>(accidentally posted to the non-devel xorg mailing list first)<br><br></div><div>I'm writing a compositing window manager that renders using opengl (<span><a href="https://redhog.github.io/InfiniteGlass/" rel="noreferrer nofollow noopener" target="_blank" style="color:var(--interaction-norm);text-decoration:underline;cursor:pointer">https://redhog.github.io/InfiniteGlass/</a> ). To render windows, I'm using <span>XCompositeNameWindowPixmap and <span>glXCreatePixmap.</span></span></span></div><div><span><span><span><br></span></span></span></div><div><span><span><span>Calling <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 <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><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><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><ul style="margin:0px;padding:0px 0px 0px 2em;font-size:1em"><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 <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 style="margin:0px;padding:0px 0px 0px 2em;font-size:1em"><li><span><span><span></span></span>Xephyr with <span>llvmpipe (LLVM 10.0.0, 256 bits)</span></span></li><li><span>A <span style="background-color:rgb(255, 255, 255);display:inline !important">stock Ubuntu 18.04<span> under VirtualBox with <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><span><span><span style="background-color:rgb(255, 255, 255);display:inline !important"><span><span>Egil</span></span></span></span></span></div><div><br></div><div class="protonmail_signature_block" style="font-family: arial; font-size: 14px;"><div class="protonmail_signature_block-proton">
    </div>
</div>