diff --git a/Makefile b/Makefile index 15954e6..f8dfe54 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,8 @@ PREFIX = arm-vita-eabi CC = $(PREFIX)-gcc CXX = $(PREFIX)-g++ AR = $(PREFIX)-gcc-ar -CFLAGS = -g -Wl,-q,--no-enum-size-warning -fno-short-enums -fno-optimize-sibling-calls -O2 -ftree-vectorize -fsingle-precision-constant -mfloat-abi=hard -ffast-math \ - -DPSP2 -DNDEBUG -DRW_GL3 -DLIBRW_GLAD +CFLAGS = -g -Wl,-q,--no-enum-size-warning -fno-short-enums -fno-optimize-sibling-calls -O3 -fsingle-precision-constant -mfloat-abi=hard -ffast-math \ + -DPSP2 -DNDEBUG -DRW_GL3 -DLIBRW_GLAD -Dmemcpy_neon=sceClibMemcpy CXXFLAGS = $(CFLAGS) ASFLAGS = $(CFLAGS) diff --git a/src/gl/gl3device.cpp b/src/gl/gl3device.cpp index d8af980..7c07dbd 100644 --- a/src/gl/gl3device.cpp +++ b/src/gl/gl3device.cpp @@ -415,10 +415,10 @@ void bindFramebuffer(uint32 fbo) { //glBindFramebuffer(GL_FRAMEBUFFER, fbo); - if(currentFramebuffer != fbo){ - glBindFramebuffer(GL_FRAMEBUFFER, fbo); + //if(currentFramebuffer != fbo){ + // glBindFramebuffer(GL_FRAMEBUFFER, fbo); currentFramebuffer = fbo; - } + //} } // TODO: support mipmaps @@ -995,7 +995,7 @@ setFrameBuffer(Camera *cam) assert(fbuf); Gl3Raster *natfb = PLUGINOFFSET(Gl3Raster, fbuf, nativeRasterOffset); - Gl3Raster *natzb = PLUGINOFFSET(Gl3Raster, zbuf, nativeRasterOffset); + //Gl3Raster *natzb = PLUGINOFFSET(Gl3Raster, zbuf, nativeRasterOffset); assert(fbuf->type == Raster::CAMERA || fbuf->type == Raster::CAMERATEXTURE); // Have to make sure depth buffer is attached to FB's fbo @@ -1103,9 +1103,7 @@ beginUpdate(Camera *cam) } setFrameBuffer(cam); -#ifndef MIAMI_SUPPORT - vglStartRendering(); -#endif + ImIdx = (ImIdx + 1) % 2; gVertexBufferIm2D = gVertexBufferIm2DPtr[ImIdx]; gVertexBufferIm3D = gVertexBufferIm3DPtr[ImIdx]; @@ -1136,31 +1134,12 @@ static void endUpdate(Camera *cam) { -#ifndef MIAMI_SUPPORT - vglStopRendering(); -#endif -} - -void log2file(const char *format, ...) { - __gnuc_va_list arg; - int done; - va_start(arg, format); - char msg[512]; - done = vsprintf(msg, format, arg); - va_end(arg); - int i; - sprintf(msg, "%s\n", msg); - FILE *log = fopen("ux0:/data/librw.log", "a+"); - if (log != NULL) { - fwrite(msg, 1, strlen(msg), log); - fclose(log); - } } static void clearCamera(Camera *cam, RGBA *col, uint32 mode) { - RGBAf colf; + /*RGBAf colf; int mask; convColor(&colf, col); @@ -1172,7 +1151,7 @@ clearCamera(Camera *cam, RGBA *col, uint32 mode) mask |= GL_DEPTH_BUFFER_BIT; glDepthMask(GL_TRUE); glClear((GLbitfield)mask); - glDepthMask(rwStateCache.zwrite); + glDepthMask(rwStateCache.zwrite);*/ } static void @@ -1187,11 +1166,7 @@ showRaster(Raster *raster, uint32 flags) else vglWaitVblankStart(GL_FALSE); #endif - //log2file("showRaster called"); -#ifdef MIAMI_SUPPORT - vglStopRendering(); - vglStartRendering(); -#endif + vglSwapBuffers(GL_FALSE); } static bool32 @@ -1384,11 +1359,8 @@ openGLFW(EngineOpenParams *openparams) #else vglEnableRuntimeShaderCompiler(GL_FALSE); #endif - vglInitExtended(0x10000, 960, 544, 0x100000, SCE_GXM_MULTISAMPLE_4X); + vglInitExtended(0, 960, 544, 0x100000, SCE_GXM_MULTISAMPLE_4X); vglUseVram(GL_TRUE); -#ifdef MIAMI_SUPPORT - vglStartRendering(); -#endif makeVideoModeList(); return 1; @@ -1457,7 +1429,7 @@ initOpenGL(void) u_matColor = registerUniform("u_matColor"); u_surfProps = registerUniform("u_surfProps"); - glClearColor(0.25, 0.25, 0.25, 1.0); + //glClearColor(0.25, 0.25, 0.25, 1.0); byte whitepixel[4] = {0xFF, 0xFF, 0xFF, 0xFF}; diff --git a/src/gl/gl3immed.cpp b/src/gl/gl3immed.cpp index 8708fe3..4425eff 100644 --- a/src/gl/gl3immed.cpp +++ b/src/gl/gl3immed.cpp @@ -46,7 +46,7 @@ static AttribDesc im2dattribDesc[3] = { static int primTypeMap[] = { GL_POINTS, // invalid GL_LINES, - GL_LINE_STRIP, + GL_LINES,//_STRIP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, diff --git a/src/gl/gl3raster.cpp b/src/gl/gl3raster.cpp index 634f9c1..ae2c8f6 100644 --- a/src/gl/gl3raster.cpp +++ b/src/gl/gl3raster.cpp @@ -140,10 +140,10 @@ rasterCreateCameraTexture(Raster *raster) bindTexture(prev); - glGenFramebuffers(1, &natras->fbo); + /*glGenFramebuffers(1, &natras->fbo); bindFramebuffer(natras->fbo); glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, natras->texid, 0); - bindFramebuffer(0); + bindFramebuffer(0);*/ natras->fboMate = nil; return raster; @@ -257,7 +257,7 @@ rasterCreate(Raster *raster) } } -#define ALIGN(x, a) (((x) + ((a)-1)) & ~((a)-1)) +#define MEM_ALIGN(x, a) (((x) + ((a)-1)) & ~((a)-1)) uint8* rasterLock(Raster *raster, int32 level, int32 lockMode) @@ -282,7 +282,7 @@ rasterLock(Raster *raster, int32 level, int32 lockMode) int y = 0; uint8_t *p = (uint8_t*)vglGetTexDataPointer(GL_TEXTURE_2D); #ifdef PSP2_NO_DXT_TEXTURES - uint32_t internal_stride = ALIGN(raster->width, 8) * natras->bpp; + uint32_t internal_stride = MEM_ALIGN(raster->width, 8) * natras->bpp; while (y < raster->height) { memcpy_neon(px, p, raster->stride); p += internal_stride; @@ -290,7 +290,7 @@ rasterLock(Raster *raster, int32 level, int32 lockMode) } #else if (raster->width < 4 || raster->height < 4) { - uint32_t internal_stride = ALIGN(raster->width, 8) * natras->bpp; + uint32_t internal_stride = MEM_ALIGN(raster->width, 8) * natras->bpp; while (y < raster->height) { memcpy_neon(px, p, raster->stride); p += internal_stride; diff --git a/src/gl/gl3render.cpp b/src/gl/gl3render.cpp index 1132d62..8a5c52a 100644 --- a/src/gl/gl3render.cpp +++ b/src/gl/gl3render.cpp @@ -64,11 +64,9 @@ drawInst_GSemu(InstanceDataHeader *header, InstanceData *inst) void drawInst(InstanceDataHeader *header, InstanceData *inst) { -#ifndef PSP2 if(rw::GetRenderState(rw::GSALPHATEST)) drawInst_GSemu(header, inst); else -#endif drawInst_simple(header, inst); } diff --git a/src/ps2/ps2raster.cpp b/src/ps2/ps2raster.cpp index 68e8165..5258bdb 100644 --- a/src/ps2/ps2raster.cpp +++ b/src/ps2/ps2raster.cpp @@ -76,7 +76,7 @@ transferMinSize(int32 psm, int32 flags, int32 *minw, int32 *minh) } } -#define ALIGN(x,a) ((x) + (a)-1 & ~((a)-1)) +#define PS2ALIGN(x,a) ((x) + (a)-1 & ~((a)-1)) #define ALIGN16(x) ((x) + 0xF & ~0xF) #define ALIGN64(x) ((x) + 0x3F & ~0x3F) #define NSIZE(dim,pagedim) (((dim) + (pagedim)-1)/(pagedim)) @@ -1121,9 +1121,9 @@ rasterCreateTexture(Raster *raster) } // What happens here? if(ras->paletteSize && paltrxpos == 0) - ras->dataSize = ALIGN(ras->pixelSize,128) + ALIGN(ras->paletteSize,64) + extrasize + 0x70; + ras->dataSize = PS2ALIGN(ras->pixelSize,128) + PS2ALIGN(ras->paletteSize,64) + extrasize + 0x70; else - ras->dataSize = ALIGN(ras->paletteSize+ras->pixelSize,64) + extrasize + 0x70; + ras->dataSize = PS2ALIGN(ras->paletteSize+ras->pixelSize,64) + extrasize + 0x70; uint8 *data = (uint8*)mallocalign(ras->dataSize, 0x40); uint32 *xferchain = (uint32*)(data + 0x10); assert(data); @@ -1131,10 +1131,10 @@ rasterCreateTexture(Raster *raster) Ps2Raster::PixelPtr *pp = (Ps2Raster::PixelPtr*)data; pp->numTransfers = numTransfers; pp->numTotalTransfers = numTransfers; - pp->pixels = (uint8*)ALIGN((uintptr)data + extrasize, 128); + pp->pixels = (uint8*)PS2ALIGN((uintptr)data + extrasize, 128); raster->pixels = (uint8*)pp; if(ras->paletteSize) - raster->palette = pp->pixels + ALIGN(ras->pixelSize, 128) + 0x50; + raster->palette = pp->pixels + PS2ALIGN(ras->pixelSize, 128) + 0x50; uint32 *p = (uint32*)pp->pixels; w = raster->width; h = raster->height;