Skip to content

Commit d9e756c

Browse files
committed
Make BufferBind less noisy
1 parent 5f654ff commit d9e756c

File tree

2 files changed

+38
-32
lines changed

2 files changed

+38
-32
lines changed

src/engine/renderer/Material.h

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -306,21 +306,23 @@ struct SurfaceCommandBatch {
306306
uint32_t materialIDs[2] { 0, 0 };
307307
};
308308

309-
enum class BufferBind {
310-
MATERIALS = 1, // LightTile UBO uses binding point 0, so avoid it here
311-
TEX_DATA = 6,
312-
LIGHTMAP_DATA = 2,
313-
SURFACE_DESCRIPTORS = 0,
314-
SURFACE_COMMANDS = 1,
315-
CULLED_COMMANDS = 2,
316-
SURFACE_BATCHES = 3,
317-
COMMAND_COUNTERS_ATOMIC = 0,
318-
COMMAND_COUNTERS_STORAGE = 4, // Avoid needlessly rebinding buffers
319-
PORTAL_SURFACES = 5,
320-
GEOMETRY_CACHE_INPUT_VBO = 6,
321-
GEOMETRY_CACHE_VBO = 7,
322-
DEBUG = 10,
323-
UNUSED = INT32_MAX
309+
namespace BufferBind {
310+
enum : uint32_t {
311+
MATERIALS = 1, // LightTile UBO uses binding point 0, so avoid it here
312+
TEX_DATA = 6,
313+
LIGHTMAP_DATA = 2,
314+
SURFACE_DESCRIPTORS = 0,
315+
SURFACE_COMMANDS = 1,
316+
CULLED_COMMANDS = 2,
317+
SURFACE_BATCHES = 3,
318+
COMMAND_COUNTERS_ATOMIC = 0,
319+
COMMAND_COUNTERS_STORAGE = 4, // Avoid needlessly rebinding buffers
320+
PORTAL_SURFACES = 5,
321+
GEOMETRY_CACHE_INPUT_VBO = 6,
322+
GEOMETRY_CACHE_VBO = 7,
323+
DEBUG = 10,
324+
UNUSED = INT32_MAX
325+
};
324326
};
325327

326328
class MaterialSystem {

src/engine/renderer/gl_shader.cpp

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,10 @@ static inline void AddDefine( std::string& defines, const std::string& define, i
303303
defines += Str::Format("#ifndef %s\n#define %s %d\n#endif\n", define, define, value);
304304
}
305305

306+
static inline void AddDefine( std::string& defines, const std::string& define, uint32_t value ) {
307+
defines += Str::Format( "#ifndef %s\n#define %s %d\n#endif\n", define, define, value );
308+
}
309+
306310
// Epsilon for float is 5.96e-08, so exponential notation with 8 decimal places should give exact values.
307311

308312
static inline void AddDefine( std::string& defines, const std::string& define, float value )
@@ -577,9 +581,9 @@ static std::string GenVertexHeader() {
577581
}
578582

579583
if ( glConfig2.usingMaterialSystem ) {
580-
AddDefine( str, "BIND_MATERIALS", Util::ordinal( BufferBind::MATERIALS ) );
581-
AddDefine( str, "BIND_TEX_DATA", Util::ordinal( BufferBind::TEX_DATA ) );
582-
AddDefine( str, "BIND_LIGHTMAP_DATA", Util::ordinal( BufferBind::LIGHTMAP_DATA ) );
584+
AddDefine( str, "BIND_MATERIALS", BufferBind::MATERIALS );
585+
AddDefine( str, "BIND_TEX_DATA", BufferBind::TEX_DATA );
586+
AddDefine( str, "BIND_LIGHTMAP_DATA", BufferBind::LIGHTMAP_DATA );
583587
}
584588

585589
return str;
@@ -617,9 +621,9 @@ static std::string GenFragmentHeader() {
617621
}
618622

619623
if ( glConfig2.usingMaterialSystem ) {
620-
AddDefine( str, "BIND_MATERIALS", Util::ordinal( BufferBind::MATERIALS ) );
621-
AddDefine( str, "BIND_TEX_DATA", Util::ordinal( BufferBind::TEX_DATA ) );
622-
AddDefine( str, "BIND_LIGHTMAP_DATA", Util::ordinal( BufferBind::LIGHTMAP_DATA ) );
624+
AddDefine( str, "BIND_MATERIALS", BufferBind::MATERIALS );
625+
AddDefine( str, "BIND_TEX_DATA", BufferBind::TEX_DATA );
626+
AddDefine( str, "BIND_LIGHTMAP_DATA", BufferBind::LIGHTMAP_DATA );
623627
}
624628

625629
return str;
@@ -636,15 +640,15 @@ static std::string GenComputeHeader() {
636640
AddDefine( str, "MAX_SURFACE_COMMAND_BATCHES", MAX_SURFACE_COMMAND_BATCHES );
637641
AddDefine( str, "MAX_COMMAND_COUNTERS", MAX_COMMAND_COUNTERS );
638642

639-
AddDefine( str, "BIND_SURFACE_DESCRIPTORS", Util::ordinal( BufferBind::SURFACE_DESCRIPTORS ) );
640-
AddDefine( str, "BIND_SURFACE_COMMANDS", Util::ordinal( BufferBind::SURFACE_COMMANDS ) );
641-
AddDefine( str, "BIND_CULLED_COMMANDS", Util::ordinal( BufferBind::CULLED_COMMANDS ) );
642-
AddDefine( str, "BIND_SURFACE_BATCHES", Util::ordinal( BufferBind::SURFACE_BATCHES ) );
643-
AddDefine( str, "BIND_COMMAND_COUNTERS_ATOMIC", Util::ordinal( BufferBind::COMMAND_COUNTERS_ATOMIC ) );
644-
AddDefine( str, "BIND_COMMAND_COUNTERS_STORAGE", Util::ordinal( BufferBind::COMMAND_COUNTERS_STORAGE ) );
645-
AddDefine( str, "BIND_PORTAL_SURFACES", Util::ordinal( BufferBind::PORTAL_SURFACES ) );
643+
AddDefine( str, "BIND_SURFACE_DESCRIPTORS", BufferBind::SURFACE_DESCRIPTORS );
644+
AddDefine( str, "BIND_SURFACE_COMMANDS", BufferBind::SURFACE_COMMANDS );
645+
AddDefine( str, "BIND_CULLED_COMMANDS", BufferBind::CULLED_COMMANDS );
646+
AddDefine( str, "BIND_SURFACE_BATCHES", BufferBind::SURFACE_BATCHES );
647+
AddDefine( str, "BIND_COMMAND_COUNTERS_ATOMIC", BufferBind::COMMAND_COUNTERS_ATOMIC );
648+
AddDefine( str, "BIND_COMMAND_COUNTERS_STORAGE", BufferBind::COMMAND_COUNTERS_STORAGE );
649+
AddDefine( str, "BIND_PORTAL_SURFACES", BufferBind::PORTAL_SURFACES );
646650

647-
AddDefine( str, "BIND_DEBUG", Util::ordinal( BufferBind::DEBUG ) );
651+
AddDefine( str, "BIND_DEBUG", BufferBind::DEBUG );
648652
}
649653

650654
if ( glConfig2.usingBindlessTextures ) {
@@ -1510,19 +1514,19 @@ std::string GLShaderManager::ShaderPostProcess( GLShader *shader, const std::str
15101514
// 6 kb for materials
15111515
const uint32_t count = ( 4096 + 2048 ) / shader->GetPaddedSize();
15121516
std::string materialBlock = "layout(std140, binding = "
1513-
+ std::to_string( Util::ordinal( BufferBind::MATERIALS ) )
1517+
+ std::to_string( BufferBind::MATERIALS )
15141518
+ ") uniform materialsUBO {\n"
15151519
" Material materials[" + std::to_string( count ) + "]; \n"
15161520
"};\n\n";
15171521

15181522
std::string texBuf = glConfig2.maxUniformBlockSize >= MIN_MATERIAL_UBO_SIZE ?
15191523
"layout(std140, binding = "
1520-
+ std::to_string( Util::ordinal( BufferBind::TEX_DATA ) )
1524+
+ std::to_string( BufferBind::TEX_DATA )
15211525
+ ") uniform texDataUBO {\n"
15221526
" TexData texData[" + std::to_string( MAX_TEX_BUNDLES ) + "]; \n"
15231527
"};\n\n"
15241528
: "layout(std430, binding = "
1525-
+ std::to_string( Util::ordinal( BufferBind::TEX_DATA ) )
1529+
+ std::to_string( BufferBind::TEX_DATA )
15261530
+ ") restrict readonly buffer texDataSSBO {\n"
15271531
" TexData texData[];\n"
15281532
"};\n\n";

0 commit comments

Comments
 (0)