<feed xmlns='http://www.w3.org/2005/Atom'>
<title>yuzu/src/video_core/buffer_cache, branch main</title>
<subtitle>Nintendo Switch emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/'/>
<entry>
<title>video_core: Add fallback handling for failed storage buffer lookups</title>
<updated>2025-05-12T11:46:19+00:00</updated>
<author>
<name>Zephyron</name>
<email>zephyron@citron-emu.org</email>
</author>
<published>2025-04-22T06:56:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=0bf9615693f56027a52e4fe1379e96183b6ea9ee'/>
<id>0bf9615693f56027a52e4fe1379e96183b6ea9ee</id>
<content type='text'>
Implements a more robust error handling approach when storage buffer lookups
fail in the buffer cache. Instead of returning a null binding, the code now:

- Provides a fallback buffer with safe default values
- Implements warning rate limiting to prevent log spam
- Tracks warning counts per cbuf_index
- Logs detailed debug information periodically

This change helps prevent potential crashes when storage buffer lookups fail
while still maintaining visibility into the issue through strategic logging.

The fallback mechanism uses a safe static address and a reasonable buffer
size (16KB) to handle cases where the normal GPU to CPU address translation
fails.

Also updates copyright headers to include citron Emulator Project.

Signed-off-by: Zephyron &lt;zephyron@citron-emu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implements a more robust error handling approach when storage buffer lookups
fail in the buffer cache. Instead of returning a null binding, the code now:

- Provides a fallback buffer with safe default values
- Implements warning rate limiting to prevent log spam
- Tracks warning counts per cbuf_index
- Logs detailed debug information periodically

This change helps prevent potential crashes when storage buffer lookups fail
while still maintaining visibility into the issue through strategic logging.

The fallback mechanism uses a safe static address and a reasonable buffer
size (16KB) to handle cases where the normal GPU to CPU address translation
fails.

Also updates copyright headers to include citron Emulator Project.

Signed-off-by: Zephyron &lt;zephyron@citron-emu.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>buffer_cache: Simplify storage buffer binding logic</title>
<updated>2025-05-11T13:29:04+00:00</updated>
<author>
<name>Zephyron</name>
<email>zephyron@citron-emu.org</email>
</author>
<published>2025-01-26T06:13:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=9697037644ec28e4e5c65b1dd2f65e1558ebdc68'/>
<id>9697037644ec28e4e5c65b1dd2f65e1558ebdc68</id>
<content type='text'>
Reverts overly restrictive storage buffer validation and size calculation
that was causing rendering issues in The Legend of Zelda: Tears of the
Kingdom, particularly in underground/depth areas. The simplified approach:

- Uses GetMemoryLayoutSize() instead of manual page probing
- Removes unnecessary 4GB memory bounds validation
- Streamlines address translation and alignment handling

This fixes numerous reported cases of missing or corrupted rendering in
TOTK's underground areas where storage buffer operations are heavily used
for depth-related effects.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts overly restrictive storage buffer validation and size calculation
that was causing rendering issues in The Legend of Zelda: Tears of the
Kingdom, particularly in underground/depth areas. The simplified approach:

- Uses GetMemoryLayoutSize() instead of manual page probing
- Removes unnecessary 4GB memory bounds validation
- Streamlines address translation and alignment handling

This fixes numerous reported cases of missing or corrupted rendering in
TOTK's underground areas where storage buffer operations are heavily used
for depth-related effects.
</pre>
</div>
</content>
</entry>
<entry>
<title>buffer_cache: Fix storage buffer memory validation and size detection</title>
<updated>2025-05-11T11:17:03+00:00</updated>
<author>
<name>Zephyron</name>
<email>zephyron@citron-emu.org</email>
</author>
<published>2025-01-02T08:03:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=53be20f4ea9e1a2a2211d5cdc17d9c80dab7d269'/>
<id>53be20f4ea9e1a2a2211d5cdc17d9c80dab7d269</id>
<content type='text'>
Fixes the StorageBufferBinding function to properly handle memory validation
and size detection. Key changes include:

