Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | shader: Remove old shader management | ReinUsesLisp | 2021-07-23 | 1 | -464/+0 |
| | |||||
* | Revert "Start of Integer flags implementation" | ReinUsesLisp | 2021-01-25 | 1 | -48/+3 |
| | | | | | This reverts #4713. The implementation in that PR is not accurate. It does not reflect the behavior seen in hardware. | ||||
* | shader_ir: Fix comment typo | Levi Behunin | 2021-01-23 | 1 | -1/+1 |
| | |||||
* | Merge remote-tracking branch 'upstream/master' into int-flags | Levi | 2021-01-11 | 1 | -10/+11 |
|\ | |||||
| * | Merge pull request #5159 from lioncash/move-amend | Rodrigo Locatti | 2020-12-07 | 1 | -2/+2 |
| |\ | | | | | | | shader_ir: std::move node within DeclareAmend() | ||||
| | * | shader_ir: std::move node within DeclareAmend() | Lioncash | 2020-12-07 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | Same behavior, but elides an unnecessary atomic reference count increment and decrement. | ||||
| * | | video_core: Remove unnecessary enum class casting in logging messages | Lioncash | 2020-12-07 | 1 | -5/+5 |
| |/ | | | | | | | | | | | | | 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. | ||||
| * | video_core: Resolve more variable shadowing scenarios pt.3 | Lioncash | 2020-12-05 | 1 | -3/+4 |
| | | | | | | | | | | Cleans out the rest of the occurrences of variable shadowing and makes any further occurrences of shadowing compiler errors. | ||||
* | | More forgetting... duh | Levi Behunin | 2020-09-25 | 1 | -2/+2 |
| | | |||||
* | | Forgot to apply suggestion here as well | Levi Behunin | 2020-09-25 | 1 | -1/+1 |
| | | |||||
* | | Address Comments | Levi Behunin | 2020-09-25 | 1 | -22/+27 |
| | | |||||
* | | Start of Integer flags implementation | Levi Behunin | 2020-09-25 | 1 | -3/+43 |
|/ | |||||
* | video_core: Allow copy elision to take place where applicable | Lioncash | 2020-07-21 | 1 | -2/+2 |
| | | | | | Removes const from some variables that are returned from functions, as this allows the move assignment/constructors to execute for them. | ||||
* | shader_ir: Separate float-point comparisons in ordered and unordered | ReinUsesLisp | 2020-05-09 | 1 | -64/+45 |
| | | | | | This allows us to use native SPIR-V instructions without having to manually check for NAN. | ||||
* | CMakeLists: Specify -Wextra on linux builds | Lioncash | 2020-04-16 | 1 | -4/+3 |
| | | | | | | | | | | | Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well. | ||||
* | shader_ir: Add error message for EXIT.FCSM_TR | ReinUsesLisp | 2020-04-04 | 1 | -0/+3 |
| | |||||
* | shader/shader_ir: Track usage in input attribute and of legacy varyings | ReinUsesLisp | 2020-03-16 | 1 | -34/+50 |
| | |||||
* | shader/shader_ir: Fix clip distance usage stores | ReinUsesLisp | 2020-03-16 | 1 | -2/+1 |
| | |||||
* | shader/shader_ir: Change declare output attribute to a switch | ReinUsesLisp | 2020-03-16 | 1 | -9/+9 |
| | |||||
* | video_core: Rename "const buffer locker" to "registry" | ReinUsesLisp | 2020-03-09 | 1 | -2/+3 |
| | |||||
* | Shader_IR: Address feedback. | Fernando Sahmkow | 2020-01-25 | 1 | -2/+1 |
| | |||||
* | Shader_IR: Implement Injectable Custom Variables to the IR. | Fernando Sahmkow | 2020-01-24 | 1 | -0/+9 |
| | |||||
* | GPU: Implement guest driver profile and deduce texture handler sizes. | Fernando Sahmkow | 2020-01-24 | 1 | -0/+1 |
| | |||||
* | Shader_IR: Address Feedback | Fernando Sahmkow | 2020-01-04 | 1 | -2/+2 |
| | |||||
* | Shader_IR: add the ability to amend code in the shader ir. | Fernando Sahmkow | 2019-12-30 | 1 | -0/+6 |
| | | | | | | | This commit introduces a mechanism by which shader IR code can be amended and extended. This useful for track algorithms where certain information can derived from before the track such as indexes to array samplers. | ||||
* | Merge pull request #2976 from FernandoS27/cache-fast-brx-rebased | Rodrigo Locatti | 2019-10-26 | 1 | -4/+3 |
|\ | | | | | Implement Fast BRX, fix TXQ and addapt the Shader Cache for it | ||||
| * | gl_shader_decompiler: Move entries to a separate function | ReinUsesLisp | 2019-10-25 | 1 | -4/+3 |
| | | |||||
| * | Shader_Cache: setup connection of ConstBufferLocker | Fernando Sahmkow | 2019-10-25 | 1 | -2/+2 |
| | | |||||
* | | shader_ir: Use std::array with pair instead of unordered_map | Lioncash | 2019-10-24 | 1 | -53/+67 |
|/ | | | | | | | | Given the overall size of the maps are very small, we can use arrays of pairs here instead of always heap allocating a new map every time the functions are called. Given the small size of the maps, the difference in container lookups are negligible, especially given the entries are already sorted. | ||||
* | Shader_IR: allow else derivation to be optional. | Fernando Sahmkow | 2019-10-05 | 1 | -1/+1 |
| | |||||
* | Shader_Ir: Refactor Decompilation process and allow multiple decompilation modes. | Fernando Sahmkow | 2019-10-05 | 1 | -2/+4 |
| | |||||
* | gl_shader_decompiler: Implement AST decompiling | Fernando Sahmkow | 2019-10-05 | 1 | -3/+3 |
| | |||||
* | shader_ir: Declare Manager and pass it to appropiate programs. | Fernando Sahmkow | 2019-10-05 | 1 | -1/+1 |
| | |||||
* | VideoCore: Corrections to the MME Inliner and removal of hacky instance management. | Fernando Sahmkow | 2019-09-19 | 1 | -0/+12 |
| | |||||
* | shader_ir: Implement ST_S | ReinUsesLisp | 2019-09-05 | 1 | -0/+9 |
| | | | | | This instruction writes to a memory buffer shared with threads within the same work group. It is known as "shared" memory in GLSL. | ||||
* | shader/decode: Implement S2R Tic | ReinUsesLisp | 2019-07-22 | 1 | -0/+5 |
| | |||||
* | shader_ir: std::move Node instance where applicable | Lioncash | 2019-07-17 | 1 | -51/+56 |
| | | | | | | | | | These are std::shared_ptr instances underneath the hood, which means copying them isn't as cheap as a regular pointer. Particularly so on weakly-ordered systems. This avoids atomic reference count increments and decrements where they aren't necessary for the core set of operations. | ||||
* | shader_ir: Rename Get/SetTemporal to Get/SetTemporary | Lioncash | 2019-07-17 | 1 | -2/+2 |
| | | | | | | This is more accurate in terms of describing what the functions are actually doing. Temporal relates to time, not the setting of a temporary itself. | ||||
* | Merge pull request #2565 from ReinUsesLisp/track-indirect | Fernando Sahmkow | 2019-07-16 | 1 | -1/+10 |
|\ | | | | | shader/track: Track indirect buffers | ||||
| * | shader: Allow tracking of indirect buffers without variable offset | ReinUsesLisp | 2019-07-15 | 1 | -1/+10 |
| | | | | | | | | | | | | While changing this code, simplify tracking code to allow returning the base address node, this way callers don't have to manually rebuild it on each invocation. | ||||
* | | Merge pull request #2695 from ReinUsesLisp/layer-viewport | Fernando Sahmkow | 2019-07-15 | 1 | -0/+16 |
|\ \ | |/ |/| | gl_shader_decompiler: Implement gl_ViewportIndex and gl_Layer in vertex shaders | ||||
| * | gl_shader_decompiler: Implement gl_ViewportIndex and gl_Layer in vertex shaders | ReinUsesLisp | 2019-07-08 | 1 | -0/+16 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit implements gl_ViewportIndex and gl_Layer in vertex and geometry shaders. In the case it's used in a vertex shader, it requires ARB_shader_viewport_layer_array. This extension is available on AMD and Nvidia devices (mesa and proprietary drivers), but not available on Intel on any platform. At the moment of writing this description I don't know if this is a hardware limitation or a driver limitation. In the case that ARB_shader_viewport_layer_array is not available, writes to these registers on a vertex shader are ignored, with the appropriate logging. | ||||
* | | shader_ir: propagate shader size to the IR | Fernando Sahmkow | 2019-07-09 | 1 | -2/+2 |
|/ | |||||
* | shader: Use shared_ptr to store nodes and move initialization to file | ReinUsesLisp | 2019-06-06 | 1 | -92/+10 |
| | | | | | | | | | Instead of having a vector of unique_ptr stored in a vector and returning star pointers to this, use shared_ptr. While changing initialization code, move it to a separate file when possible. This is a first step to allow code analysis and node generation beyond the ShaderIR class. | ||||
* | shader/shader_ir: Make Comment() take a std::string by value | Lioncash | 2019-05-23 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | | | | | This allows for forming comment nodes without making unnecessary copies of the std::string instance. e.g. previously: Comment(fmt::format("Base address is c[0x{:x}][0x{:x}]", cbuf->GetIndex(), cbuf_offset)); Would result in a copy of the string being created, as CommentNode() takes a std::string by value (a const ref passed to a value parameter results in a copy). Now, only one instance of the string is ever moved around. (fmt::format returns a std::string, and since it's returned from a function by value, this is a prvalue (which can be treated like an rvalue), so it's moved into Comment's string parameter), we then move it into the CommentNode constructor, which then moves the string into its member variable). | ||||
* | Merge pull request #2441 from ReinUsesLisp/al2p | bunnei | 2019-05-19 | 1 | -6/+7 |
|\ | | | | | shader: Implement AL2P and ALD.PHYS | ||||
| * | shader: Add physical attributes commentaries | ReinUsesLisp | 2019-05-03 | 1 | -1/+1 |
| | | |||||
| * | shader_ir/memory: Implement physical input attributes | ReinUsesLisp | 2019-05-03 | 1 | -0/+5 |
| | | |||||
| * | shader: Remove unused AbufNode Ipa mode | ReinUsesLisp | 2019-05-03 | 1 | -7/+3 |
| | | |||||
* | | shader/shader_ir: Place implementations of constructor and destructor in cpp file | Lioncash | 2019-05-19 | 1 | -0/+7 |
|/ | | | | | | Given the class contains quite a lot of non-trivial types, place the constructor and destructor within the cpp file to avoid inlining construction and destruction code everywhere the class is used. | ||||
* | Merge pull request #2322 from ReinUsesLisp/wswitch | bunnei | 2019-04-29 | 1 | -3/+6 |
|\ | | | | | video_core: Silent -Wswitch warnings | ||||
| * | video_core: Silent -Wswitch warnings | ReinUsesLisp | 2019-04-18 | 1 | -3/+6 |
| | | |||||
* | | shader_ir/decode: Fix half float pre-operations and remove MetaHalfArithmetic | ReinUsesLisp | 2019-04-16 | 1 | -7/+11 |
| | | | | | | | | | | | | | | Operations done before the main half float operation (like HAdd) were managing a packed value instead of the unpacked one. Adding an unpacked operation allows us to drop the per-operand MetaHalfArithmetic entry, simplifying the code overall. | ||||
* | | shader_ir/decode: Implement half float saturation | ReinUsesLisp | 2019-04-16 | 1 | -0/+9 |
| | | |||||
* | | renderer_opengl: Implement half float NaN comparisons | ReinUsesLisp | 2019-04-16 | 1 | -12/+5 |
| | | |||||
* | | shader_ir: Avoid using static on heap-allocated objects | ReinUsesLisp | 2019-04-16 | 1 | -5/+4 |
|/ | | | | | Using static here might be faster at runtime, but it adds a heap allocation called before main. | ||||
* | shader_ir: Rename BasicBlock to NodeBlock | ReinUsesLisp | 2019-02-03 | 1 | -7/+7 |
| | | | | It's not always used as a basic block. Rename it for consistency. | ||||
* | shader_decode: Improve zero flag implementation | ReinUsesLisp | 2019-01-15 | 1 | -0/+19 |
| | |||||
* | shader_ir: Remove composite primitives and use temporals instead | ReinUsesLisp | 2019-01-15 | 1 | -0/+8 |
| | |||||
* | shader_decode: Use BitfieldExtract instead of shift + and | ReinUsesLisp | 2019-01-15 | 1 | -0/+5 |
| | |||||
* | shader_decode: Rework HSETP2 | ReinUsesLisp | 2019-01-15 | 1 | -11/+11 |
| | |||||
* | shader_decode: Implement POPC | ReinUsesLisp | 2019-01-15 | 1 | -0/+2 |
| | |||||
* | video_core: Return safe values after an assert hits | ReinUsesLisp | 2019-01-15 | 1 | -0/+2 |
| | |||||
* | shader_ir: Add condition code helper | ReinUsesLisp | 2019-01-15 | 1 | -0/+10 |
| | |||||
* | shader_ir: Add predicate combiner helper | ReinUsesLisp | 2019-01-15 | 1 | -0/+12 |
| | |||||
* | shader_ir: Add comparison helpers | ReinUsesLisp | 2019-01-15 | 1 | -0/+97 |
| | |||||
* | shader_ir: Add half float helpers | ReinUsesLisp | 2019-01-15 | 1 | -0/+37 |
| | |||||
* | shader_ir: Add integer helpers | ReinUsesLisp | 2019-01-15 | 1 | -0/+35 |
| | |||||
* | shader_ir: Add float helpers | ReinUsesLisp | 2019-01-15 | 1 | -0/+19 |
| | |||||
* | shader_ir: Add setters | ReinUsesLisp | 2019-01-15 | 1 | -0/+16 |
| | |||||
* | shader_ir: Add local memory getters | ReinUsesLisp | 2019-01-15 | 1 | -0/+4 |
| | |||||
* | shader_ir: Add internal flag getters | ReinUsesLisp | 2019-01-15 | 1 | -0/+8 |
| | |||||
* | shader_ir: Add attribute getters | ReinUsesLisp | 2019-01-15 | 1 | -0/+21 |
| | |||||
* | shader_ir: Add constant buffer getters | ReinUsesLisp | 2019-01-15 | 1 | -0/+21 |
| | |||||
* | shader_ir: Add register getter | ReinUsesLisp | 2019-01-15 | 1 | -0/+7 |
| | |||||
* | shader_ir: Add immediate node constructors | ReinUsesLisp | 2019-01-15 | 1 | -0/+16 |
| | |||||
* | shader_ir: Initial implementation | ReinUsesLisp | 2019-01-15 | 1 | -0/+105 |