<feed xmlns='http://www.w3.org/2005/Atom'>
<title>yuzu-mainline/src/yuzu_tester/emu_window, branch master</title>
<subtitle>A backup of the Yuzu mainline repo. Only includes the master branch, nothing else.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/yuzu-mainline/'/>
<entry>
<title>cmake: Remove yuzu_tester</title>
<updated>2021-01-15T06:14:44+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2021-01-15T06:04:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/yuzu-mainline/commit/?id=af540b00573e8c6b935289873ba624ecf81002ce'/>
<id>af540b00573e8c6b935289873ba624ecf81002ce</id>
<content type='text'>
We never ended up using yuzu_tester.
Removing it saves code duplication with yuzu_cmd, and distribution size on
prebuilt packages.

For unit testing, we can use catch2 from guest code and dump the results
to a file. Then execute yuzu from a script on ci if we want this to be
automated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We never ended up using yuzu_tester.
Removing it saves code duplication with yuzu_cmd, and distribution size on
prebuilt packages.

For unit testing, we can use catch2 from guest code and dump the results
to a file. Then execute yuzu from a script on ci if we want this to be
automated.
</pre>
</div>
</content>
</entry>
<entry>
<title>Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main thread</title>
<updated>2020-11-23T22:58:49+00:00</updated>
<author>
<name>comex</name>
<email>comexk@gmail.com</email>
</author>
<published>2020-11-22T21:05:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/yuzu-mainline/commit/?id=994f4977810749c0b597e7a7531a02d907967a68'/>
<id>994f4977810749c0b597e7a7531a02d907967a68</id>
<content type='text'>
EmuWindow::PollEvents was called from the GPU thread (or the CPU thread
in sync-GPU mode) when swapping buffers.  It had three implementations:

- In GRenderWindow, it didn't actually poll events, just set a flag and
  emit a signal to indicate that a frame was displayed.

- In EmuWindow_SDL2_Hide, it did nothing.

- In EmuWindow_SDL2, it did call SDL_PollEvents, but this is wrong
  because SDL_PollEvents is supposed to be called on the thread that set
  up video - in this case, the main thread, which was sleeping in a
  busyloop (regardless of whether sync-GPU was enabled).  On macOS this
  causes a crash.

To fix this:

- Rename EmuWindow::PollEvents to OnFrameDisplayed, and give it a
  default implementation that does nothing.

- In EmuWindow_SDL2, do not override OnFrameDisplayed, but instead have
  the main thread call SDL_WaitEvent in a loop.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
EmuWindow::PollEvents was called from the GPU thread (or the CPU thread
in sync-GPU mode) when swapping buffers.  It had three implementations:

- In GRenderWindow, it didn't actually poll events, just set a flag and
  emit a signal to indicate that a frame was displayed.

- In EmuWindow_SDL2_Hide, it did nothing.

- In EmuWindow_SDL2, it did call SDL_PollEvents, but this is wrong
  because SDL_PollEvents is supposed to be called on the thread that set
  up video - in this case, the main thread, which was sleeping in a
  busyloop (regardless of whether sync-GPU was enabled).  On macOS this
  causes a crash.

To fix this:

- Rename EmuWindow::PollEvents to OnFrameDisplayed, and give it a
  default implementation that does nothing.

- In EmuWindow_SDL2, do not override OnFrameDisplayed, but instead have
  the main thread call SDL_WaitEvent in a loop.
</pre>
</div>
</content>
</entry>
<entry>
<title>input_common: Eliminate most global state</title>
<updated>2020-08-27T20:11:17+00:00</updated>
<author>
<name>Lioncash</name>
<email>mathew1800@gmail.com</email>
</author>
<published>2020-08-27T19:16:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/yuzu-mainline/commit/?id=9e1b0af25907f7a8b960aa5c1e7d931691f40196'/>
<id>9e1b0af25907f7a8b960aa5c1e7d931691f40196</id>
<content type='text'>
Abstracts most of the input mechanisms under an InputSubsystem class
that is managed by the frontends, eliminating any static constructors
and destructors. This gets rid of global accessor functions and also
allows the frontends to have a more fine-grained control over the
lifecycle of the input subsystem.

