<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/VideoCommon, branch master</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>VideoCommon: error if the same asset id is used with a different type</title>
<updated>2026-11-05T22:10:41+00:00</updated>
<author>
<name>iwubcode</name>
<email>iwubcode@users.noreply.github.com</email>
</author>
<published>2026-11-05T01:27:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=b0c7778406169f21f86937a8083852152811025d'/>
<id>b0c7778406169f21f86937a8083852152811025d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #14916 from iwubcode/vertex_manager_draw_refactor</title>
<updated>2026-11-02T03:35:00+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2026-11-02T03:35:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=d182533d363eae8c753d37cfad4107930da2019a'/>
<id>d182533d363eae8c753d37cfad4107930da2019a</id>
<content type='text'>
VideoBackends / VideoCommon: split draw calls into separate commit and render functions</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
VideoBackends / VideoCommon: split draw calls into separate commit and render functions</pre>
</div>
</content>
</entry>
<entry>
<title>VideoBackends / VideoCommon: split draw calls into separate commit and render steps</title>
<updated>2026-10-31T18:42:20+00:00</updated>
<author>
<name>iwubcode</name>
<email>iwubcode@users.noreply.github.com</email>
</author>
<published>2026-10-05T01:04:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=4fb368cf36342d6b354d93b8711ef7f2e1881023'/>
<id>4fb368cf36342d6b354d93b8711ef7f2e1881023</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #14943 from Sintendo/vertex-arm64</title>
<updated>2026-10-31T15:13:17+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-10-31T15:13:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=47075151c3a45e93ee8856a07006d60332533cce'/>
<id>47075151c3a45e93ee8856a07006d60332533cce</id>
<content type='text'>
VertexLoaderARM64: Optimize RGB565 and RGBA6666</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
VertexLoaderARM64: Optimize RGB565 and RGBA6666</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #14928 from JosJuice/neon-texture-decoder</title>
<updated>2026-10-31T15:12:31+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-10-31T15:12:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=97b33a25274300d9af1a35faa7d5dd35b4cf0dc6'/>
<id>97b33a25274300d9af1a35faa7d5dd35b4cf0dc6</id>
<content type='text'>
VideoCommon: Add TextureDecoder_ARM64.cpp</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
VideoCommon: Add TextureDecoder_ARM64.cpp</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #14782 from tygyh/Core/Use-lerp-and-midpoint</title>
<updated>2026-10-31T07:04:42+00:00</updated>
<author>
<name>iwubcode</name>
<email>iwubcode@users.noreply.github.com</email>
</author>
<published>2026-10-31T07:04:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=1f3086790122c49a7cda4ba04318dae568ab52f9'/>
<id>1f3086790122c49a7cda4ba04318dae568ab52f9</id>
<content type='text'>
Replace manual calculations with std::lerp and std::midpoint</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace manual calculations with std::lerp and std::midpoint</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #14866 from SuperSamus/efb-to-texture-clear-byte</title>
<updated>2026-10-30T20:14:15+00:00</updated>
<author>
<name>iwubcode</name>
<email>iwubcode@users.noreply.github.com</email>
</author>
<published>2026-10-30T20:14:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=2c6a598fae31be8c123181e74e3f2f08d601e0d3'/>
<id>2c6a598fae31be8c123181e74e3f2f08d601e0d3</id>
<content type='text'>
VideoCommon: Option for byte to memset in RAM when `EFBToTextureEnable = True`</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
VideoCommon: Option for byte to memset in RAM when `EFBToTextureEnable = True`</pre>
</div>
</content>
</entry>
<entry>
<title>VertexLoaderARM64: Optimize RGBA6666</title>
<updated>2026-10-24T17:01:59+00:00</updated>
<author>
<name>Sintendo</name>
<email>3380580+Sintendo@users.noreply.github.com</email>
</author>
<published>2026-10-21T22:20:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=f22dd8677ff402e8e79a796a9355e6c5955fe1fd'/>
<id>f22dd8677ff402e8e79a796a9355e6c5955fe1fd</id>
<content type='text'>
This commit replaces the old instruction sequence with one that is
considerably shorter. Main ideas are as follows:

 - Use AND with constant mask to isolate the needed bits.
 - Use ORR + LSL/LSR to shirt the bits into position and combine in one
   instruction where possible.
 - Red and alpha are already sequential, so don't need to wait for the
   byteswap.
 - Do the expansion from 6 to 8 bits at the end for all 4 components
   in one step.

