diff --git a/src/etnaviv/ci/etnaviv-gc2000-flakes.txt b/src/etnaviv/ci/etnaviv-gc2000-flakes.txt index d5153eafd29..62cfa8555f8 100644 --- a/src/etnaviv/ci/etnaviv-gc2000-flakes.txt +++ b/src/etnaviv/ci/etnaviv-gc2000-flakes.txt @@ -12,12 +12,6 @@ dEQP-GLES2.functional.fbo.render.color.mix_npot_tex2d_rgba_depth_component16 dEQP-GLES2.functional.fbo.render.depth.npot_rbo_rgb565_depth_component16 dEQP-GLES2.functional.fbo.render.depth.npot_tex2d_rgba_depth_component16 dEQP-GLES2.functional.fbo.render.texsubimage.after_render_tex2d_rgb -dEQP-GLES2.functional.rasterization.culling.both_triangle_fan -dEQP-GLES2.functional.rasterization.culling.both_triangle_fan_reverse -dEQP-GLES2.functional.rasterization.culling.both_triangle_strip -dEQP-GLES2.functional.rasterization.culling.both_triangle_strip_reverse -dEQP-GLES2.functional.rasterization.culling.both_triangles -dEQP-GLES2.functional.rasterization.culling.both_triangles_reverse dEQP-GLES2.functional.shaders.random.all_features.fragment.* dEQP-GLES2.functional.shaders.random.texture.fragment.* dEQP-GLES2.functional.shaders.random.texture.vertex.* diff --git a/src/gallium/drivers/etnaviv/etnaviv_context.c b/src/gallium/drivers/etnaviv/etnaviv_context.c index b73e416aebd..4c4bb97432b 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_context.c +++ b/src/gallium/drivers/etnaviv/etnaviv_context.c @@ -272,6 +272,10 @@ etna_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info, if (ctx->vertex_elements == NULL || ctx->vertex_elements->num_elements == 0) return; /* Nothing to do */ + if (unlikely(ctx->rasterizer->cull_face == PIPE_FACE_FRONT_AND_BACK && + u_decomposed_prim(info->mode) == PIPE_PRIM_TRIANGLES)) + return; + int prims = u_decomposed_prims_for_vertices(info->mode, draws[0].count); if (unlikely(prims <= 0)) { DBG("Invalid draw primitive mode=%i or no primitives to be drawn", info->mode); diff --git a/src/gallium/drivers/etnaviv/etnaviv_translate.h b/src/gallium/drivers/etnaviv/etnaviv_translate.h index 758a682d084..f15fa79048e 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_translate.h +++ b/src/gallium/drivers/etnaviv/etnaviv_translate.h @@ -47,6 +47,7 @@ translate_cull_face(unsigned cull_face, unsigned front_ccw) { switch (cull_face) { case PIPE_FACE_NONE: + case PIPE_FACE_FRONT_AND_BACK: /* handled in draw_vbo */ return VIVS_PA_CONFIG_CULL_FACE_MODE_OFF; case PIPE_FACE_BACK: return front_ccw ? VIVS_PA_CONFIG_CULL_FACE_MODE_CW