This also makes it explicit which interfaces rely on the input subsystem
instead of making it opaque in the interface functions. All that remains
to migrate over is the factories, which can be done in a separate
change.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Abstracts most of the input mechanisms under an InputSubsystem class
that is managed by the frontends, eliminating any static constructors
and destructors. This gets rid of global accessor functions and also
allows the frontends to have a more fine-grained control over the
lifecycle of the input subsystem.

This also makes it explicit which interfaces rely on the input subsystem
instead of making it opaque in the interface functions. All that remains
to migrate over is the factories, which can be done in a separate
change.
</pre>
</div>
</content>
</entry>
<entry>
<title>yuzu: Drop SDL2 and Qt frontend Vulkan requirements</title>
<updated>2020-04-07T19:32:19+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2020-04-02T05:32:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/yuzu-mainline/commit/?id=bf1d66b7c074c02aa8148f2edbdc959082c229e1'/>
<id>bf1d66b7c074c02aa8148f2edbdc959082c229e1</id>
<content type='text'>
Create Vulkan instances and surfaces from the Vulkan backend.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Create Vulkan instances and surfaces from the Vulkan backend.
</pre>
</div>
</content>
</entry>
<entry>
<title>Address review and fix broken yuzu-tester build</title>
<updated>2020-03-26T05:32:42+00:00</updated>
<author>
<name>James Rowe</name>
<email>jroweboy@gmail.com</email>
</author>
<published>2020-03-25T04:57:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/yuzu-mainline/commit/?id=cf9c94d4017120b618194a720942ef4e5c8289bd'/>
<id>cf9c94d4017120b618194a720942ef4e5c8289bd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>frontend: sdl2: emu_window: Implement separate presentation thread.</title>
<updated>2020-02-26T02:23:00+00:00</updated>
<author>
<name>bunnei</name>
<email>bunneidev@gmail.com</email>
</author>
<published>2020-02-17T20:35:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/yuzu-mainline/commit/?id=2e16c237845bf1b5ff89b7b7a3f8bc1a84729eb1'/>
<id>2e16c237845bf1b5ff89b7b7a3f8bc1a84729eb1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>yuzu: Implement Vulkan frontend</title>
<updated>2020-01-29T20:53:11+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2020-01-21T19:40:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/yuzu-mainline/commit/?id=f92cbc55018b5a3d98dd2093354f20c62ace5fda'/>
<id>f92cbc55018b5a3d98dd2093354f20c62ace5fda</id>
<content type='text'>
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing
bits on Vulkan initialization.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing
bits on Vulkan initialization.
</pre>
</div>
</content>
</entry>
<entry>
<title>yuzutest: Support multiple tests per executable</title>
<updated>2019-06-10T04:03:11+00:00</updated>
<author>
<name>Zach Hilman</name>
<email>zachhilman@gmail.com</email>
</author>
<published>2019-04-04T22:05:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/yuzu-mainline/commit/?id=f279e792b7c23a9fabce7c56c53c01fcf4e87547'/>
<id>f279e792b7c23a9fabce7c56c53c01fcf4e87547</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>yuzu_tester: Add SDL2-based EmuWindow that doesn't show the window</title>
<updated>2019-06-10T04:03:11+00:00</updated>
<author>
<name>Zach Hilman</name>
<email>zachhilman@gmail.com</email>
</author>
<published>2019-03-26T00:30:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/yuzu-mainline/commit/?id=ae5a46256e35a89e7f303fa6510e3f2e8aca04e3'/>
<id>ae5a46256e35a89e7f303fa6510e3f2e8aca04e3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
