//===== Copyright © 2005-2009, Valve Corporation, All rights reserved. ======// // // Purpose: Format of the ps3optimalschedules.bin file, written // by the ps3shaderoptimizer command line tool. // //===========================================================================// #ifndef PS3OPTIMALSCHEDULESFMT_H #define PS3OPTIMALSCHEDULESFMT_H #ifdef _WIN32 #pragma once #endif #define OPTIMAL_COMBO_SCHEDULE_FILE_HEADER_ID 0xF15EB9A4 struct OptimalComboScheduleFileHeader_t { uint m_nID; uint m_nNumCombos; }; // 16 bytes per record, or ~8MB per 500k combos #define COMBO_CYCLE_BITS 9 #define COMBO_SCHEDULE_BITS 10 #define COMBO_SEED_BITS 10 struct OptimalComboScheduleFileRecord_t { uint64 m_nComboHash; uint64 m_nOptCycles : COMBO_CYCLE_BITS; enum { cDefaultScheduleIndex = ( 1 << COMBO_SCHEDULE_BITS ) - 1 }; uint64 m_nOptSchedule : COMBO_SCHEDULE_BITS; uint64 m_nOptSeed : COMBO_SEED_BITS; uint64 m_nAltSchedule0 : COMBO_SCHEDULE_BITS; uint64 m_nAltSchedule1 : COMBO_SCHEDULE_BITS; uint64 m_nAltSchedule2 : COMBO_SCHEDULE_BITS; uint64 m_nUnused : 5; bool operator< ( const OptimalComboScheduleFileRecord_t &rhs ) const { return m_nComboHash < rhs.m_nComboHash; } }; enum ShaderSchedulerParamSource_t { SHADER_SCHEDULER_PARAM_SOURCE_UNOPTIMIZED, SHADER_SCHEDULER_PARAM_SOURCE_UNOPTIMIZED_FALLBACK, SHADER_SCHEDULER_PARAM_SOURCE_FOUND_OPTIMAL, SHADER_SCHEDULER_PARAM_SOURCE_FROM_SCHEDULER_FILE, TOTAL_SHADER_SCHEDULER_PARAM_SOURCES }; #endif // PS3OPTIMALSCHEDULESFMT_H