<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: mmozeiko</title><link>https://news.ycombinator.com/user?id=mmozeiko</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 08 Apr 2026 14:47:50 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mmozeiko" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mmozeiko in "Show HN: Svglib a SVG parser and renderer for Windows"]]></title><description><![CDATA[
<p>How does it compare to rendering SVG by Direct2D itself? When using ID2D1DeviceContext5::DrawSvgDocument method, and ID2D1SvgDocument can be loaded from file with ID2D1DeviceContext5::CreateSvgDocument + SHCreateStreamOnFileW.</p>
]]></description><pubDate>Fri, 13 Mar 2026 19:03:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47368286</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=47368286</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47368286</guid></item><item><title><![CDATA[An Innocuous Blog Post about vPMU in QEMU]]></title><description><![CDATA[
<p>Article URL: <a href="https://vulpinecitrus.info/blog/qemu-vpmu-heterogenous-cpu/">https://vulpinecitrus.info/blog/qemu-vpmu-heterogenous-cpu/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46967190">https://news.ycombinator.com/item?id=46967190</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 10 Feb 2026 21:30:19 +0000</pubDate><link>https://vulpinecitrus.info/blog/qemu-vpmu-heterogenous-cpu/</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=46967190</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46967190</guid></item><item><title><![CDATA[New comment by mmozeiko in "Novel OpenGL Pixel Shader Dewarping"]]></title><description><![CDATA[
<p>Ah, I see. Yeah, then the current approach is fine.</p>
]]></description><pubDate>Thu, 09 Oct 2025 20:34:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=45532747</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=45532747</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45532747</guid></item><item><title><![CDATA[New comment by mmozeiko in "Novel OpenGL Pixel Shader Dewarping"]]></title><description><![CDATA[
<p>From what I understand from code those unwarps are just doing matrix multiply to get unwraped pixel location? In this case doing these operations directly in fragment shader instead of texture lookup will be faster. Memory bandwidth is not free. But simple ALU like this (just couple FMA's) can easily hide in shadow of texture sampling that happens afterwards. So simply upload those undistortion matrices (mat1 & mat2) as uniforms and do matrix multiply in shader for adjusting texcoords.</p>
]]></description><pubDate>Thu, 09 Oct 2025 20:08:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=45532445</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=45532445</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45532445</guid></item><item><title><![CDATA[New comment by mmozeiko in "I designed my own fast game streaming video codec – PyroWave"]]></title><description><![CDATA[
<p>There's also Windows.Graphics.Capture. It allows to get texture not only for whole desktop, but just individual windows.</p>
]]></description><pubDate>Tue, 29 Jul 2025 18:54:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=44726999</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=44726999</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44726999</guid></item><item><title><![CDATA[New comment by mmozeiko in "Signal to Windows Recall: Drop Dead"]]></title><description><![CDATA[
<p>I don't know why Signal calls it "DRM" because the do not use DRM for this. Typically DRM means encryption & keys are involved (which is what Netflix & others are doing with Widevine or PlayReady).<p>All Signal does is just a simple Windows API call to exclude window from screen capture. SetWindowDisplayAffinity function with WDA_EXCLUDEFROMCAPTURE argument: <a href="https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowdisplayaffinity" rel="nofollow">https://learn.microsoft.com/en-us/windows/win32/api/winuser/...</a></p>
]]></description><pubDate>Tue, 27 May 2025 18:37:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=44109542</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=44109542</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44109542</guid></item><item><title><![CDATA[New comment by mmozeiko in "A leap year check in three instructions"]]></title><description><![CDATA[
<p>If you change logic and/or to bitwise and/or then it'll be branchless.</p>
]]></description><pubDate>Fri, 16 May 2025 00:14:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=44000615</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=44000615</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44000615</guid></item><item><title><![CDATA[New comment by mmozeiko in "Fast-PNG: PNG image decoder and encoder"]]></title><description><![CDATA[
<p><a href="https://github.com/veluca93/fpnge" rel="nofollow">https://github.com/veluca93/fpnge</a> is a very fast png encoder. A bit lower compression ratio, but runs significantly faster than alternatives. Here is a presentation with benchmarks:<p><a href="https://www.lucaversari.it/FJXL_and_FPNGE.pdf" rel="nofollow">https://www.lucaversari.it/FJXL_and_FPNGE.pdf</a></p>
]]></description><pubDate>Wed, 12 Mar 2025 19:23:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=43346755</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=43346755</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43346755</guid></item><item><title><![CDATA[New comment by mmozeiko in "AVX Bitwise ternary logic instruction busted"]]></title><description><![CDATA[
<p>There is a simple way to get that immediate from expression you want to calculate. For example, if you want to calculate following expression:<p><pre><code>    (NOT A) OR ((NOT B) XOR (C AND A))
</code></pre>
then you simply write<p><pre><code>    ~_MM_TERNLOG_A | (~_MM_TERNLOG_B ^ (_MM_TERNLOG_C & _MM_TERNLOG_A))
</code></pre>
Literally the expression you want to calculate. It evaluates to immediate from _MM_TERNLOG_A/B/C constants defined in intrinsic headers, at least for gcc & clang:<p><pre><code>    typedef enum {
      _MM_TERNLOG_A = 0xF0,
      _MM_TERNLOG_B = 0xCC,
      _MM_TERNLOG_C = 0xAA
    } _MM_TERNLOG_ENUM;
</code></pre>
For MSVC you define them yourself.</p>
]]></description><pubDate>Sun, 06 Oct 2024 20:51:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=41760202</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=41760202</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41760202</guid></item><item><title><![CDATA[New comment by mmozeiko in "Things you should know about Windows Input, but would rather not"]]></title><description><![CDATA[
<p>Unfortunately not everything. For example, no xbox 360 controller support: <a href="https://github.com/microsoft/GDK/issues/39">https://github.com/microsoft/GDK/issues/39</a></p>
]]></description><pubDate>Tue, 17 Sep 2024 18:47:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=41571198</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=41571198</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41571198</guid></item><item><title><![CDATA[New comment by mmozeiko in "Use Midnight Commander like a pro (2015)"]]></title><description><![CDATA[
<p>It is called far2l: <a href="https://packages.debian.org/search?keywords=far2l&searchon=names&suite=all&section=all" rel="nofollow">https://packages.debian.org/search?keywords=far2l&searchon=n...</a></p>
]]></description><pubDate>Sun, 21 Jan 2024 07:19:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=39076387</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=39076387</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39076387</guid></item><item><title><![CDATA[New comment by mmozeiko in "Far Manager: files and archives in Windows"]]></title><description><![CDATA[
<p>Alt + start typing jumps to file/folder with this name.<p>Ctrl + enter puts currently selected file/folder name into command-line.<p>Ctrl + O hides panels and shows you "background" with all the previous command outputs.<p>Custom editor can be set in F9 -> Options -> Editor settings.</p>
]]></description><pubDate>Sun, 13 Aug 2023 18:49:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=37112899</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=37112899</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37112899</guid></item><item><title><![CDATA[New comment by mmozeiko in "Far Manager: files and archives in Windows"]]></title><description><![CDATA[
<p>I recommend Polygon as virtual filesystem for SQLite database files: <a href="https://plugring.farmanager.com/plugin.php?l=en&pid=973" rel="nofollow noreferrer">https://plugring.farmanager.com/plugin.php?l=en&pid=973</a><p>PortaDev for accessing MTP mounts (like Android): <a href="https://plugring.farmanager.com/plugin.php?l=en&pid=933" rel="nofollow noreferrer">https://plugring.farmanager.com/plugin.php?l=en&pid=933</a><p>DiskMenu for adding custom locations in Alt+F1/F2 menus: <a href="https://sourceforge.net/projects/farplugs/files/DiskMenu/" rel="nofollow noreferrer">https://sourceforge.net/projects/farplugs/files/DiskMenu/</a><p>And if you're running Far under ConEmu, copy ConEmu\Plugins\ConEmu folder into Far's Plugins folder. It will do better integration with ConEmu (there will be bunch of new ConEmu related features under F11 menu in Far).</p>
]]></description><pubDate>Sun, 13 Aug 2023 10:08:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=37108413</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=37108413</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37108413</guid></item><item><title><![CDATA[New comment by mmozeiko in "Far Manager: files and archives in Windows"]]></title><description><![CDATA[
<p>On Ubuntu this seems to be official (?) ppa: <a href="https://launchpad.net/~far2l-team/+archive/ubuntu/ppa" rel="nofollow noreferrer">https://launchpad.net/~far2l-team/+archive/ubuntu/ppa</a> Make sure "far2l-gui" is installed.<p>On ArchLinux there's package in AUR: <a href="https://aur.archlinux.org/packages/far2l-git" rel="nofollow noreferrer">https://aur.archlinux.org/packages/far2l-git</a> (I maintain it).<p>Don't know details for other distros.</p>
]]></description><pubDate>Sun, 13 Aug 2023 09:22:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=37108163</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=37108163</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37108163</guid></item><item><title><![CDATA[New comment by mmozeiko in "Far Manager: files and archives in Windows"]]></title><description><![CDATA[
<p>Make sure you run wxgtk build, not the terminal one. Terminal is limited on what shortcuts it can do. But wxgtk build runs exactly as windows counterpart - Alt+F1/F2 and many other shortcuts work fine.</p>
]]></description><pubDate>Sun, 13 Aug 2023 03:23:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=37106390</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=37106390</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37106390</guid></item><item><title><![CDATA[New comment by mmozeiko in "The least interesting part about AVX-512 is the 512 bits vector width"]]></title><description><![CDATA[
<p>Here's a fancy trick from LLVM source: <a href="https://github.com/llvm/llvm-project/blob/main/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp#L4397-L4401">https://github.com/llvm/llvm-project/blob/main/llvm/lib/Targ...</a><p><pre><code>  #define A 0xf0
  #define B 0xcc
  #define C 0xaa
</code></pre>
And then you can build immediate for VPTERNLOG operation by writing bitwise expression with A/B/C values in source code.<p>For example, A^B^C=150. A^(~B&C)=210. And so on...<p>Also mentioned by Fabian here: <a href="https://twitter.com/rygorous/status/1187032693944410114" rel="nofollow noreferrer">https://twitter.com/rygorous/status/1187032693944410114</a></p>
]]></description><pubDate>Tue, 20 Jun 2023 02:27:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=36399010</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=36399010</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36399010</guid></item><item><title><![CDATA[New comment by mmozeiko in "Ask HN: Best way to play old games that require Windows 98/XP?"]]></title><description><![CDATA[
<p>There's also dxwrapper that implements old DirectDraw/3D interfaces with newer D3D9 api for better compatibility with newer Windows versions:<p><a href="https://github.com/elishacloud/dxwrapper">https://github.com/elishacloud/dxwrapper</a></p>
]]></description><pubDate>Mon, 12 Jun 2023 18:37:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=36298751</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=36298751</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36298751</guid></item><item><title><![CDATA[New comment by mmozeiko in "Win32 App Isolation"]]></title><description><![CDATA[
<p>I'm pretty sure such thing is implemented by hooking OS functions that are dealing with directory enumeration, create/open file, etc - and then redirecting to custom code that provides virtual files & their contents. There's no standard Windows API for that, aside writing custom driver. But hooking such functions is relatively straight forward process because they are imported from well known shared libraries - you just need to make sure you hook all the functions that are relevant to filesystem operations.</p>
]]></description><pubDate>Thu, 25 May 2023 03:39:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=36066822</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=36066822</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36066822</guid></item><item><title><![CDATA[New comment by mmozeiko in "C++ at the End of 2022"]]></title><description><![CDATA[
<p>Not fully open-sourced. There are bunch of pieces that are available only in compiled form - .obj/lib files. Like math.h functions.</p>
]]></description><pubDate>Mon, 02 Jan 2023 11:41:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=34216878</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=34216878</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34216878</guid></item><item><title><![CDATA[New comment by mmozeiko in "Brotli-G: A GPU compression/decompression standard for digital assets"]]></title><description><![CDATA[
<p>You can use it for any workload that can use D3D12 buffers or textures as input. All the API does for you is transfer data from disk to ID3D12Resource object. After that it is up to you to do whatever you want - use it for fragment shader or compute shader input, etc.. If you use other api's like cuda or vulkan, then you'll need to use interop to create their resources using D3D12 backed resource (or do a copy, whatever is possible there).</p>
]]></description><pubDate>Tue, 22 Nov 2022 21:28:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=33711752</link><dc:creator>mmozeiko</dc:creator><comments>https://news.ycombinator.com/item?id=33711752</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33711752</guid></item></channel></rss>