Make it work with latest vitaGL commit.

This commit is contained in:
Rinnegatamante
2021-02-14 11:45:50 +01:00
parent e3e5c7bbc6
commit 08c603497e
6 changed files with 23 additions and 53 deletions
+2 -2
View File
@@ -10,8 +10,8 @@ PREFIX = arm-vita-eabi
CC = $(PREFIX)-gcc CC = $(PREFIX)-gcc
CXX = $(PREFIX)-g++ CXX = $(PREFIX)-g++
AR = $(PREFIX)-gcc-ar 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 \ 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 -DPSP2 -DNDEBUG -DRW_GL3 -DLIBRW_GLAD -Dmemcpy_neon=sceClibMemcpy
CXXFLAGS = $(CFLAGS) CXXFLAGS = $(CFLAGS)
ASFLAGS = $(CFLAGS) ASFLAGS = $(CFLAGS)
+10 -38
View File
@@ -415,10 +415,10 @@ void
bindFramebuffer(uint32 fbo) bindFramebuffer(uint32 fbo)
{ {
//glBindFramebuffer(GL_FRAMEBUFFER, fbo); //glBindFramebuffer(GL_FRAMEBUFFER, fbo);
if(currentFramebuffer != fbo){ //if(currentFramebuffer != fbo){
glBindFramebuffer(GL_FRAMEBUFFER, fbo); // glBindFramebuffer(GL_FRAMEBUFFER, fbo);
currentFramebuffer = fbo; currentFramebuffer = fbo;
} //}
} }
// TODO: support mipmaps // TODO: support mipmaps
@@ -995,7 +995,7 @@ setFrameBuffer(Camera *cam)
assert(fbuf); assert(fbuf);
Gl3Raster *natfb = PLUGINOFFSET(Gl3Raster, fbuf, nativeRasterOffset); 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); assert(fbuf->type == Raster::CAMERA || fbuf->type == Raster::CAMERATEXTURE);
// Have to make sure depth buffer is attached to FB's fbo // Have to make sure depth buffer is attached to FB's fbo
@@ -1103,9 +1103,7 @@ beginUpdate(Camera *cam)
} }
setFrameBuffer(cam); setFrameBuffer(cam);
#ifndef MIAMI_SUPPORT
vglStartRendering();
#endif
ImIdx = (ImIdx + 1) % 2; ImIdx = (ImIdx + 1) % 2;
gVertexBufferIm2D = gVertexBufferIm2DPtr[ImIdx]; gVertexBufferIm2D = gVertexBufferIm2DPtr[ImIdx];
gVertexBufferIm3D = gVertexBufferIm3DPtr[ImIdx]; gVertexBufferIm3D = gVertexBufferIm3DPtr[ImIdx];
@@ -1136,31 +1134,12 @@ static
void void
endUpdate(Camera *cam) 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 static void
clearCamera(Camera *cam, RGBA *col, uint32 mode) clearCamera(Camera *cam, RGBA *col, uint32 mode)
{ {
RGBAf colf; /*RGBAf colf;
int mask; int mask;
convColor(&colf, col); convColor(&colf, col);
@@ -1172,7 +1151,7 @@ clearCamera(Camera *cam, RGBA *col, uint32 mode)
mask |= GL_DEPTH_BUFFER_BIT; mask |= GL_DEPTH_BUFFER_BIT;
glDepthMask(GL_TRUE); glDepthMask(GL_TRUE);
glClear((GLbitfield)mask); glClear((GLbitfield)mask);
glDepthMask(rwStateCache.zwrite); glDepthMask(rwStateCache.zwrite);*/
} }
static void static void
@@ -1187,11 +1166,7 @@ showRaster(Raster *raster, uint32 flags)
else else
vglWaitVblankStart(GL_FALSE); vglWaitVblankStart(GL_FALSE);
#endif #endif
//log2file("showRaster called"); vglSwapBuffers(GL_FALSE);
#ifdef MIAMI_SUPPORT
vglStopRendering();
vglStartRendering();
#endif
} }
static bool32 static bool32
@@ -1384,11 +1359,8 @@ openGLFW(EngineOpenParams *openparams)
#else #else
vglEnableRuntimeShaderCompiler(GL_FALSE); vglEnableRuntimeShaderCompiler(GL_FALSE);
#endif #endif
vglInitExtended(0x10000, 960, 544, 0x100000, SCE_GXM_MULTISAMPLE_4X); vglInitExtended(0, 960, 544, 0x100000, SCE_GXM_MULTISAMPLE_4X);
vglUseVram(GL_TRUE); vglUseVram(GL_TRUE);
#ifdef MIAMI_SUPPORT
vglStartRendering();
#endif
makeVideoModeList(); makeVideoModeList();
return 1; return 1;
@@ -1457,7 +1429,7 @@ initOpenGL(void)
u_matColor = registerUniform("u_matColor"); u_matColor = registerUniform("u_matColor");
u_surfProps = registerUniform("u_surfProps"); 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}; byte whitepixel[4] = {0xFF, 0xFF, 0xFF, 0xFF};
+1 -1
View File
@@ -46,7 +46,7 @@ static AttribDesc im2dattribDesc[3] = {
static int primTypeMap[] = { static int primTypeMap[] = {
GL_POINTS, // invalid GL_POINTS, // invalid
GL_LINES, GL_LINES,
GL_LINE_STRIP, GL_LINES,//_STRIP,
GL_TRIANGLES, GL_TRIANGLES,
GL_TRIANGLE_STRIP, GL_TRIANGLE_STRIP,
GL_TRIANGLE_FAN, GL_TRIANGLE_FAN,
+5 -5
View File
@@ -140,10 +140,10 @@ rasterCreateCameraTexture(Raster *raster)
bindTexture(prev); bindTexture(prev);
glGenFramebuffers(1, &natras->fbo); /*glGenFramebuffers(1, &natras->fbo);
bindFramebuffer(natras->fbo); bindFramebuffer(natras->fbo);
glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, natras->texid, 0); glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, natras->texid, 0);
bindFramebuffer(0); bindFramebuffer(0);*/
natras->fboMate = nil; natras->fboMate = nil;
return raster; 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* uint8*
rasterLock(Raster *raster, int32 level, int32 lockMode) rasterLock(Raster *raster, int32 level, int32 lockMode)
@@ -282,7 +282,7 @@ rasterLock(Raster *raster, int32 level, int32 lockMode)
int y = 0; int y = 0;
uint8_t *p = (uint8_t*)vglGetTexDataPointer(GL_TEXTURE_2D); uint8_t *p = (uint8_t*)vglGetTexDataPointer(GL_TEXTURE_2D);
#ifdef PSP2_NO_DXT_TEXTURES #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) { while (y < raster->height) {
memcpy_neon(px, p, raster->stride); memcpy_neon(px, p, raster->stride);
p += internal_stride; p += internal_stride;
@@ -290,7 +290,7 @@ rasterLock(Raster *raster, int32 level, int32 lockMode)
} }
#else #else
if (raster->width < 4 || raster->height < 4) { 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) { while (y < raster->height) {
memcpy_neon(px, p, raster->stride); memcpy_neon(px, p, raster->stride);
p += internal_stride; p += internal_stride;
-2
View File
@@ -64,11 +64,9 @@ drawInst_GSemu(InstanceDataHeader *header, InstanceData *inst)
void void
drawInst(InstanceDataHeader *header, InstanceData *inst) drawInst(InstanceDataHeader *header, InstanceData *inst)
{ {
#ifndef PSP2
if(rw::GetRenderState(rw::GSALPHATEST)) if(rw::GetRenderState(rw::GSALPHATEST))
drawInst_GSemu(header, inst); drawInst_GSemu(header, inst);
else else
#endif
drawInst_simple(header, inst); drawInst_simple(header, inst);
} }
+5 -5
View File
@@ -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 ALIGN16(x) ((x) + 0xF & ~0xF)
#define ALIGN64(x) ((x) + 0x3F & ~0x3F) #define ALIGN64(x) ((x) + 0x3F & ~0x3F)
#define NSIZE(dim,pagedim) (((dim) + (pagedim)-1)/(pagedim)) #define NSIZE(dim,pagedim) (((dim) + (pagedim)-1)/(pagedim))
@@ -1121,9 +1121,9 @@ rasterCreateTexture(Raster *raster)
} }
// What happens here? // What happens here?
if(ras->paletteSize && paltrxpos == 0) 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 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); uint8 *data = (uint8*)mallocalign(ras->dataSize, 0x40);
uint32 *xferchain = (uint32*)(data + 0x10); uint32 *xferchain = (uint32*)(data + 0x10);
assert(data); assert(data);
@@ -1131,10 +1131,10 @@ rasterCreateTexture(Raster *raster)
Ps2Raster::PixelPtr *pp = (Ps2Raster::PixelPtr*)data; Ps2Raster::PixelPtr *pp = (Ps2Raster::PixelPtr*)data;
pp->numTransfers = numTransfers; pp->numTransfers = numTransfers;
pp->numTotalTransfers = numTransfers; pp->numTotalTransfers = numTransfers;
pp->pixels = (uint8*)ALIGN((uintptr)data + extrasize, 128); pp->pixels = (uint8*)PS2ALIGN((uintptr)data + extrasize, 128);
raster->pixels = (uint8*)pp; raster->pixels = (uint8*)pp;
if(ras->paletteSize) 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; uint32 *p = (uint32*)pp->pixels;
w = raster->width; w = raster->width;
h = raster->height; h = raster->height;