merge latest kazade changes
This commit is contained in:
commit
21ccc32bc0
|
@ -783,7 +783,14 @@ static void genArraysTriangleFan(
|
|||
return;
|
||||
}
|
||||
|
||||
memcpy(buffer, output, sizeof(ClipVertex) * count);
|
||||
if( !((uint32)&buffer % 32) && !((uint32)&output % 32)){
|
||||
int temp = sizeof(ClipVertex) *count;
|
||||
if (temp % 4)
|
||||
temp = (temp & 0xfffffffc) + 4;
|
||||
sq_cpy(buffer, output, temp);
|
||||
} else {
|
||||
memcpy(buffer, output, sizeof(ClipVertex) * count);
|
||||
}
|
||||
|
||||
// First 3 vertices are in the right place, just end early
|
||||
output[2].flags = PVR_CMD_VERTEX_EOL;
|
||||
|
|
23
GL/flush.c
23
GL/flush.c
|
@ -118,9 +118,10 @@ void APIENTRY glKosInit() {
|
|||
}
|
||||
|
||||
#define QACRTA ((((unsigned int)0x10000000)>>26)<<2)&0x1c
|
||||
static int frame_count = 0;
|
||||
|
||||
void APIENTRY glKosSwapBuffers() {
|
||||
static int frame_count = 0;
|
||||
|
||||
|
||||
TRACE();
|
||||
|
||||
|
@ -152,8 +153,26 @@ void APIENTRY glKosSwapBuffers() {
|
|||
PROFILER_CHECKPOINT("scene");
|
||||
PROFILER_POP();
|
||||
|
||||
#if PROFILER_COMPILE
|
||||
if(++frame_count > 49) {
|
||||
profiler_print_stats();
|
||||
PROFILER_PRINT_STATS();
|
||||
frame_count = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void APIENTRY glKosReserveOPList(unsigned int elements){
|
||||
aligned_vector_reserve(&OP_LIST.vector, elements);
|
||||
aligned_vector_reserve((AlignedVector*)_glKosINTERNALGetVertices(), elements/3);
|
||||
}
|
||||
|
||||
void APIENTRY glKosReservePTList(unsigned int elements){
|
||||
aligned_vector_reserve(&PT_LIST.vector, elements);
|
||||
aligned_vector_reserve((AlignedVector*)_glKosINTERNALGetVertices(), elements/3);
|
||||
}
|
||||
|
||||
void APIENTRY glKosReserveTRList(unsigned int elements){
|
||||
aligned_vector_reserve(&TR_LIST.vector, elements);
|
||||
aligned_vector_reserve((AlignedVector*)_glKosINTERNALGetVertices(), elements/3);
|
||||
}
|
||||
|
|
|
@ -259,3 +259,8 @@ void APIENTRY glRecti(GLint x1, GLint y1, GLint x2, GLint y2) {
|
|||
void APIENTRY glRectiv(const GLint *v1, const GLint *v2) {
|
||||
return glRectfv((const GLfloat *)v1, (const GLfloat *)v2);
|
||||
}
|
||||
|
||||
|
||||
AlignedVector* APIENTRY _glKosINTERNALGetVertices(){
|
||||
return &VERTICES;
|
||||
}
|
|
@ -131,7 +131,7 @@ typedef struct {
|
|||
GLint size;
|
||||
} AttribPointer;
|
||||
|
||||
GLboolean _glCheckValidEnum(GLint param, GLenum* values, const char* func);
|
||||
GLboolean _glCheckValidEnum(GLenum param, GLenum* values, const char* func);
|
||||
|
||||
GLuint _glGetEnabledAttributes();
|
||||
AttribPointer* _glGetVertexAttribPointer();
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#include "profiler.h"
|
||||
#include "private.h"
|
||||
#ifdef PROFILER_COMPILE
|
||||
#if PROFILER_COMPILE
|
||||
#include "../containers/aligned_vector.h"
|
||||
|
||||
#ifdef PROFILER_COMPILE
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
|
||||
#include <stdint.h>
|
||||
|
||||
#define PROFILER_COMPILE 1
|
||||
#define PROFILER_COMPILE 0
|
||||
#if PROFILER_COMPILE
|
||||
#define PROFILER_PUSH(S) profiler_push(S)
|
||||
#define PROFILER_CHECKPOINT(P) profiler_checkpoint(P)
|
||||
#define PROFILER_POP() profiler_pop()
|
||||
#define PROFILER_PRINT_STATS() profiler_print_stats()
|
||||
void profiler_enable();
|
||||
void profiler_disable();
|
||||
|
||||
|
@ -25,4 +26,5 @@ void profiler_print_stats();
|
|||
#define PROFILER_PUSH(S)
|
||||
#define PROFILER_CHECKPOINT(P)
|
||||
#define PROFILER_POP()
|
||||
#define PROFILER_PRINT_STATS()
|
||||
#endif
|
||||
|
|
|
@ -131,7 +131,7 @@ static void _updatePVRBlend(pvr_poly_cxt_t* context) {
|
|||
}
|
||||
}
|
||||
|
||||
GLboolean _glCheckValidEnum(GLint param, GLenum* values, const char* func) {
|
||||
GLboolean _glCheckValidEnum(GLenum param, GLenum* values, const char* func) {
|
||||
GLubyte found = 0;
|
||||
while(*values != 0) {
|
||||
if(*values == (GLenum)param) {
|
||||
|
|
18
GL/texture.c
18
GL/texture.c
|
@ -35,7 +35,9 @@ static GLenum INTERNAL_PALETTE_FORMAT = GL_RGBA4;
|
|||
static TexturePalette* _initTexturePalette() {
|
||||
TexturePalette* palette = (TexturePalette*) malloc(sizeof(TexturePalette));
|
||||
assert(palette);
|
||||
memset(palette, 0x0, sizeof(TexturePalette));
|
||||
|
||||
//memset(palette, 0x0, sizeof(TexturePalette));
|
||||
sq_clr(palette, (sizeof(TexturePalette) & 0xfffffffc) + 4);
|
||||
|
||||
palette->data = NULL;
|
||||
palette->format = 0;
|
||||
|
@ -223,6 +225,8 @@ GLubyte _glInitTextures() {
|
|||
SHARED_PALETTES[2] = _initTexturePalette();
|
||||
SHARED_PALETTES[3] = _initTexturePalette();
|
||||
|
||||
memset((void*)BANKS_USED,0x0,sizeof(BANKS_USED));
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -346,7 +350,7 @@ void APIENTRY glBindTexture(GLenum target, GLuint texture) {
|
|||
}
|
||||
}
|
||||
|
||||
void APIENTRY glTexEnvi(GLenum target, GLenum pname, GLint param) {
|
||||
void APIENTRY glTexEnvi(GLenum target, GLenum pname, GLenum param) {
|
||||
TRACE();
|
||||
|
||||
GLenum target_values [] = {GL_TEXTURE_ENV, 0};
|
||||
|
@ -384,10 +388,6 @@ void APIENTRY glTexEnvi(GLenum target, GLenum pname, GLint param) {
|
|||
}
|
||||
}
|
||||
|
||||
void APIENTRY glTexEnvf(GLenum target, GLenum pname, GLint param) {
|
||||
glTexEnvi(target, pname, param);
|
||||
}
|
||||
|
||||
void APIENTRY glCompressedTexImage2DARB(GLenum target,
|
||||
GLint level,
|
||||
GLenum internalFormat,
|
||||
|
@ -776,11 +776,10 @@ GLboolean _glIsMipmapComplete(const TextureObject* obj) {
|
|||
}
|
||||
|
||||
#define TWIDTAB(x) ( (x&1)|((x&2)<<1)|((x&4)<<2)|((x&8)<<3)|((x&16)<<4)| \
|
||||
((x&32)<<5)|((x&64)<<6)|((x&128)<<7)|((x&256)<<8)|((x&512)<<9) )
|
||||
|
||||
((x&32)<<5)|((x&64)<<6)|((x&128)<<7)|((x&256)<<8)|((x&512)<<9) )
|
||||
#define TWIDOUT(x, y) ( TWIDTAB((y)) | (TWIDTAB((x)) << 1) )
|
||||
#define MIN(a, b) ( (a)<(b)? (a):(b) )
|
||||
|
||||
#define MIN(a, b) ( (a)<(b)? (a):(b) )
|
||||
|
||||
void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalFormat,
|
||||
GLsizei width, GLsizei height, GLint border,
|
||||
|
@ -941,7 +940,6 @@ void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalFormat,
|
|||
|
||||
if(needsTwiddling) {
|
||||
assert(type == GL_UNSIGNED_BYTE); // Anything else needs this loop adjusting
|
||||
GLuint x, y, min, min2, mask;
|
||||
|
||||
min = MIN(w, h);
|
||||
min2 = min * min;
|
||||
|
|
|
@ -36,7 +36,8 @@ void aligned_vector_reserve(AlignedVector* vector, unsigned int element_count) {
|
|||
if(element_count <= vector->capacity) {
|
||||
return;
|
||||
}
|
||||
|
||||
element_count = ((element_count+_VECTOR_ALIGN_COUNT) & ~_VECTOR_ALIGN_COUNT);
|
||||
|
||||
unsigned int original_byte_size = vector->size * vector->element_size;
|
||||
|
||||
/* We overallocate so that we don't make small allocations during push backs */
|
||||
|
@ -47,7 +48,14 @@ void aligned_vector_reserve(AlignedVector* vector, unsigned int element_count) {
|
|||
vector->data = (unsigned char*) memalign(0x20, new_byte_size);
|
||||
|
||||
if(original_data) {
|
||||
memcpy(vector->data, original_data, original_byte_size);
|
||||
if( !(*vector->data % 32) && !(*original_data % 32)){
|
||||
if (original_byte_size % 4)
|
||||
original_byte_size = (original_byte_size & 0xfffffffc) + 4;
|
||||
sq_cpy(vector->data, original_data, original_byte_size);
|
||||
} else {
|
||||
memcpy(vector->data, original_data, original_byte_size);
|
||||
}
|
||||
|
||||
free(original_data);
|
||||
}
|
||||
|
||||
|
@ -64,6 +72,7 @@ void* aligned_vector_push_back(AlignedVector* vector, const void* objs, unsigned
|
|||
|
||||
/* Copy the objects in */
|
||||
memcpy(dest, objs, vector->element_size * count);
|
||||
//sq_cpy(dest, objs, ((vector->element_size * count) & 0xfffffffc) + 4);
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
@ -121,6 +130,8 @@ void aligned_vector_shrink_to_fit(AlignedVector* vector) {
|
|||
|
||||
if(original_data) {
|
||||
memcpy(vector->data, original_data, new_byte_size);
|
||||
//sq_cpy(vector->data, original_data, ((new_byte_size) & 0xfffffffc) + 4);
|
||||
|
||||
free(original_data);
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,8 @@ void named_array_init(NamedArray* array, unsigned int element_size, unsigned int
|
|||
array->elements = (unsigned char*) malloc(element_size * max_elements);
|
||||
array->used_markers = (unsigned char*) malloc(array->marker_count);
|
||||
#endif
|
||||
memset(array->used_markers, 0, sizeof(unsigned char) * array->marker_count);
|
||||
//memset(array->used_markers, 0, sizeof(unsigned char) * array->marker_count);
|
||||
sq_clr(array->used_markers, ((sizeof(unsigned char) * array->marker_count) & 0xfffffffc) + 4);
|
||||
}
|
||||
|
||||
char named_array_used(NamedArray* array, unsigned int id) {
|
||||
|
@ -58,7 +59,9 @@ void* named_array_alloc(NamedArray* array, unsigned int* new_id) {
|
|||
array->used_markers[i] |= (unsigned char) 1 << j;
|
||||
*new_id = id;
|
||||
unsigned char* ptr = &array->elements[id * array->element_size];
|
||||
memset(ptr, 0, array->element_size);
|
||||
|
||||
//memset(ptr, 0, array->element_size);
|
||||
sq_clr(ptr, (array->element_size & 0xfffffffc) + 4);
|
||||
return ptr;
|
||||
}
|
||||
}
|
||||
|
@ -76,7 +79,8 @@ void* named_array_reserve(NamedArray* array, unsigned int id) {
|
|||
assert(named_array_used(array, id));
|
||||
|
||||
unsigned char* ptr = &array->elements[id * array->element_size];
|
||||
memset(ptr, 0, array->element_size);
|
||||
//memset(ptr, 0, array->element_size);
|
||||
sq_clr(ptr, (array->element_size & 0xfffffffc) + 4);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
|
|
|
@ -485,8 +485,9 @@ GLAPI void APIENTRY glBlendFunc(GLenum sfactor, GLenum dfactor);
|
|||
|
||||
/* Texturing */
|
||||
GLAPI void APIENTRY glTexParameteri(GLenum target, GLenum pname, GLint param);
|
||||
GLAPI void APIENTRY glTexEnvi(GLenum target, GLenum pname, GLint param);
|
||||
GLAPI void APIENTRY glTexEnvf(GLenum target, GLenum pname, GLint param);
|
||||
GLAPI void APIENTRY glTexEnvi(GLenum target, GLenum pname, GLenum param);
|
||||
#define glTexEnvf(target, pname, param) glTexEnvi(target, pname, param)
|
||||
//GLAPI void APIENTRY glTexEnvf(GLenum target, GLenum pname, GLenum param);
|
||||
|
||||
GLAPI GLboolean APIENTRY glIsTexture(GLuint texture);
|
||||
GLAPI void APIENTRY glGenTextures(GLsizei n, GLuint *textures);
|
||||
|
|
|
@ -91,5 +91,9 @@ GLAPI void APIENTRY glKosSwapBuffers();
|
|||
/* Pass to glTexParameteri to set the shared bank */
|
||||
#define GL_SHARED_TEXTURE_BANK_KOS 0xEF00
|
||||
|
||||
GLAPI void APIENTRY glKosReserveOPList(unsigned int elements);
|
||||
GLAPI void APIENTRY glKosReservePTList(unsigned int elements);
|
||||
GLAPI void APIENTRY glKosReserveTRList(unsigned int elements);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user