diff options
Diffstat (limited to 'kernel/gsp_sema_service.c')
| -rw-r--r-- | kernel/gsp_sema_service.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c index 18d5e78..327a932 100644 --- a/kernel/gsp_sema_service.c +++ b/kernel/gsp_sema_service.c @@ -7420,8 +7420,20 @@ static struct svc_fwd_cand svc_fwd_cand; * (CONT-44: zero src=stream captures on the client channel). The window * slice still has to fit the backend's method block; only the raw[] * retention is widened here. - */ -#define SVC_GR_PUSH_WORDS 2048 + * + * SESSION 154-1: 2048 -> 4096 dwords (16 KB). The direct client's + * occasional full-frame push is 12288 B (3072 dwords; r1483 + * `section open (draw) push=0x4310110 len=12288`, window 2115 words at + * off 0xef4). With the 2048-word tail the window start fell before the + * retained tail, `len == push_n*4` failed and the whole capture was + * dropped: `3D mark failed ... raw_ok=0 fit_ok=0 (rawlen=3072 + * pushn=2048 len=12288)`. The launch then replayed the previous + * window's fallback words and the client's real draw never reached the + * engine. 4096 words carries the whole 12288-B push so the existing + * method-aligned svc_gl_stream_chunks() split (<=448-word chunks, six + * per frame) can run. Must stay equal to GSP_PHYS_GR_RAW_WORDS. + */ +#define SVC_GR_PUSH_WORDS 4096 #define SVC_GR_QMD_WORD_NONE 0xffffffffu /* svc_gr_cand.rel_flags bits (decoded from qmd[24] and qmd[4]). */ #define SVC_GR_REL_REDUCTION 0x1u |
