Merge branch 'master' into vulkan

This commit is contained in:
Triang3l
2022-02-03 21:12:10 +03:00
501 changed files with 56183 additions and 10196 deletions

View File

@@ -435,11 +435,23 @@ struct ParsedVertexFetchInstruction {
bool predicate_condition = false;
// Describes how the instruction result is stored.
// Note that if the result doesn't have any components to write the fetched
// value to, the address calculation in vfetch_full must still be performed
// because such a vfetch_full may be used to setup addressing for vfetch_mini
// (wires in the color pass of 5454082B do vfetch_full to r2.000_, and then a
// true vfetch_mini).
InstructionResult result;
// Number of source operands.
size_t operand_count = 0;
// Describes each source operand.
// Note that for vfetch_mini, which inherits the operands from vfetch_full,
// the index operand register may been overwritten between the vfetch_full and
// the vfetch_mini (happens in 4D530910 for wheels), but that should have no
// effect on the index actually used for fetching. A copy of the index
// therefore must be stored by vfetch_full (the base address, stride and
// rounding may be pre-applied to it since they will be the same in the
// vfetch_full and all its vfetch_mini instructions).
InstructionOperand operands[2];
struct Attributes {
@@ -689,6 +701,9 @@ class Shader {
// Bitmap of all bool constants read by the shader.
// Each bit corresponds to a storage index [0-255].
uint32_t bool_bitmap[256 / 32];
// Bitmap of all vertex fetch constants read by the shader.
// Each bit corresponds to a storage index [0-95].
uint32_t vertex_fetch_bitmap[96 / 32];
// Total number of kConstantFloat registers read by the shader.
uint32_t float_count;