diff options
Diffstat (limited to 'kernel/gsp_phys_gpu.h')
| -rw-r--r-- | kernel/gsp_phys_gpu.h | 71 |
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 |
