Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | video_core: Remove unnecessary enum class casting in logging messages | Lioncash | 2020-12-07 | 1 | -2/+2 |
| | | | | | | | 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. | ||||
* | shader/conversion: Implement I2I sign extension, saturation and selection | ReinUsesLisp | 2020-04-07 | 1 | -13/+100 |
| | | | | | | | | Reimplements I2I adding sign extension, saturation (clamp source value to the destination), selection and destination sizes that are not 32 bits wide. It doesn't implement CC yet. | ||||
* | shader/conversion: Fix F2F rounding operations with different sizes | ReinUsesLisp | 2020-03-26 | 1 | -5/+10 |
| | | | | | | | | | Rounding operations only matter when the conversion size of source and destination is the same, i.e. .F16.F16, .F32.F32 and .F64.F64. When there is a mismatch (.F16.F32), these bits are used for IEEE rounding, we don't emulate this because GLSL and SPIR-V don't support configuring it per operation. | ||||
* | shader_conversion: I2F : add Assert for case src_size is Short | Nguyen Dac Nam | 2020-02-19 | 1 | -0/+3 |
| | |||||
* | fix warning | Nguyen Dac Nam | 2020-02-19 | 1 | -1/+1 |
| | |||||
* | clang-format fix | Nguyen Dac Nam | 2020-02-19 | 1 | -1/+1 |
| | |||||
* | shader_conversion: add conversion I2F for Short | Nguyen Dac Nam | 2020-02-19 | 1 | -9/+6 |
| | |||||
* | shader/conversion: Implement byte selector in I2F | ReinUsesLisp | 2019-12-18 | 1 | -2/+13 |
| | | | | | | | I2F's byte selector is used to choose what bytes to convert to float. e.g. if the input is 0xaabbccdd and the selector is ".B3" it will convert 0xaa. The default (when it's not shown in nvdisasm) is ".B0", in that example the default would convert 0xdd to float. | ||||
* | shader_ir/conversion: Split int and float selector and implement F2F H1 | ReinUsesLisp | 2019-08-28 | 1 | -18/+16 |
| | |||||
* | shader_ir/conversion: Implement F2I F16 Ra.H1 | ReinUsesLisp | 2019-08-28 | 1 | -4/+16 |
| | |||||
* | Shader_Ir: Implement F16 Variants of F2F, F2I, I2F. | Fernando Sahmkow | 2019-07-20 | 1 | -5/+25 |
| | | | | | This commit takes care of implementing the F16 Variants of the conversion instructions and makes sure conversions are done. | ||||
* | shader: Use shared_ptr to store nodes and move initialization to file | ReinUsesLisp | 2019-06-06 | 1 | -0/+1 |
| | | | | | | | | | 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. | ||||
* | Merge pull request #2322 from ReinUsesLisp/wswitch | bunnei | 2019-04-29 | 1 | -3/+4 |
|\ | | | | | video_core: Silent -Wswitch warnings | ||||
| * | video_core: Silent -Wswitch warnings | ReinUsesLisp | 2019-04-18 | 1 | -3/+4 |
| | | |||||
* | | Do some corrections in conversion shader instructions. | Fernando Sahmkow | 2019-04-16 | 1 | -16/+53 |
|/ | | | | | | Corrects encodings for I2F, F2F, I2I and F2I Implements Immediate variants of all four conversion types. Add assertions to unimplemented stuffs. | ||||
* | Corrected F2I None mode to RoundEven. | Fernando Sahmkow | 2019-02-11 | 1 | -3/+3 |
| | |||||
* | shader_ir: Rename BasicBlock to NodeBlock | ReinUsesLisp | 2019-02-03 | 1 | -1/+1 |
| | | | | It's not always used as a basic block. Rename it for consistency. | ||||
* | shader_ir: Pass decoded nodes as a whole instead of per basic blocks | ReinUsesLisp | 2019-02-03 | 1 | -1/+1 |
| | | | | | | | | | Some games call LDG at the top of a basic block, making the tracking heuristic to fail. This commit lets the heuristic the decoded nodes as a whole instead of per basic blocks. This may lead to some false positives but allows it the heuristic to track cases it previously couldn't. | ||||
* | shader_ir: Unify constant buffer offset values | ReinUsesLisp | 2019-01-30 | 1 | -3/+3 |
| | | | | | | | Constant buffer values on the shader IR were using different offsets if the access direct or indirect. cbuf34 has a non-multiplied offset while cbuf36 does. On shader decoding this commit multiplies it by four on cbuf34 queries. | ||||
* | shader_ir: Pass to decoder functions basic block's code | ReinUsesLisp | 2019-01-15 | 1 | -1/+1 |
| | |||||
* | shader_decode: Improve zero flag implementation | ReinUsesLisp | 2019-01-15 | 1 | -8/+3 |
| | |||||
* | video_core: Return safe values after an assert hits | ReinUsesLisp | 2019-01-15 | 1 | -4/+4 |
| | |||||
* | shader_decode: Implement F2F_C | ReinUsesLisp | 2019-01-15 | 1 | -2/+10 |
| | |||||
* | shader_decode: Implement I2I | ReinUsesLisp | 2019-01-15 | 1 | -0/+26 |
| | |||||
* | shader_decode: Implement F2I | ReinUsesLisp | 2019-01-15 | 1 | -0/+37 |
| | |||||
* | shader_decode: Implement I2F | ReinUsesLisp | 2019-01-15 | 1 | -0/+23 |
| | |||||
* | shader_decode: Implement F2F | ReinUsesLisp | 2019-01-15 | 1 | -1/+37 |
| | |||||
* | shader_ir: Initial implementation | ReinUsesLisp | 2019-01-15 | 1 | -0/+24 |