turnip: fix logicOp
Don't ignore logic op for integer formats. Blend also doesn't need this path, because it isn't valid for blendEnable to be true for integer formats. Signed-off-by: Jonathan Marek <jonathan@marek.ca> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8707>
This commit is contained in:
parent
0602d4ec69
commit
596e82510d
|
@ -1842,18 +1842,11 @@ tu6_rb_mrt_blend_control(const VkPipelineColorBlendAttachmentState *att,
|
|||
static uint32_t
|
||||
tu6_rb_mrt_control(const VkPipelineColorBlendAttachmentState *att,
|
||||
uint32_t rb_mrt_control_rop,
|
||||
bool is_int,
|
||||
bool has_alpha)
|
||||
{
|
||||
uint32_t rb_mrt_control =
|
||||
A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE(att->colorWriteMask);
|
||||
|
||||
/* ignore blending and logic op for integer attachments */
|
||||
if (is_int) {
|
||||
rb_mrt_control |= A6XX_RB_MRT_CONTROL_ROP_CODE(ROP_COPY);
|
||||
return rb_mrt_control;
|
||||
}
|
||||
|
||||
rb_mrt_control |= rb_mrt_control_rop;
|
||||
|
||||
if (att->blendEnable) {
|
||||
|
@ -1891,11 +1884,10 @@ tu6_emit_rb_mrt_controls(struct tu_cs *cs,
|
|||
uint32_t rb_mrt_control = 0;
|
||||
uint32_t rb_mrt_blend_control = 0;
|
||||
if (format != VK_FORMAT_UNDEFINED) {
|
||||
const bool is_int = vk_format_is_int(format);
|
||||
const bool has_alpha = vk_format_has_alpha(format);
|
||||
|
||||
rb_mrt_control =
|
||||
tu6_rb_mrt_control(att, rb_mrt_control_rop, is_int, has_alpha);
|
||||
tu6_rb_mrt_control(att, rb_mrt_control_rop, has_alpha);
|
||||
rb_mrt_blend_control = tu6_rb_mrt_blend_control(att, has_alpha);
|
||||
|
||||
if (att->blendEnable || rop_reads_dst)
|
||||
|
|
Loading…
Reference in New Issue