Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
  • 3 commits
  • 3 files changed
  • 0 commit comments
  • 1 contributor
View
6 nullDC/dc/sh4/sh4_interpreter.cpp
@@ -680,12 +680,16 @@ u64 time_update_system=0;
void FASTCALL spgUpdatePvr(u32 cycles); // quicker to use direct plugin call
+//#define PROF_UPDATESYSTEM
+
extern "C" {
//448 Cycles
//as of 7/2/2k8 this is fixed to 448 cycles
int __attribute__((externally_visible)) __fastcall UpdateSystem()
{
+#ifdef PROF_UPDATESYSTEM
u64 ust=mftb();
+#endif
UpdateTMU(448);
spgUpdatePvr(448);
@@ -697,8 +701,10 @@ int __attribute__((externally_visible)) __fastcall UpdateSystem()
int rv=UpdateINTC();
+#ifdef PROF_UPDATESYSTEM
ust=mftb()-ust;
time_update_system+=ust;
+#endif
return rv;
}
View
3  plugins/ImgReader/common.h
@@ -178,8 +178,7 @@ struct Disc
}
int i;
- u32 * ptr=(u32*)temp;
- for(i=0;i<2352/4;++i) ptr[i]=__builtin_bswap32(ptr[i]);
+ bswap_block(temp,2352);
//TODO: Proper sector conversions
if (secfmt==SECFMT_2352)
View
17 plugins/drkPvr/threadedPvr.cpp
@@ -14,8 +14,8 @@ static volatile bool running=false;
#define TA_DMA_MAX_SIZE 1048576
-static __attribute__((aligned(128))) u32 ta_data[2][TA_DMA_MAX_SIZE/4];
-static int ta_size[2];
+static volatile __attribute__((aligned(128))) u32 ta_data[2][TA_DMA_MAX_SIZE/4];
+static volatile int ta_size[2];
static volatile int ta_cur=0;
static volatile bool ta_pending=false;
static volatile bool ta_working=false;
@@ -32,9 +32,14 @@ void threaded_TADma(u32* data,u32 size)
//printf("threaded_TADma %08x %d\n",data,size);
#if 1
- TASplitter::Dma(data,size);
+ verify(size*32<=TA_DMA_MAX_SIZE);
+ u64 * d=(u64*)ta_data[ta_cur];
+ memcpy(d,data,size*32);
+ ta_size[ta_cur]=size;
+
+ ta_pending=true;
+ while(ta_pending||ta_working);
- dmac_ch2_end_pending=true;
UpdateDMA();
return;
@@ -59,7 +64,7 @@ void threaded_TASQ(u32* data)
{
// u64 prt=mftb();
- while(ta_pending);
+ while(ta_pending||do_render_pending||rend_end_render_call_pending);
u64 * d=(u64*)ta_data[ta_cur];
u64 * s=(u64*)data;
@@ -83,7 +88,7 @@ static void threaded_task()
{
if(ta_pending)
{
- u32 * data=ta_data[ta_cur];
+ u32 * data=(u32*)ta_data[ta_cur];
u32 size = ta_size[ta_cur];
ta_cur=1-ta_cur;

No commit comments for this range

Something went wrong with that request. Please try again.