feat: add fast path for sq_cpy-able verts

This commit is contained in:
Hayden Kowalchuk 2019-08-14 11:57:00 -04:00
parent 2965df485b
commit c741d4d622
3 changed files with 42 additions and 2 deletions

View File

@ -771,6 +771,44 @@ static void generate(SubmissionTarget* target, const GLenum mode, const GLsizei
const GLsizei istride = byte_size(type);
if(!indices) {
if( ((ENABLED_VERTEX_ATTRIBUTES & DIFFUSE_ENABLED_FLAG) == DIFFUSE_ENABLED_FLAG ) && (DIFFUSE_POINTER.type == GL_UNSIGNED_BYTE ) && DIFFUSE_POINTER.stride == 32){
profiler_push(__func__);
Vertex* start = _glSubmissionTargetStart(target);
Vertex* it = start;
sq_cpy(start, VERTEX_POINTER.ptr - ( sizeof(unsigned int) * 1 ), count * sizeof(Vertex) );
ITERATE(count) {
it->flags = PVR_CMD_VERTEX;
++it;
}
profiler_checkpoint("flags");
// Drawing arrays
switch(mode) {
case GL_TRIANGLES:
genTriangles(start, count);
break;
case GL_QUADS:
genQuads(start, count);
break;
case GL_TRIANGLE_FAN:
genTriangleFan(start, count);
break;
case GL_TRIANGLE_STRIP:
genTriangleStrip(_glSubmissionTargetStart(target), count);
break;
default:
assert(0 && "Not Implemented");
}
profiler_checkpoint("quads");
profiler_pop();
}else {
profiler_push(__func__);
Vertex* start = _glSubmissionTargetStart(target);
@ -823,6 +861,7 @@ static void generate(SubmissionTarget* target, const GLenum mode, const GLsizei
profiler_checkpoint("quads");
profiler_pop();
}
} else {
const IndexParseFunc indexFunc = _calcParseIndexFunc(type);
GLuint j;

View File

@ -314,7 +314,7 @@ static void _glInitializeTextureObject(TextureObject* txr, unsigned int id) {
txr->width = txr->height = 0;
txr->mipmap = 0;
txr->uv_clamp = 0;
txr->env = PVR_TXRENV_MODULATEALPHA;
txr->env = PVR_TXRENV_MODULATE;
txr->data = NULL;
txr->mipmapCount = 0;
txr->minFilter = GL_NEAREST;
@ -430,7 +430,7 @@ void APIENTRY glTexEnvi(GLenum target, GLenum pname, GLint param) {
switch(param) {
case GL_MODULATE:
active->env = PVR_TXRENV_MODULATEALPHA;
active->env = PVR_TXRENV_MODULATE;
break;
case GL_DECAL:
active->env = PVR_TXRENV_DECAL;

View File

@ -25,6 +25,7 @@ export OBJEXTRA := $(LIB_DIR)/libGLdc.a
default: build link
link:
@-rm $(TARGET)
$(KOS_AR) rcs $(TARGET) $(OBJS)
build: $(OBJS) link