diff options
author | Jaroslav Hensl <emulator@emulace.cz> | 2023-09-07 14:34:12 +0200 |
---|---|---|
committer | Jaroslav Hensl <emulator@emulace.cz> | 2023-09-07 14:34:12 +0200 |
commit | acde242b61c662d3f234fc051f059fa58875f5fd (patch) | |
tree | 63b6a12899bcd6acc4fe64c6b1b1915b87c7df12 /control.c | |
parent | 6eb9ffbc6cf3141d59220fee159786f186b65041 (diff) | |
download | vmdisp9x-1.2023.0.24.tar.gz |
SVGA: config in registry, better locking, HW cursor off by defaultv1.2023.0.24
Diffstat (limited to 'control.c')
-rw-r--r-- | control.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -193,6 +193,10 @@ typedef struct _svga_hda_t #define ULF_PITCH 4
#define ULF_LOCK_UL 5
#define ULF_LOCK_FIFO 6
+#define ULF_LOCK_FB 7
+#define ULF_LOCK_CB 8
+#define ULF_LOCK_GMR 9
+#define ULF_CNT 10
#define GMR_INDEX_CNT 6
#define CTX_INDEX_CNT 2
@@ -346,8 +350,8 @@ void SVGAHDA_init() {
_fmemset(&SVGAHDA, 0, sizeof(svga_hda_t));
- SVGAHDA.ul_flags_index = 0; // dirty, width, height, bpp, pitch, fifo_lock, ul_lock, fb_lock
- SVGAHDA.ul_fence_index = SVGAHDA.ul_flags_index + 8;
+ SVGAHDA.ul_flags_index = 0; // dirty, width, height, bpp, pitch, fifo_lock, ul_lock, fb_lock...
+ SVGAHDA.ul_fence_index = SVGAHDA.ul_flags_index + ULF_CNT;
SVGAHDA.ul_gmr_start = SVGAHDA.ul_fence_index + 1;
SVGAHDA.ul_gmr_count = SVGA_ReadReg(SVGA_REG_GMR_MAX_IDS);
//SVGAHDA.ul_gmr_count = SVGA3D_MAX_MOBS;
@@ -368,6 +372,9 @@ void SVGAHDA_init() SVGAHDA.userlist_pm16[ULF_LOCK_UL] = 0;
SVGAHDA.userlist_pm16[ULF_LOCK_FIFO] = 0;
+ SVGAHDA.userlist_pm16[ULF_LOCK_FB] = 0;
+ SVGAHDA.userlist_pm16[ULF_LOCK_CB] = 0;
+ SVGAHDA.userlist_pm16[ULF_LOCK_GMR] = 0;
}
dbg_printf("SVGAHDA_init: %ld\n", SVGAHDA.userlist_length * sizeof(uint32_t));
|