Make it work with latest vitaGL commit.
This commit is contained in:
@@ -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
@@ -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
@@ -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,
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user