[Vulkan] Blend and depth/stencil state, small pipeline cleanup

This commit is contained in:
Triang3l
2022-02-15 23:00:21 +03:00
parent a64264ed77
commit c75e0dd19e
10 changed files with 1018 additions and 158 deletions

View File

@@ -34,7 +34,7 @@ class SpirvShaderTranslator : public ShaderTranslator {
// TODO(Triang3l): Change to 0xYYYYMMDD once it's out of the rapid
// prototyping stage (easier to do small granular updates with an
// incremental counter).
static constexpr uint32_t kVersion = 2;
static constexpr uint32_t kVersion = 3;
struct {
// Dynamically indexable register count from SQ_PROGRAM_CNTL.
@@ -46,6 +46,11 @@ class SpirvShaderTranslator : public ShaderTranslator {
struct PixelShaderModification {
// Dynamically indexable register count from SQ_PROGRAM_CNTL.
uint32_t dynamic_addressable_register_count : 8;
// Color outputs removed from the shader to implement a zero color write
// mask when independent blending (and thus independent write masks) is
// not supported without switching to a render pass with some attachments
// actually excluded.
uint32_t color_outputs_disabled : 4;
} pixel;
uint64_t value = 0;