<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/video_core/gpu_synch.cpp, branch nx2</title>
<subtitle>Mirror of github.com/cira0100/Eglantine-public nx2, a fork of Djihads80/Eglantine.</subtitle>
<id>https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2</id>
<link rel='self' href='https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2'/>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/'/>
<updated>2020-12-29T00:33:48+00:00</updated>
<entry>
<title>video_core: gpu: Refactor out synchronous/asynchronous GPU implementations.</title>
<updated>2020-12-29T00:33:48+00:00</updated>
<author>
<name>bunnei</name>
<email>bunneidev@gmail.com</email>
</author>
<published>2020-12-12T06:26:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=927976c86c9049dd136b6e8804c773d86442dc3c'/>
<id>urn:sha1:927976c86c9049dd136b6e8804c773d86442dc3c</id>
<content type='text'>
- We must always use a GPU thread now, even with synchronous GPU.
</content>
</entry>
<entry>
<title>video_core: Resolve more variable shadowing scenarios</title>
<updated>2020-12-04T21:19:09+00:00</updated>
<author>
<name>Lioncash</name>
<email>mathew1800@gmail.com</email>
</author>
<published>2020-12-04T19:39:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=2f181b6a90cb3be8b4eed32601c619dc385d18e8'/>
<id>urn:sha1:2f181b6a90cb3be8b4eed32601c619dc385d18e8</id>
<content type='text'>
Resolves variable shadowing scenarios up to the end of the OpenGL code
to make it nicer to review. The rest will be resolved in a following
commit.
</content>
</entry>
<entry>
<title>video_core: NVDEC Implementation</title>
<updated>2020-10-27T03:07:36+00:00</updated>
<author>
<name>ameerj</name>
<email>aj662@drexel.edu</email>
</author>
<published>2020-10-27T03:07:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=9ef5c53e52941548c8a7e097ec3df8c07d460567'/>
<id>urn:sha1:9ef5c53e52941548c8a7e097ec3df8c07d460567</id>
<content type='text'>
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library.

The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data.

To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library.

Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header.

Async GPU is not properly implemented at the moment.

Co-Authored-By: David &lt;25727384+ogniK5377@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>video_core: Initialize renderer with a GPU</title>
<updated>2020-08-22T04:51:45+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2020-06-11T03:58:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=1c61cf29b68ec1b377e43165bb7cf4075e2d61fe'/>
<id>urn:sha1:1c61cf29b68ec1b377e43165bb7cf4075e2d61fe</id>
<content type='text'>
Add an extra step in GPU initialization to be able to initialize render
backends with a valid GPU instance.
</content>
</entry>
<entry>
<title>General: Correct rebase, sync gpu and context management.</title>
<updated>2020-06-27T15:36:08+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2020-04-03T15:58:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=543b6b315ff90ecad860b4f3009721cdb4e96244'/>
<id>urn:sha1:543b6b315ff90ecad860b4f3009721cdb4e96244</id>
<content type='text'>
</content>
</entry>
<entry>
<title>GPU: Setup Flush/Invalidate to use VAddr instead of CacheAddr</title>
<updated>2020-04-06T13:21:46+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2020-04-05T16:58:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=5cc292ac3ce86e62ef7d89877f61e69cc6f069e7'/>
<id>urn:sha1:5cc292ac3ce86e62ef7d89877f61e69cc6f069e7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Frontend/GPU: Refactor context management</title>
<updated>2020-03-25T03:03:42+00:00</updated>
<author>
<name>James Rowe</name>
<email>jroweboy@gmail.com</email>
</author>
<published>2020-03-25T02:58:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=b37d69e5e1033d7de7c8a2c3cbcfe55144c17de2'/>
<id>urn:sha1:b37d69e5e1033d7de7c8a2c3cbcfe55144c17de2</id>
<content type='text'>
Changes the GraphicsContext to be managed by the GPU core. This
eliminates the need for the frontends to fool around with tricky
MakeCurrent/DoneCurrent calls that are dependent on the settings (such
as async gpu option).

This also refactors out the need to use QWidget::fromWindowContainer as
that caused issues with focus and input handling. Now we use a regular
QWidget and just access the native windowHandle() directly.

Another change is removing the debug tool setting in FrameMailbox.
Instead of trying to block the frontend until a new frame is ready, the
core will now take over presentation and draw directly to the window if
the renderer detects that its hooked by NSight or RenderDoc

Lastly, since it was in the way, I removed ScopeAcquireWindowContext and
replaced it with a simple subclass in GraphicsContext that achieves the
same result
</content>
</entry>
<entry>
<title>gpu: Change optional&lt;reference_wrapper&lt;T&gt;&gt; to T* for FramebufferConfig</title>
<updated>2019-08-21T04:55:25+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2019-08-21T04:55:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=d762e37a187aa4993de1db91a1c5f521dcb98f18'/>
<id>urn:sha1:d762e37a187aa4993de1db91a1c5f521dcb98f18</id>
<content type='text'>
</content>
</entry>
<entry>
<title>nv_host_ctrl: Make Sync GPU variant always return synced result.</title>
<updated>2019-07-05T19:49:20+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2019-06-10T12:19:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=772d205e8ff96263489e1edec8921bd164b5c3fc'/>
<id>urn:sha1:772d205e8ff96263489e1edec8921bd164b5c3fc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>video_core/gpu: Create threads separately from initialization</title>
<updated>2019-04-12T02:11:40+00:00</updated>
<author>
<name>Lioncash</name>
<email>mathew1800@gmail.com</email>
</author>
<published>2019-04-09T18:02:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=e0962940a2e70b8fa4a4ccc50aab12845a41f881'/>
<id>urn:sha1:e0962940a2e70b8fa4a4ccc50aab12845a41f881</id>
<content type='text'>
Like with CPU emulation, we generally don't want to fire off the threads
immediately after the relevant classes are initialized, we want to do
this after all necessary data is done loading first.

This splits the thread creation into its own interface member function
to allow controlling when these threads in particular get created.
</content>
</entry>
</feed>
