SL-18485 Cleanup -- remove unused GLTF specific vertex attributes from LLVertexBuffer (blows past 16-attribute limit)
parent
6c93f42325
commit
843a5c287e
|
|
@ -1163,10 +1163,6 @@ void LLShaderMgr::initAttribsAndUniforms()
|
|||
mReservedAttribs.push_back("weight4");
|
||||
mReservedAttribs.push_back("clothing");
|
||||
mReservedAttribs.push_back("texture_index");
|
||||
mReservedAttribs.push_back("basecolor_texcoord"); // GLTF
|
||||
mReservedAttribs.push_back("normal_texcoord"); // GLTF
|
||||
mReservedAttribs.push_back("metallic_roughness_texcoord"); // GLTF
|
||||
mReservedAttribs.push_back("emissive_texcoord"); // GLTF
|
||||
|
||||
//matrix state
|
||||
mReservedUniforms.push_back("modelview_matrix");
|
||||
|
|
|
|||
|
|
@ -358,10 +358,6 @@ const S32 LLVertexBuffer::sTypeSize[LLVertexBuffer::TYPE_MAX] =
|
|||
sizeof(LLVector4), // TYPE_WEIGHT4,
|
||||
sizeof(LLVector4), // TYPE_CLOTHWEIGHT,
|
||||
sizeof(LLVector4), // TYPE_TEXTURE_INDEX (actually exists as position.w), no extra data, but stride is 16 bytes
|
||||
sizeof(LLVector2), // TYPE_BASECOLOR_TEXCOORD,
|
||||
sizeof(LLVector2), // TYPE_NORMAL_TEXCOORD,
|
||||
sizeof(LLVector2), // TYPE_METALLIC_ROUGHNESS_TEXCOORD,
|
||||
sizeof(LLVector2), // TYPE_EMISSIVE_TEXCOORD,
|
||||
};
|
||||
|
||||
static const std::string vb_type_name[] =
|
||||
|
|
@ -379,10 +375,6 @@ static const std::string vb_type_name[] =
|
|||
"TYPE_WEIGHT4",
|
||||
"TYPE_CLOTHWEIGHT",
|
||||
"TYPE_TEXTURE_INDEX",
|
||||
"TYPE_BASECOLOR_TEXCOORD",
|
||||
"TYPE_NORMAL_TEXCOORD",
|
||||
"TYPE_METALLIC_ROUGHNESS_TEXCOORD",
|
||||
"TYPE_EMISSIVE_TEXCOORD",
|
||||
"TYPE_MAX",
|
||||
"TYPE_INDEX",
|
||||
};
|
||||
|
|
@ -1278,10 +1270,6 @@ void LLVertexBuffer::setupVertexArray()
|
|||
4, //TYPE_WEIGHT4,
|
||||
4, //TYPE_CLOTHWEIGHT,
|
||||
1, //TYPE_TEXTURE_INDEX
|
||||
2, // TYPE_BASECOLOR_TEXCOORD,
|
||||
2, // TYPE_NORMAL_TEXCOORD,
|
||||
2, // TYPE_METALLIC_ROUGHNESS_TEXCOORD,
|
||||
2, // TYPE_EMISSIVE_TEXCOORD,
|
||||
};
|
||||
|
||||
static const U32 attrib_type[] =
|
||||
|
|
@ -1299,10 +1287,6 @@ void LLVertexBuffer::setupVertexArray()
|
|||
GL_FLOAT, //TYPE_WEIGHT4,
|
||||
GL_FLOAT, //TYPE_CLOTHWEIGHT,
|
||||
GL_UNSIGNED_INT, //TYPE_TEXTURE_INDEX
|
||||
GL_FLOAT, // TYPE_BASECOLOR_TEXCOORD,
|
||||
GL_FLOAT, // TYPE_NORMAL_TEXCOORD,
|
||||
GL_FLOAT, // TYPE_METALLIC_ROUGHNESS_TEXCOORD,
|
||||
GL_FLOAT, // TYPE_EMISSIVE_TEXCOORD,
|
||||
};
|
||||
|
||||
static const bool attrib_integer[] =
|
||||
|
|
@ -1320,10 +1304,6 @@ void LLVertexBuffer::setupVertexArray()
|
|||
false, //TYPE_WEIGHT4,
|
||||
false, //TYPE_CLOTHWEIGHT,
|
||||
true, //TYPE_TEXTURE_INDEX
|
||||
false, // TYPE_BASECOLOR_TEXCOORD,
|
||||
false, // TYPE_NORMAL_TEXCOORD,
|
||||
false, // TYPE_METALLIC_ROUGHNESS_TEXCOORD,
|
||||
false, // TYPE_EMISSIVE_TEXCOORD,
|
||||
};
|
||||
|
||||
static const U32 attrib_normalized[] =
|
||||
|
|
@ -1341,10 +1321,6 @@ void LLVertexBuffer::setupVertexArray()
|
|||
GL_FALSE, //TYPE_WEIGHT4,
|
||||
GL_FALSE, //TYPE_CLOTHWEIGHT,
|
||||
GL_FALSE, //TYPE_TEXTURE_INDEX
|
||||
GL_FALSE, // TYPE_BASECOLOR_TEXCOORD,
|
||||
GL_FALSE, // TYPE_NORMAL_TEXCOORD,
|
||||
GL_FALSE, // TYPE_METALLIC_ROUGHNESS_TEXCOORD,
|
||||
GL_FALSE, // TYPE_EMISSIVE_TEXCOORD,
|
||||
};
|
||||
|
||||
bindGLBuffer(true);
|
||||
|
|
@ -1985,26 +1961,6 @@ bool LLVertexBuffer::getClothWeightStrider(LLStrider<LLVector4>& strider, S32 in
|
|||
return VertexBufferStrider<LLVector4,TYPE_CLOTHWEIGHT>::get(*this, strider, index, count, map_range);
|
||||
}
|
||||
|
||||
bool LLVertexBuffer::getBasecolorTexcoordStrider(LLStrider<LLVector2>& strider, S32 index, S32 count, bool map_range)
|
||||
{
|
||||
return VertexBufferStrider<LLVector2,TYPE_BASECOLOR_TEXCOORD>::get(*this, strider, index, count, map_range);
|
||||
}
|
||||
|
||||
bool LLVertexBuffer::getNormalTexcoordStrider(LLStrider<LLVector2>& strider, S32 index, S32 count, bool map_range)
|
||||
{
|
||||
return VertexBufferStrider<LLVector2,TYPE_NORMAL_TEXCOORD>::get(*this, strider, index, count, map_range);
|
||||
}
|
||||
|
||||
bool LLVertexBuffer::getMetallicRoughnessTexcoordStrider(LLStrider<LLVector2>& strider, S32 index, S32 count, bool map_range)
|
||||
{
|
||||
return VertexBufferStrider<LLVector2,TYPE_METALLIC_ROUGHNESS_TEXCOORD>::get(*this, strider, index, count, map_range);
|
||||
}
|
||||
|
||||
bool LLVertexBuffer::getEmissiveTexcoordStrider(LLStrider<LLVector2>& strider, S32 index, S32 count, bool map_range)
|
||||
{
|
||||
return VertexBufferStrider<LLVector2,TYPE_EMISSIVE_TEXCOORD>::get(*this, strider, index, count, map_range);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
bool LLVertexBuffer::bindGLArray()
|
||||
|
|
@ -2423,30 +2379,6 @@ void LLVertexBuffer::setupVertexBuffer(U32 data_mask)
|
|||
void* ptr = (void*)(base + mOffsets[TYPE_VERTEX]);
|
||||
glVertexAttribPointer(loc, 3,GL_FLOAT, GL_FALSE, LLVertexBuffer::sTypeSize[TYPE_VERTEX], ptr);
|
||||
}
|
||||
if (data_mask & MAP_BASECOLOR_TEXCOORD)
|
||||
{
|
||||
S32 loc = TYPE_BASECOLOR_TEXCOORD;
|
||||
void* ptr = (void*)(base + mOffsets[TYPE_BASECOLOR_TEXCOORD]);
|
||||
glVertexAttribPointer(loc, 2, GL_FLOAT, GL_FALSE, LLVertexBuffer::sTypeSize[TYPE_BASECOLOR_TEXCOORD], ptr);
|
||||
}
|
||||
if (data_mask & MAP_NORMAL_TEXCOORD)
|
||||
{
|
||||
S32 loc = TYPE_NORMAL_TEXCOORD;
|
||||
void* ptr = (void*)(base + mOffsets[TYPE_NORMAL_TEXCOORD]);
|
||||
glVertexAttribPointer(loc, 2, GL_FLOAT, GL_FALSE, LLVertexBuffer::sTypeSize[TYPE_NORMAL_TEXCOORD], ptr);
|
||||
}
|
||||
if (data_mask & MAP_METALLIC_ROUGHNESS_TEXCOORD)
|
||||
{
|
||||
S32 loc = TYPE_METALLIC_ROUGHNESS_TEXCOORD;
|
||||
void* ptr = (void*)(base + mOffsets[TYPE_METALLIC_ROUGHNESS_TEXCOORD]);
|
||||
glVertexAttribPointer(loc, 2, GL_FLOAT, GL_FALSE, LLVertexBuffer::sTypeSize[TYPE_METALLIC_ROUGHNESS_TEXCOORD], ptr);
|
||||
}
|
||||
if (data_mask & MAP_EMISSIVE_TEXCOORD)
|
||||
{
|
||||
S32 loc = TYPE_EMISSIVE_TEXCOORD;
|
||||
void* ptr = (void*)(base + mOffsets[TYPE_EMISSIVE_TEXCOORD]);
|
||||
glVertexAttribPointer(loc, 2, GL_FLOAT, GL_FALSE, LLVertexBuffer::sTypeSize[TYPE_EMISSIVE_TEXCOORD], ptr);
|
||||
}
|
||||
|
||||
llglassertok();
|
||||
}
|
||||
|
|
@ -2540,30 +2472,6 @@ void LLVertexBuffer::setupVertexBufferFast(U32 data_mask)
|
|||
void* ptr = (void*)(base + mOffsets[TYPE_VERTEX]);
|
||||
glVertexAttribPointer(loc, 3, GL_FLOAT, GL_FALSE, LLVertexBuffer::sTypeSize[TYPE_VERTEX], ptr);
|
||||
}
|
||||
if (data_mask & MAP_BASECOLOR_TEXCOORD)
|
||||
{
|
||||
S32 loc = TYPE_BASECOLOR_TEXCOORD;
|
||||
void* ptr = (void*)(base + mOffsets[TYPE_BASECOLOR_TEXCOORD]);
|
||||
glVertexAttribPointer(loc, 2, GL_FLOAT, GL_FALSE, LLVertexBuffer::sTypeSize[TYPE_BASECOLOR_TEXCOORD], ptr);
|
||||
}
|
||||
if (data_mask & MAP_NORMAL_TEXCOORD)
|
||||
{
|
||||
S32 loc = TYPE_NORMAL_TEXCOORD;
|
||||
void* ptr = (void*)(base + mOffsets[TYPE_NORMAL_TEXCOORD]);
|
||||
glVertexAttribPointer(loc, 2, GL_FLOAT, GL_FALSE, LLVertexBuffer::sTypeSize[TYPE_NORMAL_TEXCOORD], ptr);
|
||||
}
|
||||
if (data_mask & MAP_METALLIC_ROUGHNESS_TEXCOORD)
|
||||
{
|
||||
S32 loc = TYPE_METALLIC_ROUGHNESS_TEXCOORD;
|
||||
void* ptr = (void*)(base + mOffsets[TYPE_METALLIC_ROUGHNESS_TEXCOORD]);
|
||||
glVertexAttribPointer(loc, 2, GL_FLOAT, GL_FALSE, LLVertexBuffer::sTypeSize[TYPE_METALLIC_ROUGHNESS_TEXCOORD], ptr);
|
||||
}
|
||||
if (data_mask & MAP_EMISSIVE_TEXCOORD)
|
||||
{
|
||||
S32 loc = TYPE_EMISSIVE_TEXCOORD;
|
||||
void* ptr = (void*)(base + mOffsets[TYPE_EMISSIVE_TEXCOORD]);
|
||||
glVertexAttribPointer(loc, 2, GL_FLOAT, GL_FALSE, LLVertexBuffer::sTypeSize[TYPE_EMISSIVE_TEXCOORD], ptr);
|
||||
}
|
||||
}
|
||||
|
||||
LLVertexBuffer::MappedRegion::MappedRegion(S32 type, S32 index, S32 count)
|
||||
|
|
|
|||
|
|
@ -182,10 +182,6 @@ public:
|
|||
TYPE_WEIGHT4, // "weight4"
|
||||
TYPE_CLOTHWEIGHT, // "clothing"
|
||||
TYPE_TEXTURE_INDEX, // "texture_index"
|
||||
TYPE_BASECOLOR_TEXCOORD, // "basecolor_texcoord" (GLTF)
|
||||
TYPE_NORMAL_TEXCOORD, // "normal_texcoord" (GLTF)
|
||||
TYPE_METALLIC_ROUGHNESS_TEXCOORD, // "metallic_roughness_texcoord" (GLTF)
|
||||
TYPE_EMISSIVE_TEXCOORD, // "emissive_texcoord" (GLTF)
|
||||
TYPE_MAX, // TYPE_MAX is the size/boundary marker for attributes that go in the vertex buffer
|
||||
TYPE_INDEX, // TYPE_INDEX is beyond _MAX because it lives in a separate (index) buffer
|
||||
};
|
||||
|
|
@ -205,10 +201,6 @@ public:
|
|||
MAP_WEIGHT4 = (1<<TYPE_WEIGHT4),
|
||||
MAP_CLOTHWEIGHT = (1<<TYPE_CLOTHWEIGHT),
|
||||
MAP_TEXTURE_INDEX = (1<<TYPE_TEXTURE_INDEX),
|
||||
MAP_BASECOLOR_TEXCOORD = (1<<TYPE_BASECOLOR_TEXCOORD),
|
||||
MAP_NORMAL_TEXCOORD = (1<<TYPE_NORMAL_TEXCOORD),
|
||||
MAP_METALLIC_ROUGHNESS_TEXCOORD = (1<<TYPE_METALLIC_ROUGHNESS_TEXCOORD),
|
||||
MAP_EMISSIVE_TEXCOORD = (1<<TYPE_EMISSIVE_TEXCOORD),
|
||||
};
|
||||
|
||||
protected:
|
||||
|
|
|
|||
Loading…
Reference in New Issue