mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 20:28:04 +02:00
r600: Take dual source blending in account when creating target mask with RATs
This is properly checked when filling CB_... registers in evergreen_emit_image_state(), but not when generating CB_TARGET_MASK. It would lead to an invalid command steam if a fragment shader uses SSBO/Image load/store alongside dual source blending. Acked-by: Patrick Lerda <patrick9876@free.fr> Fixes:a6b3792843Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/622 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34333> (cherry picked from commit4e68e422e0)
This commit is contained in:
parent
55241615c6
commit
ae1d465543
2 changed files with 2 additions and 2 deletions
|
|
@ -3534,7 +3534,7 @@
|
|||
"description": "r600: Take dual source blending in account when creating target mask with RATs",
|
||||
"nominated": true,
|
||||
"nomination_type": 2,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "a6b379284365e8adee780b691596d3a66de1ba93",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -2035,7 +2035,7 @@ static void evergreen_emit_cb_misc_state(struct r600_context *rctx, struct r600_
|
|||
struct r600_cb_misc_state *a = (struct r600_cb_misc_state*)atom;
|
||||
unsigned fb_colormask = a->bound_cbufs_target_mask;
|
||||
unsigned ps_colormask = a->ps_color_export_mask;
|
||||
unsigned rat_colormask = evergreen_construct_rat_mask(rctx, a, a->nr_cbufs);
|
||||
unsigned rat_colormask = evergreen_construct_rat_mask(rctx, a, a->nr_cbufs + (a->dual_src_blend ? 1 : 0));
|
||||
radeon_set_context_reg_seq(cs, R_028238_CB_TARGET_MASK, 2);
|
||||
radeon_emit(cs, (a->blend_colormask & fb_colormask) | rat_colormask); /* R_028238_CB_TARGET_MASK */
|
||||
/* This must match the used export instructions exactly.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue