@@ -514,7 +514,7 @@ static noinline void start_vram_transfer(struct psx_gpu *gpu, uint32_t pos_word,
514
514
log_io (gpu , "start_vram_transfer %c (%d, %d) %dx%d\n" , is_read ? 'r' : 'w' ,
515
515
gpu -> dma .x , gpu -> dma .y , gpu -> dma .w , gpu -> dma .h );
516
516
if (gpu -> gpu_state_change )
517
- gpu -> gpu_state_change (PGS_VRAM_TRANSFER_START );
517
+ gpu -> gpu_state_change (PGS_VRAM_TRANSFER_START , 0 );
518
518
}
519
519
520
520
static void finish_vram_transfer (struct psx_gpu * gpu , int is_read )
@@ -540,7 +540,7 @@ static void finish_vram_transfer(struct psx_gpu *gpu, int is_read)
540
540
gpu -> dma_start .w , gpu -> dma_start .h , 0 );
541
541
}
542
542
if (gpu -> gpu_state_change )
543
- gpu -> gpu_state_change (PGS_VRAM_TRANSFER_END );
543
+ gpu -> gpu_state_change (PGS_VRAM_TRANSFER_END , 0 );
544
544
}
545
545
546
546
static void do_vram_copy (struct psx_gpu * gpu , const uint32_t * params , int * cpu_cycles )
@@ -749,14 +749,15 @@ static noinline int do_cmd_buffer(struct psx_gpu *gpu, uint32_t *data, int count
749
749
750
750
static noinline void flush_cmd_buffer (struct psx_gpu * gpu )
751
751
{
752
+ int cycles_last = 0 ;
752
753
int dummy = 0 , left ;
753
- left = do_cmd_buffer (gpu , gpu -> cmd_buffer , gpu -> cmd_len , & dummy , & dummy );
754
+ left = do_cmd_buffer (gpu , gpu -> cmd_buffer , gpu -> cmd_len , & dummy , & cycles_last );
754
755
if (left > 0 )
755
756
memmove (gpu -> cmd_buffer , gpu -> cmd_buffer + gpu -> cmd_len - left , left * 4 );
756
757
if (left != gpu -> cmd_len ) {
757
- if (!gpu -> dma .h && gpu -> gpu_state_change )
758
- gpu -> gpu_state_change (PGS_PRIMITIVE_START );
759
758
gpu -> cmd_len = left ;
759
+ if (!gpu -> dma .h && gpu -> gpu_state_change )
760
+ gpu -> gpu_state_change (PGS_PRIMITIVE_START , cycles_last );
760
761
}
761
762
}
762
763
0 commit comments