Before:

ldur   w14, [x0]
rev    w14, w14
ubfx   w15, w14, #0, #6
orr    w15, wzr, w15, lsl #2
orr    w15, w15, w15, lsr #6
orr    w16, wzr, w15, lsl #24
ubfx   w15, w14, #6, #6
orr    w15, wzr, w15, lsl #2
orr    w15, w15, w15, lsr #6
orr    w16, w16, w15, lsl #16
ubfx   w15, w14, #12, #6
orr    w15, wzr, w15, lsl #2
orr    w15, w15, w15, lsr #6
orr    w16, w16, w15, lsl #8
ubfx   w15, w14, #18, #6
orr    w16, w16, w15, lsl #2
orr    w16, w16, w15, lsr #4
str    w16, [x1, #0xc]

After:

ldur   w14, [x0]
rev    w15, w14
and    w16, w14, #0xfc00
and    w14, w14, #0x3f000000
lsr    w16, w16, #8
orr    w16, w16, w14, lsl #2
and    w14, w15, #0xfc0
and    w15, w15, #0x3f000
orr    w15, w15, w14, lsl #14
orr    w16, w16, w15, lsr #2
and    w15, w16, #0xc0c0c0c0
orr    w16, w16, w15, lsr #6
str    w16, [x1, #0xc]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit replaces the old instruction sequence with one that is
considerably shorter. Main ideas are as follows:

 - Use AND with constant mask to isolate the needed bits.
 - Use ORR + LSL/LSR to shirt the bits into position and combine in one
   instruction where possible.
 - Red and alpha are already sequential, so don't need to wait for the
   byteswap.
 - Do the expansion from 6 to 8 bits at the end for all 4 components
   in one step.

Before:

ldur   w14, [x0]
rev    w14, w14
ubfx   w15, w14, #0, #6
orr    w15, wzr, w15, lsl #2
orr    w15, w15, w15, lsr #6
orr    w16, wzr, w15, lsl #24
ubfx   w15, w14, #6, #6
orr    w15, wzr, w15, lsl #2
orr    w15, w15, w15, lsr #6
orr    w16, w16, w15, lsl #16
ubfx   w15, w14, #12, #6
orr    w15, wzr, w15, lsl #2
orr    w15, w15, w15, lsr #6
orr    w16, w16, w15, lsl #8
ubfx   w15, w14, #18, #6
orr    w16, w16, w15, lsl #2
orr    w16, w16, w15, lsr #4
str    w16, [x1, #0xc]

After:

ldur   w14, [x0]
rev    w15, w14
and    w16, w14, #0xfc00
and    w14, w14, #0x3f000000
lsr    w16, w16, #8
orr    w16, w16, w14, lsl #2
and    w14, w15, #0xfc0
and    w15, w15, #0x3f000
orr    w15, w15, w14, lsl #14
orr    w16, w16, w15, lsr #2
and    w15, w16, #0xc0c0c0c0
orr    w16, w16, w15, lsr #6
str    w16, [x1, #0xc]
</pre>
</div>
</content>
</entry>
<entry>
<title>VertexLoaderARM64: Optimize RGB565</title>
<updated>2026-10-24T17:00:43+00:00</updated>
<author>
<name>Sintendo</name>
<email>3380580+Sintendo@users.noreply.github.com</email>
</author>
<published>2026-10-21T21:54:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=9c60ba938cce5deb0a6e97769d0456cd2b58f7c3'/>
<id>9c60ba938cce5deb0a6e97769d0456cd2b58f7c3</id>
<content type='text'>
This replaces the old instruction sequence with one that is considerably
shorter. Main ideas are as follows:

 - Use AND with constant mask to isolate the needed bits.
 - Use ORR + LSL/LSR to shift the bits into position and combine in one
   instruction where possible.
 - Red and blue are already sequential, so don't need to wait for the
   byteswap. This is especially handy for red, where the bits are
   already where they need to be.
 - Red and blue can be expanded from 5 to 8 bits together.

Before:

ldurh  w14, [x0, #0x1]
rev16  w14, w14
and    w15, w14, #0x1f
orr    w15, wzr, w15, lsl #3
orr    w15, w15, w15, lsr #5
orr    w16, wzr, w15, lsl #16
ubfx   w15, w14, #5, #6
orr    w15, wzr, w15, lsl #2
orr    w15, w15, w15, lsr #6
orr    w16, w16, w15, lsl #8
ubfx   w15, w14, #11, #5
orr    w16, w16, w15, lsl #3
orr    w16, w16, w15, lsr #2
orr    w16, w16, #0xff000000
str    w16, [x1, #0xc]

After:

ldurh  w14, [x0, #0x1]
rev16  w15, w14
bfi    w14, w14, #11, #13
and    w16, w14, #0xf800f8
and    w14, w14, #0xe000e0
orr    w16, w16, #0xff000000
orr    w16, w16, w14, lsr #5
and    w14, w15, #0x7e0
and    w15, w15, #0x600
orr    w14, w14, w15, lsr #6
orr    w16, w16, w14, lsl #5
str    w16, [x1, #0xc]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This replaces the old instruction sequence with one that is considerably
shorter. Main ideas are as follows:

 - Use AND with constant mask to isolate the needed bits.
 - Use ORR + LSL/LSR to shift the bits into position and combine in one
   instruction where possible.
 - Red and blue are already sequential, so don't need to wait for the
   byteswap. This is especially handy for red, where the bits are
   already where they need to be.
 - Red and blue can be expanded from 5 to 8 bits together.

Before:

ldurh  w14, [x0, #0x1]
rev16  w14, w14
and    w15, w14, #0x1f
orr    w15, wzr, w15, lsl #3
orr    w15, w15, w15, lsr #5
orr    w16, wzr, w15, lsl #16
ubfx   w15, w14, #5, #6
orr    w15, wzr, w15, lsl #2
orr    w15, w15, w15, lsr #6
orr    w16, w16, w15, lsl #8
ubfx   w15, w14, #11, #5
orr    w16, w16, w15, lsl #3
orr    w16, w16, w15, lsr #2
orr    w16, w16, #0xff000000
str    w16, [x1, #0xc]

After:

ldurh  w14, [x0, #0x1]
rev16  w15, w14
bfi    w14, w14, #11, #13
and    w16, w14, #0xf800f8
and    w14, w14, #0xe000e0
orr    w16, w16, #0xff000000
orr    w16, w16, w14, lsr #5
and    w14, w15, #0x7e0
and    w15, w15, #0x600
orr    w14, w14, w15, lsr #6
orr    w16, w16, w14, lsl #5
str    w16, [x1, #0xc]
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #14934 from iwubcode/efb_interface_remove_global</title>
<updated>2026-10-18T18:26:42+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2026-10-18T18:26:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=1822e3859f061c6f81076c94eb4ba7e6e0a3706c'/>
<id>1822e3859f061c6f81076c94eb4ba7e6e0a3706c</id>
<content type='text'>
VideoCommon: remove global framebuffer manager from EFBInterface</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
VideoCommon: remove global framebuffer manager from EFBInterface</pre>
</div>
</content>
</entry>
</feed>
