| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | shader_recompiler: translate Switch 2 task and mesh programs | Takoroka | 3 days | 1 | -0/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | Mario Kart World draws some of its geometry with NVN task and mesh programs (the task program culls and writes the mesh workgroup count and a payload to its stage buffer; each mesh workgroup reads it back and writes vertices and primitives). Add Task and Mesh stages and translate them for VK_EXT_mesh_shader: - the ISBE pseudo instruction from the lowering becomes reads and writes of an emulated stage buffer: the task's output region is the task payload, the mesh output regions live in workgroup memory - every EXIT of these stages jumps to one final return, so all invocations reach the epilogue: a barrier, then OpEmitMeshTasksEXT, or OpSetMeshOutputsEXT and a copy of the 32-element vertex and primitive groups (lines named by the mesh header's and the pass-through geometry header's output maps) to arrayed and per-primitive outputs - Sirit lacks the two mesh instructions: they are emitted as OpStore markers and replaced after assembly - fragment inputs a mesh program writes per primitive get PerPrimitiveEXT The captured task and mesh programs of the title translate to SPIR-V that spirv-val accepts. | ||||
| * | emit_glasm: Fix lmem size computation | ameerj | 2023-06-25 | 1 | -1/+1 |
| | | |||||
| * | glasm: Add MS sampler types | ameerj | 2023-01-27 | 1 | -0/+2 |
| | | |||||
| * | shader: Implement miss attribute layer | FengChen | 2022-11-17 | 1 | -0/+1 |
| | | |||||
| * | Merge pull request #8858 from vonchenplus/mipmap | bunnei | 2022-11-03 | 1 | -0/+3 |
| |\ | | | | | video_core: Generate mipmap texture by drawing | ||||
| | * | video_core: Generate mipmap texture by drawing | FengChen | 2022-09-20 | 1 | -0/+3 |
| | | | |||||
| * | | chore: fix some typos | Andrea Pappacoda | 2022-09-23 | 1 | -1/+1 |
| |/ | | | | Fix some typos reported by Lintian | ||||
| * | general: Convert source file copyright comments over to SPDX | Morph | 2022-04-23 | 1 | -3/+2 |
| | | | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later. | ||||
| * | shader_recompiler: Adjust emit_context includes | ameerj | 2021-12-05 | 1 | -1/+1 |
| | | |||||
| * | glsl/glasm: Pass and use scaling parameters in shaders | ReinUsesLisp | 2021-11-16 | 1 | -0/+3 |
| | | |||||
| * | emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive() | Lioncash | 2021-07-26 | 1 | -1/+1 |
| | | | | | This should be LINES_ADJACENCY | ||||
| * | shader: Avoid usage of C++20 ranges to build in clang | ReinUsesLisp | 2021-07-22 | 1 | -2/+5 |
| | | |||||
| * | glasm: Add passthrough geometry shader support | ReinUsesLisp | 2021-07-22 | 1 | -5/+23 |
| | | |||||
| * | shader: Rework varyings and implement passthrough geometry shaders | ReinUsesLisp | 2021-07-22 | 1 | -2/+4 |
| | | | | | | | Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's. | ||||
| * | shader: Move loop safety tests to code emission | ReinUsesLisp | 2021-07-22 | 1 | -0/+17 |
| | | |||||
| * | glasm: Implement SetAttribute ViewportMask | ameerj | 2021-07-22 | 1 | -1/+2 |
| | | |||||
| * | shader: Split profile and runtime info headers | ReinUsesLisp | 2021-07-22 | 1 | -0/+1 |
| | | |||||
| * | shader: Add logging | ReinUsesLisp | 2021-07-22 | 1 | -1/+1 |
| | | |||||
| * | glasm: Use ARB_derivative_control conditionally | ReinUsesLisp | 2021-07-22 | 1 | -3/+4 |
| | | |||||
| * | opengl: Declare fragment outputs even if they are not used | ReinUsesLisp | 2021-07-22 | 1 | -2/+1 |
| | | | | | | | Fixes Ori and the Blind Forest's menu on GLASM. For some reason (probably high level optimizations) it is not sanitized on SPIR-V for OpenGL. Vulkan is unaffected by this change. | ||||
| * | glasm: Reduce reg allocation leaks from an exception to a log | ReinUsesLisp | 2021-07-22 | 1 | -1/+1 |
| | | |||||
| * | glasm: Implement Y direction | ReinUsesLisp | 2021-07-22 | 1 | -0/+3 |
| | | |||||
| * | glasm: Release phi node registers after they are no longer needed | ReinUsesLisp | 2021-07-22 | 1 | -31/+22 |
| | | |||||
| * | glasm: Remove unnecessary value types | ReinUsesLisp | 2021-07-22 | 1 | -11/+1 |
| | | |||||
| * | glasm: Throw when there are register leaks | ReinUsesLisp | 2021-07-22 | 1 | -0/+3 |
| | | |||||
| * | glasm: Catch more register leaks | ReinUsesLisp | 2021-07-22 | 1 | -1/+7 |
| | | | | | | | | | | | | | | Add support for null registers. These are used when an instruction has no usages. This comes handy when an instruction is only used for its CC value, with the caveat of having to invalidate all pseudo-instructions before defining the instruction itself in the register allocator. This commits changes this. Workaround a bug on Nvidia's condition codes conditional execution using branches. | ||||
| * | glasm: Fix usage counting on phi nodes | ReinUsesLisp | 2021-07-22 | 1 | -3/+9 |
| | | |||||
| * | gl_shader_cache,glasm: Conditionally use typeless image reads extension | ReinUsesLisp | 2021-07-22 | 1 | -2/+4 |
| | | |||||
| * | glasm: Implement forced early Z | ReinUsesLisp | 2021-07-22 | 1 | -2/+6 |
| | | |||||
| * | shader: Split profile and runtime information in separate structs | ReinUsesLisp | 2021-07-22 | 1 | -9/+10 |
| | | |||||
| * | glasm: Implement FSWZADD | ameerj | 2021-07-22 | 1 | -1/+15 |
| | | |||||
| * | glasm: Fix tessellation headers | ReinUsesLisp | 2021-07-22 | 1 | -2/+2 |
| | | |||||
| * | glasm: Add tessellation shader declarations | ReinUsesLisp | 2021-07-22 | 1 | -0/+35 |
| | | |||||
| * | glasm: Declare geometry program headers | ReinUsesLisp | 2021-07-22 | 1 | -0/+35 |
| | | |||||
| * | glasm: Implement ImageRead | ReinUsesLisp | 2021-07-22 | 1 | -1/+2 |
| | | |||||
| * | glasm: Implement stores to gl_ViewportIndex | ReinUsesLisp | 2021-07-22 | 1 | -4/+12 |
| | | |||||
| * | glasm: Support textures used in more than one stage | ReinUsesLisp | 2021-07-22 | 1 | -2/+2 |
| | | |||||
| * | shader: Read branch conditions from an instruction | ReinUsesLisp | 2021-07-22 | 1 | -1/+1 |
| | | | | | Fixes the identity removal pass. | ||||
| * | glasm: Implement TEX and TEXS instructions | ReinUsesLisp | 2021-07-22 | 1 | -0/+3 |
| | | | | | | Remove lod clamp from texture instructions with lod, as this is not needed (nor supported). | ||||
| * | emit_glasm: Enable ARB_draw_buffers when needed | ReinUsesLisp | 2021-07-22 | 1 | -0/+4 |
| | | |||||
| * | shader_recompiler: GCC fixes | lat9nq | 2021-07-22 | 1 | -8/+8 |
| | | | | | | Fixes members of unnamed union not being accessible, and one function without a declaration. | ||||
| * | glasm: Add Void type to GLASM values | ReinUsesLisp | 2021-07-22 | 1 | -0/+1 |
| | | |||||
| * | glasm: Add graphics specific shader declarations to GLASM | ReinUsesLisp | 2021-07-22 | 1 | -6/+26 |
| | | |||||
| * | glasm: Implement local memory for glasm | ameerj | 2021-07-22 | 1 | -0/+3 |
| | | |||||
| * | glasm: Initial implementation of phi nodes on GLASM | ReinUsesLisp | 2021-07-22 | 1 | -3/+56 |
| | | |||||
| * | glasm: Declare NV_shader_thread_group when needed | ReinUsesLisp | 2021-07-22 | 1 | -3/+4 |
| | | |||||
| * | glasm: Rework control flow introducing a syntax list | ReinUsesLisp | 2021-07-22 | 1 | -7/+34 |
| | | | | | | This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow. | ||||
| * | glasm: Implement Storage atomics | ameerj | 2021-07-22 | 1 | -0/+7 |
| | | | | | | StorageAtomicExchangeU64 is failing test seemingly due to failure storing 64-bit result into the register | ||||
| * | glasm: Ensure reg alloc order across compilers on GLASM | ReinUsesLisp | 2021-07-22 | 1 | -11/+14 |
| | | | | | | | | | | | | | | | | | | | Use a struct constructor to serialize register allocation arguments to ensure registers are allocated in the same order regardless of the compiler used. The A and B functions can be called in any order when passed as arguments to "foo": foo(A(), B()) But the order is guaranteed for curly-braced constructor calls in classes: Foo{A(), B()} Use this to get consistent behavior. | ||||
| * | glasm: Enable unintentionally disabled register aliasing on GLASM | ReinUsesLisp | 2021-07-22 | 1 | -16/+11 |
| | | |||||