- Fix ReadBlock usage to properly handle void return values
- Implement safer memory validation using byte-level reads
- Improve size detection logic for storage buffers
- Fix NVN buffer size reading
- Add proper bounds checking for device memory addresses
- Add better error logging for invalid conditions

This addresses the "Failed to find storage buffer for cbuf index 0" errors
by implementing more robust memory validation and size detection. The changes
ensure proper handling of invalid memory addresses and prevent crashes from
accessing out-of-bounds memory.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes the StorageBufferBinding function to properly handle memory validation
and size detection. Key changes include:

- Fix ReadBlock usage to properly handle void return values
- Implement safer memory validation using byte-level reads
- Improve size detection logic for storage buffers
- Fix NVN buffer size reading
- Add proper bounds checking for device memory addresses
- Add better error logging for invalid conditions

This addresses the "Failed to find storage buffer for cbuf index 0" errors
by implementing more robust memory validation and size detection. The changes
ensure proper handling of invalid memory addresses and prevent crashes from
accessing out-of-bounds memory.
</pre>
</div>
</content>
</entry>
<entry>
<title>general: workarounds for SMMU syncing issues (#12749)</title>
<updated>2024-02-27T14:42:15+00:00</updated>
<author>
<name>liamwhite</name>
<email>liamwhite@users.noreply.github.com</email>
</author>
<published>2024-02-27T14:42:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=6948ac8c1622ebb3f9da065d3678e571b7ff726e'/>
<id>6948ac8c1622ebb3f9da065d3678e571b7ff726e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>buffer_cache: avoid overflow in usage tracker (#13166)</title>
<updated>2024-02-27T14:39:11+00:00</updated>
<author>
<name>liamwhite</name>
<email>liamwhite@users.noreply.github.com</email>
</author>
<published>2024-02-27T14:39:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=1de37306a521a3ee22f1f6703fa9c2f8169dcacb'/>
<id>1de37306a521a3ee22f1f6703fa9c2f8169dcacb</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 #10529 from liamwhite/critical-spacing</title>
<updated>2024-02-21T02:19:27+00:00</updated>
<author>
<name>Matías Locatti</name>
<email>42481638+goldenx86@users.noreply.github.com</email>
</author>
<published>2024-02-21T02:19:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=e0c17a21138ba4379a5c77b40a7d3fd7414ca605'/>
<id>e0c17a21138ba4379a5c77b40a7d3fd7414ca605</id>
<content type='text'>
caches: make critical reclamation less eager and possible in more cases</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
caches: make critical reclamation less eager and possible in more cases</pre>
</div>
</content>
</entry>
<entry>
<title>buffer_cache: use mapped range with large vertex buffer size</title>
<updated>2024-02-13T13:27:33+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2024-02-13T13:27:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=3067bfd126348470ce6473ca5eeee5bdd20917ac'/>
<id>3067bfd126348470ce6473ca5eeee5bdd20917ac</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>caches: make critical reclamation less eager and possible in more cases</title>
<updated>2024-02-11T18:41:13+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-05-31T16:36:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=865a0186b6db97afed21db6ad924c9968b437265'/>
<id>865a0186b6db97afed21db6ad924c9968b437265</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Common: Rename SplitRangeSet to OverlapRangeSet</title>
<updated>2024-02-05T22:01:17+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2024-02-05T11:46:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=fa47ac1c9f8b117d556c7c18ac9dcb062af5cefc'/>
<id>fa47ac1c9f8b117d556c7c18ac9dcb062af5cefc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Buffer Cache: Refactor to use Range sets instead</title>
<updated>2024-02-05T10:06:52+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2024-02-04T18:16:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=0d5a3abeaefd3a1682c48a59c5a9170cfb0a39d0'/>
<id>0d5a3abeaefd3a1682c48a59c5a9170cfb0a39d0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
