diff --git a/src/bgfx.cpp b/src/bgfx.cpp index 60de4714b..f1369d39c 100644 --- a/src/bgfx.cpp +++ b/src/bgfx.cpp @@ -1515,30 +1515,30 @@ namespace bgfx BX_TRACE(""); BX_TRACE("Sort key masks:"); - BX_TRACE("\t View %016" PRIx64, SORT_KEY_VIEW_MASK); - BX_TRACE("\t Draw bit %016" PRIx64, SORT_KEY_DRAW_BIT); + BX_TRACE("\t View %016" PRIx64, kSortKeyViewMask); + BX_TRACE("\t Draw bit %016" PRIx64, kSortKeyDrawBit); BX_TRACE(""); - BX_TRACE("\tD Type %016" PRIx64, SORT_KEY_DRAW_TYPE_MASK); + BX_TRACE("\tD Type %016" PRIx64, kSortKeyDrawTypeMask); BX_TRACE(""); - BX_TRACE("\tD0 Trans %016" PRIx64, SORT_KEY_DRAW_0_TRANS_MASK); - BX_TRACE("\tD0 Program %016" PRIx64, SORT_KEY_DRAW_0_PROGRAM_MASK); - BX_TRACE("\tD0 Depth %016" PRIx64, SORT_KEY_DRAW_0_DEPTH_MASK); + BX_TRACE("\tD0 Trans %016" PRIx64, kSortKeyDraw0TransMask); + BX_TRACE("\tD0 Program %016" PRIx64, kSortKeyDraw0ProgramMask); + BX_TRACE("\tD0 Depth %016" PRIx64, kSortKeyDraw0DepthMask); BX_TRACE(""); - BX_TRACE("\tD1 Depth %016" PRIx64, SORT_KEY_DRAW_1_DEPTH_MASK); - BX_TRACE("\tD1 Trans %016" PRIx64, SORT_KEY_DRAW_1_TRANS_MASK); - BX_TRACE("\tD1 Program %016" PRIx64, SORT_KEY_DRAW_1_PROGRAM_MASK); + BX_TRACE("\tD1 Depth %016" PRIx64, kSortKeyDraw1DepthMask); + BX_TRACE("\tD1 Trans %016" PRIx64, kSortKeyDraw1TransMask); + BX_TRACE("\tD1 Program %016" PRIx64, kSortKeyDraw1ProgramMask); BX_TRACE(""); - BX_TRACE("\tD2 Seq %016" PRIx64, SORT_KEY_DRAW_2_SEQ_MASK); - BX_TRACE("\tD2 Trans %016" PRIx64, SORT_KEY_DRAW_2_TRANS_MASK); - BX_TRACE("\tD2 Program %016" PRIx64, SORT_KEY_DRAW_2_PROGRAM_MASK); + BX_TRACE("\tD2 Seq %016" PRIx64, kSortKeyDraw2SeqMask); + BX_TRACE("\tD2 Trans %016" PRIx64, kSortKeyDraw2TransMask); + BX_TRACE("\tD2 Program %016" PRIx64, kSortKeyDraw2ProgramMask); BX_TRACE(""); - BX_TRACE("\t C Seq %016" PRIx64, SORT_KEY_COMPUTE_SEQ_MASK); - BX_TRACE("\t C Program %016" PRIx64, SORT_KEY_COMPUTE_PROGRAM_MASK); + BX_TRACE("\t C Seq %016" PRIx64, kSortKeyComputeSeqMask); + BX_TRACE("\t C Program %016" PRIx64, kSortKeyComputeProgramMask); BX_TRACE(""); BX_TRACE("Supported capabilities (renderer %s, vendor 0x%04x, device 0x%04x):" diff --git a/src/bgfx_p.h b/src/bgfx_p.h index d0d784778..5e5a087d4 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -887,120 +887,118 @@ namespace bgfx }; // -#define SORT_KEY_NUM_BITS_VIEW 10 +constexpr uint8_t kSortKeyViewNumBits = 10; +constexpr uint8_t kSortKeyViewBitShift = 64-kSortKeyViewNumBits; +constexpr uint64_t kSortKeyViewMask = uint64_t(BGFX_CONFIG_MAX_VIEWS-1)<> SORT_KEY_VIEW_SHIFT]; - if (_key & SORT_KEY_DRAW_BIT) + m_view = _viewRemap[(_key & kSortKeyViewMask) >> kSortKeyViewBitShift]; + if (_key & kSortKeyDrawBit) { - uint64_t type = _key & SORT_KEY_DRAW_TYPE_MASK; - if (type == SORT_KEY_DRAW_TYPE_DEPTH) + uint64_t type = _key & kSortKeyDrawTypeMask; + if (type == kSortKeyDrawTypeDepth) { - m_program.idx = uint16_t( (_key & SORT_KEY_DRAW_1_PROGRAM_MASK) >> SORT_KEY_DRAW_1_PROGRAM_SHIFT); + m_program.idx = uint16_t( (_key & kSortKeyDraw1ProgramMask) >> kSortKeyDraw1ProgramShift); return false; } - else if (type == SORT_KEY_DRAW_TYPE_SEQUENCE) + else if (type == kSortKeyDrawTypeSequence) { - m_program.idx = uint16_t( (_key & SORT_KEY_DRAW_2_PROGRAM_MASK) >> SORT_KEY_DRAW_2_PROGRAM_SHIFT); + m_program.idx = uint16_t( (_key & kSortKeyDraw2ProgramMask) >> kSortKeyDraw2ProgramShift); return false; } - m_program.idx = uint16_t( (_key & SORT_KEY_DRAW_0_PROGRAM_MASK) >> SORT_KEY_DRAW_0_PROGRAM_SHIFT); + m_program.idx = uint16_t( (_key & kSortKeyDraw0ProgramMask) >> kSortKeyDraw0ProgramShift); return false; // draw } - m_program.idx = uint16_t( (_key & SORT_KEY_COMPUTE_PROGRAM_MASK) >> SORT_KEY_COMPUTE_PROGRAM_SHIFT); + m_program.idx = uint16_t( (_key & kSortKeyComputeProgramMask) >> kSortKeyComputeProgramShift); return true; // compute } static ViewId decodeView(uint64_t _key) { - return ViewId( (_key & SORT_KEY_VIEW_MASK) >> SORT_KEY_VIEW_SHIFT); + return ViewId( (_key & kSortKeyViewMask) >> kSortKeyViewBitShift); } static uint64_t remapView(uint64_t _key, ViewId _viewRemap[BGFX_CONFIG_MAX_VIEWS]) { const ViewId oldView = decodeView(_key); - const uint64_t view = uint64_t(_viewRemap[oldView]) << SORT_KEY_VIEW_SHIFT; - const uint64_t key = (_key & ~SORT_KEY_VIEW_MASK) | view; + const uint64_t view = uint64_t(_viewRemap[oldView]) << kSortKeyViewBitShift; + const uint64_t key = (_key & ~kSortKeyViewMask) | view; return key; }