|
|
@@ -924,10 +924,10 @@ constexpr uint64_t kSortKeyDrawTypeSequence = uint64_t(2)<<kSortKeyDrawTypeBi
|
|
|
//
|
|
|
constexpr uint8_t kSortKeyTransNumBits = 2;
|
|
|
|
|
|
-constexpr uint8_t kSortKeyDraw0TransShift = kSortKeyDrawTypeBitShift - kSortKeyTransNumBits;
|
|
|
-constexpr uint64_t kSortKeyDraw0TransMask = uint64_t(0x3)<<kSortKeyDraw0TransShift;
|
|
|
+constexpr uint8_t kSortKeyDraw0BlendShift = kSortKeyDrawTypeBitShift - kSortKeyTransNumBits;
|
|
|
+constexpr uint64_t kSortKeyDraw0BlendMask = uint64_t(0x3)<<kSortKeyDraw0BlendShift;
|
|
|
|
|
|
-constexpr uint8_t kSortKeyDraw0ProgramShift = kSortKeyDraw0TransShift - BGFX_CONFIG_SORT_KEY_NUM_BITS_PROGRAM;
|
|
|
+constexpr uint8_t kSortKeyDraw0ProgramShift = kSortKeyDraw0BlendShift - BGFX_CONFIG_SORT_KEY_NUM_BITS_PROGRAM;
|
|
|
constexpr uint64_t kSortKeyDraw0ProgramMask = uint64_t(BGFX_CONFIG_MAX_PROGRAMS-1)<<kSortKeyDraw0ProgramShift;
|
|
|
|
|
|
constexpr uint8_t kSortKeyDraw0DepthShift = kSortKeyDraw0ProgramShift - BGFX_CONFIG_SORT_KEY_NUM_BITS_DEPTH;
|
|
|
@@ -937,20 +937,20 @@ constexpr uint64_t kSortKeyDraw0DepthMask = ( (uint64_t(1)<<BGFX_CONFIG_SOR
|
|
|
constexpr uint8_t kSortKeyDraw1DepthShift = kSortKeyDrawTypeBitShift - BGFX_CONFIG_SORT_KEY_NUM_BITS_DEPTH;
|
|
|
constexpr uint64_t kSortKeyDraw1DepthMask = ( (uint64_t(1)<<BGFX_CONFIG_SORT_KEY_NUM_BITS_DEPTH)-1)<<kSortKeyDraw1DepthShift;
|
|
|
|
|
|
-constexpr uint8_t kSortKeyDraw1TransShift = kSortKeyDraw1DepthShift - kSortKeyTransNumBits;
|
|
|
-constexpr uint64_t kSortKeyDraw1TransMask = uint64_t(0x3)<<kSortKeyDraw1TransShift;
|
|
|
+constexpr uint8_t kSortKeyDraw1BlendShift = kSortKeyDraw1DepthShift - kSortKeyTransNumBits;
|
|
|
+constexpr uint64_t kSortKeyDraw1BlendMask = uint64_t(0x3)<<kSortKeyDraw1BlendShift;
|
|
|
|
|
|
-constexpr uint8_t kSortKeyDraw1ProgramShift = kSortKeyDraw1TransShift - BGFX_CONFIG_SORT_KEY_NUM_BITS_PROGRAM;
|
|
|
+constexpr uint8_t kSortKeyDraw1ProgramShift = kSortKeyDraw1BlendShift - BGFX_CONFIG_SORT_KEY_NUM_BITS_PROGRAM;
|
|
|
constexpr uint64_t kSortKeyDraw1ProgramMask = uint64_t(BGFX_CONFIG_MAX_PROGRAMS-1)<<kSortKeyDraw1ProgramShift;
|
|
|
|
|
|
//
|
|
|
constexpr uint8_t kSortKeyDraw2SeqShift = kSortKeyDrawTypeBitShift - BGFX_CONFIG_SORT_KEY_NUM_BITS_SEQ;
|
|
|
constexpr uint64_t kSortKeyDraw2SeqMask = ( (uint64_t(1)<<BGFX_CONFIG_SORT_KEY_NUM_BITS_SEQ)-1)<<kSortKeyDraw2SeqShift;
|
|
|
|
|
|
-constexpr uint8_t kSortKeyDraw2TransShift = kSortKeyDraw2SeqShift - kSortKeyTransNumBits;
|
|
|
-constexpr uint64_t kSortKeyDraw2TransMask = uint64_t(0x3)<<kSortKeyDraw2TransShift;
|
|
|
+constexpr uint8_t kSortKeyDraw2BlendShift = kSortKeyDraw2SeqShift - kSortKeyTransNumBits;
|
|
|
+constexpr uint64_t kSortKeyDraw2BlendMask = uint64_t(0x3)<<kSortKeyDraw2BlendShift;
|
|
|
|
|
|
-constexpr uint8_t kSortKeyDraw2ProgramShift = kSortKeyDraw2TransShift - BGFX_CONFIG_SORT_KEY_NUM_BITS_PROGRAM;
|
|
|
+constexpr uint8_t kSortKeyDraw2ProgramShift = kSortKeyDraw2BlendShift - BGFX_CONFIG_SORT_KEY_NUM_BITS_PROGRAM;
|
|
|
constexpr uint64_t kSortKeyDraw2ProgramMask = uint64_t(BGFX_CONFIG_MAX_PROGRAMS-1)<<kSortKeyDraw2ProgramShift;
|
|
|
|
|
|
//
|
|
|
@@ -966,14 +966,14 @@ constexpr uint64_t kSortKeyComputeProgramMask = uint64_t(BGFX_CONFIG_MAX_PROGRA
|
|
|
| kSortKeyViewMask
|
|
|
| kSortKeyDrawBit
|
|
|
| kSortKeyDrawTypeMask
|
|
|
- | kSortKeyDraw0TransMask
|
|
|
+ | kSortKeyDraw0BlendMask
|
|
|
| kSortKeyDraw0ProgramMask
|
|
|
| kSortKeyDraw0DepthMask
|
|
|
) == (0
|
|
|
^ kSortKeyViewMask
|
|
|
^ kSortKeyDrawBit
|
|
|
^ kSortKeyDrawTypeMask
|
|
|
- ^ kSortKeyDraw0TransMask
|
|
|
+ ^ kSortKeyDraw0BlendMask
|
|
|
^ kSortKeyDraw0ProgramMask
|
|
|
^ kSortKeyDraw0DepthMask
|
|
|
) );
|
|
|
@@ -982,14 +982,14 @@ constexpr uint64_t kSortKeyComputeProgramMask = uint64_t(BGFX_CONFIG_MAX_PROGRA
|
|
|
| kSortKeyDrawBit
|
|
|
| kSortKeyDrawTypeMask
|
|
|
| kSortKeyDraw1DepthMask
|
|
|
- | kSortKeyDraw1TransMask
|
|
|
+ | kSortKeyDraw1BlendMask
|
|
|
| kSortKeyDraw1ProgramMask
|
|
|
) == (0
|
|
|
^ kSortKeyViewMask
|
|
|
^ kSortKeyDrawBit
|
|
|
^ kSortKeyDrawTypeMask
|
|
|
^ kSortKeyDraw1DepthMask
|
|
|
- ^ kSortKeyDraw1TransMask
|
|
|
+ ^ kSortKeyDraw1BlendMask
|
|
|
^ kSortKeyDraw1ProgramMask
|
|
|
) );
|
|
|
BX_STATIC_ASSERT( (0 // Render key mask shouldn't overlap.
|
|
|
@@ -997,14 +997,14 @@ constexpr uint64_t kSortKeyComputeProgramMask = uint64_t(BGFX_CONFIG_MAX_PROGRA
|
|
|
| kSortKeyDrawBit
|
|
|
| kSortKeyDrawTypeMask
|
|
|
| kSortKeyDraw2SeqMask
|
|
|
- | kSortKeyDraw2TransMask
|
|
|
+ | kSortKeyDraw2BlendMask
|
|
|
| kSortKeyDraw2ProgramMask
|
|
|
) == (0
|
|
|
^ kSortKeyViewMask
|
|
|
^ kSortKeyDrawBit
|
|
|
^ kSortKeyDrawTypeMask
|
|
|
^ kSortKeyDraw2SeqMask
|
|
|
- ^ kSortKeyDraw2TransMask
|
|
|
+ ^ kSortKeyDraw2BlendMask
|
|
|
^ kSortKeyDraw2ProgramMask
|
|
|
) );
|
|
|
BX_STATIC_ASSERT( (0 // Compute key mask shouldn't overlap.
|
|
|
@@ -1030,7 +1030,7 @@ constexpr uint64_t kSortKeyComputeProgramMask = uint64_t(BGFX_CONFIG_MAX_PROGRA
|
|
|
// | |kkttpppppppppdddddddddddddddddddddddddddddddd |
|
|
|
// | | ^ ^ ^ |
|
|
|
// | | | | | |
|
|
|
- // | | +-trans +-program depth-+ |
|
|
|
+ // | | +-blend +-program depth-+ |
|
|
|
// | | |
|
|
|
// |----------------------------------------------------------------| Draw Key 1 - Sort by depth
|
|
|
// | |kkddddddddddddddddddddddddddddddddttppppppppp |
|
|
|
@@ -1069,9 +1069,9 @@ constexpr uint64_t kSortKeyComputeProgramMask = uint64_t(BGFX_CONFIG_MAX_PROGRA
|
|
|
{
|
|
|
const uint64_t depth = (uint64_t(m_depth ) << kSortKeyDraw0DepthShift ) & kSortKeyDraw0DepthMask;
|
|
|
const uint64_t program = (uint64_t(m_program.idx) << kSortKeyDraw0ProgramShift) & kSortKeyDraw0ProgramMask;
|
|
|
- const uint64_t trans = (uint64_t(m_trans ) << kSortKeyDraw0TransShift ) & kSortKeyDraw0TransMask;
|
|
|
+ const uint64_t blend = (uint64_t(m_blend ) << kSortKeyDraw0BlendShift ) & kSortKeyDraw0BlendMask;
|
|
|
const uint64_t view = (uint64_t(m_view ) << kSortKeyViewBitShift ) & kSortKeyViewMask;
|
|
|
- const uint64_t key = view|kSortKeyDrawBit|kSortKeyDrawTypeProgram|trans|program|depth;
|
|
|
+ const uint64_t key = view|kSortKeyDrawBit|kSortKeyDrawTypeProgram|blend|program|depth;
|
|
|
|
|
|
return key;
|
|
|
}
|
|
|
@@ -1081,9 +1081,9 @@ constexpr uint64_t kSortKeyComputeProgramMask = uint64_t(BGFX_CONFIG_MAX_PROGRA
|
|
|
{
|
|
|
const uint64_t depth = (uint64_t(m_depth ) << kSortKeyDraw1DepthShift ) & kSortKeyDraw1DepthMask;
|
|
|
const uint64_t program = (uint64_t(m_program.idx) << kSortKeyDraw1ProgramShift) & kSortKeyDraw1ProgramMask;
|
|
|
- const uint64_t trans = (uint64_t(m_trans ) << kSortKeyDraw1TransShift) & kSortKeyDraw1TransMask;
|
|
|
+ const uint64_t blend = (uint64_t(m_blend ) << kSortKeyDraw1BlendShift) & kSortKeyDraw1BlendMask;
|
|
|
const uint64_t view = (uint64_t(m_view ) << kSortKeyViewBitShift ) & kSortKeyViewMask;
|
|
|
- const uint64_t key = view|kSortKeyDrawBit|kSortKeyDrawTypeDepth|depth|trans|program;
|
|
|
+ const uint64_t key = view|kSortKeyDrawBit|kSortKeyDrawTypeDepth|depth|blend|program;
|
|
|
return key;
|
|
|
}
|
|
|
break;
|
|
|
@@ -1092,9 +1092,9 @@ constexpr uint64_t kSortKeyComputeProgramMask = uint64_t(BGFX_CONFIG_MAX_PROGRA
|
|
|
{
|
|
|
const uint64_t seq = (uint64_t(m_seq ) << kSortKeyDraw2SeqShift ) & kSortKeyDraw2SeqMask;
|
|
|
const uint64_t program = (uint64_t(m_program.idx) << kSortKeyDraw2ProgramShift) & kSortKeyDraw2ProgramMask;
|
|
|
- const uint64_t trans = (uint64_t(m_trans ) << kSortKeyDraw2TransShift ) & kSortKeyDraw2TransMask;
|
|
|
+ const uint64_t blend = (uint64_t(m_blend ) << kSortKeyDraw2BlendShift ) & kSortKeyDraw2BlendMask;
|
|
|
const uint64_t view = (uint64_t(m_view ) << kSortKeyViewBitShift ) & kSortKeyViewMask;
|
|
|
- const uint64_t key = view|kSortKeyDrawBit|kSortKeyDrawTypeSequence|seq|trans|program;
|
|
|
+ const uint64_t key = view|kSortKeyDrawBit|kSortKeyDrawTypeSequence|seq|blend|program;
|
|
|
|
|
|
BX_CHECK(seq == (uint64_t(m_seq) << kSortKeyDraw2SeqShift)
|
|
|
, "SortKey error, sequence is truncated (m_seq: %d)."
|
|
|
@@ -1170,14 +1170,14 @@ constexpr uint64_t kSortKeyComputeProgramMask = uint64_t(BGFX_CONFIG_MAX_PROGRA
|
|
|
m_seq = 0;
|
|
|
m_program = {0};
|
|
|
m_view = 0;
|
|
|
- m_trans = 0;
|
|
|
+ m_blend = 0;
|
|
|
}
|
|
|
|
|
|
uint32_t m_depth;
|
|
|
uint32_t m_seq;
|
|
|
ProgramHandle m_program;
|
|
|
ViewId m_view;
|
|
|
- uint8_t m_trans;
|
|
|
+ uint8_t m_blend;
|
|
|
};
|
|
|
#undef SORT_KEY_RENDER_DRAW
|
|
|
|
|
|
@@ -2287,7 +2287,7 @@ constexpr uint64_t kSortKeyComputeProgramMask = uint64_t(BGFX_CONFIG_MAX_PROGRA
|
|
|
uint8_t blend = ( (_state&BGFX_STATE_BLEND_MASK)>>BGFX_STATE_BLEND_SHIFT)&0xff;
|
|
|
uint8_t alphaRef = ( (_state&BGFX_STATE_ALPHA_REF_MASK)>>BGFX_STATE_ALPHA_REF_SHIFT)&0xff;
|
|
|
// transparency sort order table
|
|
|
- m_key.m_trans = "\x0\x2\x2\x3\x3\x2\x3\x2\x3\x2\x2\x2\x2\x2\x2\x2\x2\x2\x2"[( (blend)&0xf) + (!!blend)] + !!alphaRef;
|
|
|
+ m_key.m_blend = "\x0\x2\x2\x3\x3\x2\x3\x2\x3\x2\x2\x2\x2\x2\x2\x2\x2\x2\x2"[( (blend)&0xf) + (!!blend)] + !!alphaRef;
|
|
|
m_draw.m_stateFlags = _state;
|
|
|
m_draw.m_rgba = _rgba;
|
|
|
}
|