aboutsummaryrefslogtreecommitdiffstats
path: root/control.c
diff options
context:
space:
mode:
authorJaroslav Hensl <emulator@emulace.cz>2023-09-07 14:34:12 +0200
committerJaroslav Hensl <emulator@emulace.cz>2023-09-07 14:34:12 +0200
commitacde242b61c662d3f234fc051f059fa58875f5fd (patch)
tree63b6a12899bcd6acc4fe64c6b1b1915b87c7df12 /control.c
parent6eb9ffbc6cf3141d59220fee159786f186b65041 (diff)
downloadvmdisp9x-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.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/control.c b/control.c
index 4eb9277..cdac8f2 100644
--- a/control.c
+++ b/control.c
@@ -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));