summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_gpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/gsp_phys_gpu.h')
-rw-r--r--kernel/gsp_phys_gpu.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/kernel/gsp_phys_gpu.h b/kernel/gsp_phys_gpu.h
index 46d841d..d84b080 100644
--- a/kernel/gsp_phys_gpu.h
+++ b/kernel/gsp_phys_gpu.h
@@ -295,6 +295,7 @@ int gsp_phys_rmcall_gr_promote_value(void);
* init+window+PCAS+sem shape); 1 replays the verbatim prelude.
*/
int gsp_phys_rmcall_gr_prelude_value(void);
+int gsp_phys_rmcall_gr_acq_value(void);
/*
* gsp_phys_rmcall_gr_qmdvirt (default 1): emit
@@ -339,6 +340,66 @@ int gsp_phys_rmcall_faultbuf_sys_value(void);
* (proven small-PT line) instead of the window-1 scratch range (default 0). */
int gsp_phys_rmcall_gr_shadow_win0_value(void);
+/*
+ * SESSION 153-CONTINUED-87: emit the client's missing TESS_CONTROL (j=2)
+ * and PIXEL (j=5) pipeline program binds ahead of replayed 3D windows
+ * (sema_gl_sph_bind, default 1). The sema service uses the same value to
+ * author the matching program images at those family VAs.
+ */
+bool gsp_phys_rmcall_gr_sph_bind_value(void);
+u32 gsp_phys_rmcall_gr_sph_bind_mask_value(void);
+
+/*
+ * SESSION 155 CONT 11: bind a synthesized header-only GEOMETRY SPH to
+ * stage 4 with ENABLE=0 (sema_gl_sph_gs_img, default 0). The sema service
+ * uses this value to author the 128-byte image at family+0x780.
+ */
+bool gsp_phys_rmcall_gr_sph_gs_img_value(void);
+
+/*
+ * SESSION 155 CONT 12: attribute-map variant for the synthesized GS SPH
+ * (0=pass-through, 1=zero maps, 2=PS-exact, 3=IMAP POS+COLOR / OMAP
+ * POS.XYZW). The sema service reads this per capture.
+ */
+u32 gsp_phys_rmcall_gr_sph_gs_maps_value(void);
+
+/*
+ * SESSION 155 CONT 13: GS-mode bits for the synthesized GS SPH
+ * (1=FASTGS header + SET_GS_MODE/skip-mask, 2=enable the stage).
+ */
+u32 gsp_phys_rmcall_gr_sph_gs_mode_value(void);
+
+/*
+ * SESSION 155 CONT 14: raster-enable prelude (CT_WRITE + depth/stencil/
+ * scissor disable) for replayed 3D windows.
+ */
+bool gsp_phys_rmcall_gr_raster_pre_value(void);
+
+/*
+ * SESSION 155 CONT 18: follow a migrated screen page in the copy-out
+ * (sema_gl_stale_write).
+ */
+bool gsp_phys_rmcall_gr_stale_write_value(void);
+
+/*
+ * SESSION 155 CONT 22: extra neutral raster state (blend/alpha/cull/point/
+ * ZCULL) for replayed 3D windows.
+ */
+bool gsp_phys_rmcall_gr_raster_extra_value(void);
+
+/*
+ * SESSION 155 CONT 15: synthesized GS SPH placement/maps/context A/B.
+ */
+u32 gsp_phys_rmcall_gr_sph_gs_addr_value(void);
+u32 gsp_phys_rmcall_gr_sph_gs_ctx_value(void);
+
+/*
+ * r1512: the viewport state the 3D replay injects for the current launch
+ * (sema_gl_vp_prelude mode + its literal words). Read-only; used by the
+ * sema service's draw-coverage receipt.
+ */
+void gsp_phys_gr_vp_state_get(int *mode, u32 *words, u32 *n);
+
/* m91: keep the forwarded QMD pointer pairs at the guest VAs (default 0). */
int gsp_phys_rmcall_gr_ptr_guest_value(void);
@@ -403,6 +464,7 @@ int gsp_phys_rmcall_gr_cwd_slot_value(void);
* attempt counter (default 3, clamped [0,4]). */
int gsp_phys_gr_nowrite_retries_value(void);
int gsp_phys_gr_wedge_rearm_value(void);
+unsigned int gsp_phys_gr_ccache_inv_value(void);
/* STALLFREE: absolute per-launch GR submit wall-clock budget in ms, clamped
* [10000,600000]; 0 = only the built-in per-ladder bounds (default 60000).
@@ -514,6 +576,15 @@ bool gsp_phys_guest_ram_active(void);
void gsp_phys_guest_ram_state(char *buf, size_t len);
/*
+ * Highest GPA any registered guest-RAM range covers (max of gpa_base+size
+ * across every active record; 0 when nothing is registered). A GPA at or
+ * above this can never hold guest content - the backing file's padding
+ * reads as zeros - so translation consumers use it to reject walk/pin
+ * answers that point past the registered RAM.
+ */
+u64 gsp_phys_guest_ram_top(void);
+
+/*
* Open-mdev helpers for the per-mdev debugfs selector and the single-guest
* guards: count the mdevs whose VFIO device is open, or resolve one open
* mdev by its device name (the mdev UUID). The returned device is not