summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader_ir.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* shader: Use shared_ptr to store nodes and move initialization to fileReinUsesLisp2019-06-061-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 valueLioncash2019-05-231-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/al2pbunnei2019-05-191-6/+7
|\ | | | | shader: Implement AL2P and ALD.PHYS
| * shader: Add physical attributes commentariesReinUsesLisp2019-05-031-1/+1
| |
| * shader_ir/memory: Implement physical input attributesReinUsesLisp2019-05-031-0/+5
| |
| * shader: Remove unused AbufNode Ipa modeReinUsesLisp2019-05-031-7/+3
| |
* | shader/shader_ir: Place implementations of constructor and destructor in cpp fileLioncash2019-05-191-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/wswitchbunnei2019-04-291-3/+6
|\ | | | | video_core: Silent -Wswitch warnings
| * video_core: Silent -Wswitch warningsReinUsesLisp2019-04-181-3/+6
| |
* | shader_ir/decode: Fix half float pre-operations and remove MetaHalfArithmeticReinUsesLisp2019-04-161-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 saturationReinUsesLisp2019-04-161-0/+9
| |
* | renderer_opengl: Implement half float NaN comparisonsReinUsesLisp2019-04-161-12/+5
| |
* | shader_ir: Avoid using static on heap-allocated objectsReinUsesLisp2019-04-161-5/+4
|/ | | | | Using static here might be faster at runtime, but it adds a heap allocation called before main.
* shader_ir: Rename BasicBlock to NodeBlockReinUsesLisp2019-02-031-7/+7
| | | | It's not always used as a basic block. Rename it for consistency.
* shader_decode: Improve zero flag implementationReinUsesLisp2019-01-151-0/+19
|
* shader_ir: Remove composite primitives and use temporals insteadReinUsesLisp2019-01-151-0/+8
|
* shader_decode: Use BitfieldExtract instead of shift + andReinUsesLisp2019-01-151-0/+5
|
* shader_decode: Rework HSETP2ReinUsesLisp2019-01-151-11/+11
|
* shader_decode: Implement POPCReinUsesLisp2019-01-151-0/+2
|
* video_core: Return safe values after an assert hitsReinUsesLisp2019-01-151-0/+2
|
* shader_ir: Add condition code helperReinUsesLisp2019-01-151-0/+10
|
* shader_ir: Add predicate combiner helperReinUsesLisp2019-01-151-0/+12
|
* shader_ir: Add comparison helpersReinUsesLisp2019-01-151-0/+97
|
* shader_ir: Add half float helpersReinUsesLisp2019-01-151-0/+37
|
* shader_ir: Add integer helpersReinUsesLisp2019-01-151-0/+35
|
* shader_ir: Add float helpersReinUsesLisp2019-01-151-0/+19
|
* shader_ir: Add settersReinUsesLisp2019-01-151-0/+16
|
* shader_ir: Add local memory gettersReinUsesLisp2019-01-151-0/+4
|
* shader_ir: Add internal flag gettersReinUsesLisp2019-01-151-0/+8
|
* shader_ir: Add attribute gettersReinUsesLisp2019-01-151-0/+21
|
* shader_ir: Add constant buffer gettersReinUsesLisp2019-01-151-0/+21
|
* shader_ir: Add register getterReinUsesLisp2019-01-151-0/+7
|
* shader_ir: Add immediate node constructorsReinUsesLisp2019-01-151-0/+16
|
* shader_ir: Initial implementationReinUsesLisp2019-01-151-0/+105