<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/video_core/shader/decode/warp.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>2021-07-23T01:51:22+00:00</updated>
<entry>
<title>shader: Remove old shader management</title>
<updated>2021-07-23T01:51:22+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2021-02-16T23:52:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=65069df8aa3975b055d70c3c615f9c99d60c72e0'/>
<id>urn:sha1:65069df8aa3975b055d70c3c615f9c99d60c72e0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>video_core: Remove unnecessary enum class casting in logging messages</title>
<updated>2020-12-07T05:41:50+00:00</updated>
<author>
<name>Lioncash</name>
<email>mathew1800@gmail.com</email>
</author>
<published>2020-12-07T05:41:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=ea0e85b869ffc0dd372168bf9871bc2523554355'/>
<id>urn:sha1:ea0e85b869ffc0dd372168bf9871bc2523554355</id>
<content type='text'>
fmt now automatically prints the numeric value of an enum class member
by default, so we don't need to use casts any more.

Reduces the line noise a bit.
</content>
</entry>
<entry>
<title>shader: Keep track of shaders using warp instructions</title>
<updated>2019-12-10T02:40:41+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2019-12-10T02:40:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=f2de7089e13582c1072b635c931129b946c21cfb'/>
<id>urn:sha1:f2de7089e13582c1072b635c931129b946c21cfb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>shader_ir/warp: Implement FSWZADD</title>
<updated>2019-11-07T23:08:41+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2019-11-03T02:44:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=bb94bcc99137a152f458147e17ba3b3e0765afbf'/>
<id>urn:sha1:bb94bcc99137a152f458147e17ba3b3e0765afbf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>gl_shader_decompiler: Reimplement shuffles with platform agnostic intrinsics</title>
<updated>2019-11-07T23:08:41+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2019-11-03T02:44:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=5fc04875a1026f89f2ffd7823b336cce48cb9a1a'/>
<id>urn:sha1:5fc04875a1026f89f2ffd7823b336cce48cb9a1a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>video_core/shader: Resolve instances of variable shadowing</title>
<updated>2019-10-24T03:00:31+00:00</updated>
<author>
<name>Lioncash</name>
<email>mathew1800@gmail.com</email>
</author>
<published>2019-10-24T01:26:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=0a71f5d6f45f72cc96b2578f011c5b4bc402ba31'/>
<id>urn:sha1:0a71f5d6f45f72cc96b2578f011c5b4bc402ba31</id>
<content type='text'>
Silences a few -Wshadow warnings.
</content>
</entry>
<entry>
<title>shader_ir/warp: Implement SHFL</title>
<updated>2019-09-17T20:44:07+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2019-08-27T01:09:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=42815d1d24ac58351b62c59ace23d552384c9f6b'/>
<id>urn:sha1:42815d1d24ac58351b62c59ace23d552384c9f6b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>shader_ir: Implement VOTE</title>
<updated>2019-08-21T17:50:38+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2019-08-10T02:50:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=67f47b2f6a1886765050da7dc3dccbe1492503c4'/>
<id>urn:sha1:67f47b2f6a1886765050da7dc3dccbe1492503c4</id>
<content type='text'>
Implement VOTE using Nvidia's intrinsics. Documentation about these can
be found here
https://developer.nvidia.com/reading-between-threads-shader-intrinsics

Instead of using portable ARB instructions I opted to use Nvidia
intrinsics because these are the closest we have to how Tegra X1
hardware renders.

To stub VOTE on non-Nvidia drivers (including nouveau) this commit
simulates a GPU with a warp size of one, returning what is meaningful
for the instruction being emulated:

* anyThreadNV(value) -&gt; value
* allThreadsNV(value) -&gt; value
* allThreadsEqualNV(value) -&gt; true

ballotARB, also known as "uint64_t(activeThreadsNV())", emits

VOTE.ANY Rd, PT, PT;

on nouveau's compiler. This doesn't match exactly to Nvidia's code

VOTE.ALL Rd, PT, PT;

Which is emulated with activeThreadsNV() by this commit. In theory this
shouldn't really matter since .ANY, .ALL and .EQ affect the predicates
(set to PT on those cases) and not the registers.
</content>
</entry>
</feed>
