X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=plugins%2Fdfxvideo%2Fgpu.c;h=649cb429ef1eb32c1d2ac2dccb108152618d0e0c;hb=afec9d44d1170fd6391528f4985211ffb00e8bea;hp=9fa08fe3f9642b61609a47526576c5f78b61bf1d;hpb=24de2dd4dbdd50e44c91c40ebbc7d59ee1c0ac9b;p=pcsx_rearmed.git diff --git a/plugins/dfxvideo/gpu.c b/plugins/dfxvideo/gpu.c index 9fa08fe3..649cb429 100644 --- a/plugins/dfxvideo/gpu.c +++ b/plugins/dfxvideo/gpu.c @@ -1060,8 +1060,8 @@ long CALLBACK GPUdmaChain(uint32_t * baseAddrL, uint32_t addr) if(count>0) GPUwriteDataMem(&baseAddrL[dmaMem>>2],count); addr = GETLE32(&baseAddrL[addr>>2])&0xffffff; - } - while (addr != 0xffffff); + } while (!(addr & 0x800000)); // contrary to some documentation, the end-of-linked-list marker is not actually 0xFF'FFFF + // any pointer with bit 23 set will do. GPUIsIdle; @@ -1143,6 +1143,8 @@ void GPUrearmedCallbacks(const struct rearmed_cbs *cbs) dwFrameRateTicks = cbs->gpu_peops.dwFrameRateTicks; if (cbs->pl_vout_set_raw_vram) cbs->pl_vout_set_raw_vram(psxVub); + if (cbs->pl_set_gpu_caps) + cbs->pl_set_gpu_caps(0); skip_advice = &cbs->fskip_advice; fps_skip = 100.0f;