X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fgpu-gles%2Fgpulib_if.c;h=1f4a23db423022b6329e34261e92fb352b9b8b40;hp=068dc411e564e0a5f01f0cc5ac5fe0a3b9bbf189;hb=ed0fd81dfdb63fe5941b9010ace353719168d3ae;hpb=2857d72e4ca743bba3cf55e298949e24d97dff02 diff --git a/plugins/gpu-gles/gpulib_if.c b/plugins/gpu-gles/gpulib_if.c index 068dc411..1f4a23db 100644 --- a/plugins/gpu-gles/gpulib_if.c +++ b/plugins/gpu-gles/gpulib_if.c @@ -549,7 +549,12 @@ int do_cmd_list(unsigned int *list, int list_len, int *last_cmd) while(1) { - if((*list_position & 0xf000f000) == 0x50005000 || list_position >= list_end) + if(list_position >= list_end) { + cmd = -1; + goto breakloop; + } + + if((*list_position & 0xf000f000) == 0x50005000) break; list_position++; @@ -567,7 +572,12 @@ int do_cmd_list(unsigned int *list, int list_len, int *last_cmd) while(1) { - if((*list_position & 0xf000f000) == 0x50005000 || list_position >= list_end) + if(list_position >= list_end) { + cmd = -1; + goto breakloop; + } + + if((*list_position & 0xf000f000) == 0x50005000) break; list_position += 2; @@ -593,6 +603,7 @@ int do_cmd_list(unsigned int *list, int list_len, int *last_cmd) } } +breakloop: gpu.ex_regs[1] &= ~0x1ff; gpu.ex_regs[1] |= lGPUstatusRet & 0x1ff; @@ -679,7 +690,7 @@ long GPUopen(void **dpy) InitializeTextureStore(); // init texture mem - ret = GLinitialize(); + ret = GLinitialize(cbs->gles_display, cbs->gles_surface); MakeDisplayLists(); is_opened = 1; @@ -715,9 +726,16 @@ void renderer_set_config(const struct rearmed_cbs *cbs_) bUseFastMdec = cbs->gpu_peopsgl.bUseFastMdec; iTexGarbageCollection = cbs->gpu_peopsgl.iTexGarbageCollection; iVRamSize = cbs->gpu_peopsgl.iVRamSize; + if (cbs->pl_set_gpu_caps) cbs->pl_set_gpu_caps(GPU_CAP_OWNS_DISPLAY); + if (is_opened && cbs->gles_display != NULL && cbs->gles_surface != NULL) { + // HACK.. + GPUclose(); + GPUopen(NULL); + } + set_vram(gpu.vram); }