glsl: Hide many classes local to individual .cpp files in anon namespaces.
This gives the compiler the chance to inline and not export class symbols even in the absence of LTO. Saves about 60kb on disk. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@.intel.com>
This commit is contained in:
@@ -57,11 +57,13 @@ extern "C" {
|
||||
#include "program/sampler.h"
|
||||
}
|
||||
|
||||
static int swizzle_for_size(int size);
|
||||
|
||||
namespace {
|
||||
|
||||
class src_reg;
|
||||
class dst_reg;
|
||||
|
||||
static int swizzle_for_size(int size);
|
||||
|
||||
/**
|
||||
* This struct is a corresponding struct to Mesa prog_src_register, with
|
||||
* wider fields.
|
||||
@@ -129,6 +131,8 @@ public:
|
||||
src_reg *reladdr;
|
||||
};
|
||||
|
||||
} /* anonymous namespace */
|
||||
|
||||
src_reg::src_reg(dst_reg reg)
|
||||
{
|
||||
this->file = reg.file;
|
||||
@@ -147,6 +151,8 @@ dst_reg::dst_reg(src_reg reg)
|
||||
this->reladdr = reg.reladdr;
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
class ir_to_mesa_instruction : public exec_node {
|
||||
public:
|
||||
DECLARE_RZALLOC_CXX_OPERATORS(ir_to_mesa_instruction)
|
||||
@@ -316,6 +322,8 @@ public:
|
||||
void *mem_ctx;
|
||||
};
|
||||
|
||||
} /* anonymous namespace */
|
||||
|
||||
static src_reg undef_src = src_reg(PROGRAM_UNDEFINED, 0, NULL);
|
||||
|
||||
static dst_reg undef_dst = dst_reg(PROGRAM_UNDEFINED, SWIZZLE_NOOP);
|
||||
@@ -2407,6 +2415,8 @@ print_program(struct prog_instruction *mesa_instructions,
|
||||
}
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
class add_uniform_to_shader : public program_resource_visitor {
|
||||
public:
|
||||
add_uniform_to_shader(struct gl_shader_program *shader_program,
|
||||
@@ -2436,6 +2446,8 @@ private:
|
||||
gl_shader_type shader_type;
|
||||
};
|
||||
|
||||
} /* anonymous namespace */
|
||||
|
||||
void
|
||||
add_uniform_to_shader::visit_field(const glsl_type *type, const char *name,
|
||||
bool row_major)
|
||||
|
Reference in New Issue
Block a user