mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2025-02-12 13:21:00 +00:00
freedreno/a5xx: Add support for clip distances and use them for userclip.
A little low-stakes RE effort as I unwind from fighting CI all day. Comes from diffing dEQP-VK.clipping.user_defined.clip_distance.vert.* on the blob and comparing to a6xx behavior. (My blob doesn't do tess, so if there are equivalent tess fields for some of these, I didn't find them) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9870>
This commit is contained in:
parent
115ba959dc
commit
99838513ae
@ -1812,7 +1812,11 @@ xsi:schemaLocation="http://nouveau.freedesktop.org/ rules-ng.xsd">
|
||||
<reg32 offset="0xe000" name="GRAS_CL_CNTL">
|
||||
<bitfield name="ZERO_GB_SCALE_Z" pos="6" type="boolean"/>
|
||||
</reg32>
|
||||
<reg32 offset="0xe001" name="UNKNOWN_E001"/> <!-- always 00000000? -->
|
||||
<bitset name="a5xx_gras_xs_cl_cntl" inline="yes">
|
||||
<bitfield name="CLIP_MASK" low="0" high="7"/>
|
||||
<bitfield name="CULL_MASK" low="8" high="15"/>
|
||||
</bitset>
|
||||
<reg32 offset="0xe001" name="GRAS_VS_CL_CNTL" type="a5xx_gras_xs_cl_cntl"/>
|
||||
<reg32 offset="0xe004" name="UNKNOWN_E004"/> <!-- always 00000000? -->
|
||||
<reg32 offset="0xe005" name="GRAS_CNTL">
|
||||
<!-- see also RB_RENDER_CONTROL0 -->
|
||||
@ -2279,7 +2283,16 @@ bit 7 for RECTLIST (clear) when z32s8 (used for clear of depth32? not set
|
||||
<reg32 offset="0" name="DISABLE"/>
|
||||
</array>
|
||||
<reg32 offset="0xe298" name="VPC_GS_SIV_CNTL"/>
|
||||
<reg32 offset="0xe29a" name="UNKNOWN_E29A"/>
|
||||
<reg32 offset="0xe29a" name="VPC_CLIP_CNTL">
|
||||
<bitfield name="CLIP_MASK" low="0" high="7" type="uint"/>
|
||||
<!-- there can be up to 8 total clip/cull distance outputs,
|
||||
but apparenly VPC can only deal with vec4, so when there are
|
||||
more than 4 outputs a second location needs to be programmed
|
||||
-->
|
||||
<bitfield name="CLIP_DIST_03_LOC" low="8" high="15" type="uint"/>
|
||||
<bitfield name="CLIP_DIST_47_LOC" low="16" high="23" type="uint"/>
|
||||
</reg32>
|
||||
|
||||
<reg32 offset="0xe29d" name="VPC_PACK">
|
||||
<bitfield name="NUMNONPOSVAR" low="0" high="7" type="uint"/>
|
||||
<!--
|
||||
@ -2374,7 +2387,9 @@ bit 7 for RECTLIST (clear) when z32s8 (used for clear of depth32? not set
|
||||
<bitfield name="POLYMODE_BACK_PTYPE" low="3" high="5" type="adreno_pa_su_sc_draw"/>
|
||||
<bitfield name="POLYMODE_ENABLE" pos="6" type="boolean"/>
|
||||
</reg32>
|
||||
<reg32 offset="0xe389" name="UNKNOWN_E389"/>
|
||||
<reg32 offset="0xe389" name="PC_CLIP_CNTL">
|
||||
<bitfield name="CLIP_MASK" low="0" high="7"/>
|
||||
</reg32>
|
||||
<reg32 offset="0xe38c" name="PC_RESTART_INDEX"/>
|
||||
<reg32 offset="0xe38d" name="PC_GS_LAYERED"/>
|
||||
<reg32 offset="0xe38e" name="PC_GS_PARAM">
|
||||
|
@ -86,7 +86,6 @@ fd5_draw_vbo(struct fd_context *ctx, const struct pipe_draw_info *info,
|
||||
.fs = ctx->prog.fs,
|
||||
.key = {
|
||||
.rasterflat = ctx->rasterizer->flatshade,
|
||||
.ucp_enables = ctx->rasterizer->clip_plane_enable,
|
||||
.has_per_samp = fd5_ctx->fastc_srgb || fd5_ctx->vastc_srgb,
|
||||
.vastc_srgb = fd5_ctx->vastc_srgb,
|
||||
.fastc_srgb = fd5_ctx->fastc_srgb,
|
||||
|
@ -1024,27 +1024,18 @@ t7 opcode: CP_WAIT_FOR_IDLE (26) (1 dwords)
|
||||
OUT_PKT4(ring, REG_A5XX_TPL1_TP_FS_ROTATION_CNTL, 1);
|
||||
OUT_RING(ring, 0x00000000); /* TPL1_TP_FS_ROTATION_CNTL */
|
||||
|
||||
OUT_PKT4(ring, REG_A5XX_UNKNOWN_E001, 1);
|
||||
OUT_RING(ring, 0x00000000); /* UNKNOWN_E001 */
|
||||
|
||||
OUT_PKT4(ring, REG_A5XX_UNKNOWN_E004, 1);
|
||||
OUT_RING(ring, 0x00000000); /* UNKNOWN_E004 */
|
||||
|
||||
OUT_PKT4(ring, REG_A5XX_GRAS_SU_LAYERED, 1);
|
||||
OUT_RING(ring, 0x00000000); /* GRAS_SU_LAYERED */
|
||||
|
||||
OUT_PKT4(ring, REG_A5XX_UNKNOWN_E29A, 1);
|
||||
OUT_RING(ring, 0x00ffff00); /* UNKNOWN_E29A */
|
||||
|
||||
OUT_PKT4(ring, REG_A5XX_VPC_SO_BUF_CNTL, 1);
|
||||
OUT_RING(ring, 0x00000000); /* VPC_SO_BUF_CNTL */
|
||||
|
||||
OUT_PKT4(ring, REG_A5XX_VPC_SO_BUFFER_OFFSET(0), 1);
|
||||
OUT_RING(ring, 0x00000000); /* UNKNOWN_E2AB */
|
||||
|
||||
OUT_PKT4(ring, REG_A5XX_UNKNOWN_E389, 1);
|
||||
OUT_RING(ring, 0x00000000); /* UNKNOWN_E389 */
|
||||
|
||||
OUT_PKT4(ring, REG_A5XX_PC_GS_LAYERED, 1);
|
||||
OUT_RING(ring, 0x00000000); /* PC_GS_LAYERED */
|
||||
|
||||
|
@ -240,7 +240,7 @@ fd5_program_emit(struct fd_context *ctx, struct fd_ringbuffer *ring,
|
||||
struct stage s[MAX_STAGES];
|
||||
uint32_t pos_regid, psize_regid, color_regid[8];
|
||||
uint32_t face_regid, coord_regid, zwcoord_regid, samp_id_regid, samp_mask_regid;
|
||||
uint32_t ij_regid[IJ_COUNT], vertex_regid, instance_regid;
|
||||
uint32_t ij_regid[IJ_COUNT], vertex_regid, instance_regid, clip0_regid, clip1_regid;
|
||||
enum a3xx_threadsize fssz;
|
||||
uint8_t psize_loc = ~0;
|
||||
int i, j;
|
||||
@ -248,11 +248,15 @@ fd5_program_emit(struct fd_context *ctx, struct fd_ringbuffer *ring,
|
||||
setup_stages(emit, s);
|
||||
|
||||
bool do_streamout = (s[VS].v->shader->stream_output.num_outputs > 0);
|
||||
uint8_t clip_mask = s[VS].v->clip_mask, cull_mask = s[VS].v->cull_mask;
|
||||
uint8_t clip_cull_mask = clip_mask | cull_mask;
|
||||
|
||||
fssz = (s[FS].i->double_threadsize) ? FOUR_QUADS : TWO_QUADS;
|
||||
|
||||
pos_regid = ir3_find_output_regid(s[VS].v, VARYING_SLOT_POS);
|
||||
psize_regid = ir3_find_output_regid(s[VS].v, VARYING_SLOT_PSIZ);
|
||||
clip0_regid = ir3_find_output_regid(s[VS].v, VARYING_SLOT_CLIP_DIST0);
|
||||
clip1_regid = ir3_find_output_regid(s[VS].v, VARYING_SLOT_CLIP_DIST1);
|
||||
vertex_regid = ir3_find_sysval_regid(s[VS].v, SYSTEM_VALUE_VERTEX_ID_ZERO_BASE);
|
||||
instance_regid = ir3_find_sysval_regid(s[VS].v, SYSTEM_VALUE_INSTANCE_ID);
|
||||
|
||||
@ -378,6 +382,9 @@ fd5_program_emit(struct fd_context *ctx, struct fd_ringbuffer *ring,
|
||||
struct ir3_shader_linkage l = {0};
|
||||
ir3_link_shaders(&l, s[VS].v, link_fs, true);
|
||||
|
||||
uint8_t clip0_loc = l.clip0_loc;
|
||||
uint8_t clip1_loc = l.clip1_loc;
|
||||
|
||||
OUT_PKT4(ring, REG_A5XX_VPC_VAR_DISABLE(0), 4);
|
||||
OUT_RING(ring, ~l.varmask[0]); /* VPC_VAR[0].DISABLE */
|
||||
OUT_RING(ring, ~l.varmask[1]); /* VPC_VAR[1].DISABLE */
|
||||
@ -396,6 +403,20 @@ fd5_program_emit(struct fd_context *ctx, struct fd_ringbuffer *ring,
|
||||
ir3_link_add(&l, psize_regid, 0x1, l.max_loc);
|
||||
}
|
||||
|
||||
/* Handle the case where clip/cull distances aren't read by the FS. Make
|
||||
* sure to avoid adding an output with an empty writemask if the user
|
||||
* disables all the clip distances in the API so that the slot is unused.
|
||||
*/
|
||||
if (clip0_loc == 0xff && clip0_regid != regid(63,0) && (clip_cull_mask & 0xf) != 0) {
|
||||
clip0_loc = l.max_loc;
|
||||
ir3_link_add(&l, clip0_regid, clip_cull_mask & 0xf, l.max_loc);
|
||||
}
|
||||
|
||||
if (clip1_loc == 0xff && clip1_regid != regid(63,0) && (clip_cull_mask >> 4) != 0) {
|
||||
clip1_loc = l.max_loc;
|
||||
ir3_link_add(&l, clip1_regid, clip_cull_mask >> 4, l.max_loc);
|
||||
}
|
||||
|
||||
/* If we have stream-out, we use the full shader for binning
|
||||
* pass, rather than the optimized binning pass one, so that we
|
||||
* have all the varying outputs available for xfb. So streamout
|
||||
@ -624,6 +645,18 @@ fd5_program_emit(struct fd_context *ctx, struct fd_ringbuffer *ring,
|
||||
OUT_RING(ring, vpsrepl[i]); /* VPC_VARYING_PS_REPL[i] */
|
||||
}
|
||||
|
||||
OUT_PKT4(ring, REG_A5XX_GRAS_VS_CL_CNTL, 1);
|
||||
OUT_RING(ring, A5XX_GRAS_VS_CL_CNTL_CLIP_MASK(clip_mask) |
|
||||
A5XX_GRAS_VS_CL_CNTL_CULL_MASK(cull_mask));
|
||||
|
||||
OUT_PKT4(ring, REG_A5XX_VPC_CLIP_CNTL, 1);
|
||||
OUT_RING(ring, A5XX_VPC_CLIP_CNTL_CLIP_MASK(clip_cull_mask) |
|
||||
A5XX_VPC_CLIP_CNTL_CLIP_DIST_03_LOC(clip0_loc) |
|
||||
A5XX_VPC_CLIP_CNTL_CLIP_DIST_47_LOC(clip1_loc));
|
||||
|
||||
OUT_PKT4(ring, REG_A5XX_PC_CLIP_CNTL, 1);
|
||||
OUT_RING(ring, A5XX_PC_CLIP_CNTL_CLIP_MASK(clip_mask));
|
||||
|
||||
if (!emit->binning_pass)
|
||||
if (s[FS].instrlen)
|
||||
fd5_emit_shader(ring, s[FS].v);
|
||||
|
@ -49,7 +49,6 @@ spec@!opengl 1.0@gl-1.0-no-op-paths,Fail
|
||||
spec@!opengl 1.0@gl-1.0-scissor-copypixels,Fail
|
||||
spec@!opengl 1.0@gl-1.0-scissor-offscreen,Fail
|
||||
spec@!opengl 1.0@gl-1.0-spot-light,Fail
|
||||
spec@!opengl 1.0@gl-1.0-user-clip-all-planes,Fail
|
||||
spec@!opengl 1.0@rasterpos,Crash
|
||||
spec@!opengl 1.1@copypixels-sync,Fail
|
||||
spec@!opengl 1.1@copyteximage 1d,Fail
|
||||
@ -191,7 +190,6 @@ spec@arb_transform_feedback3@gl_skipcomponents2,Fail
|
||||
spec@arb_transform_feedback3@gl_skipcomponents3,Fail
|
||||
spec@arb_transform_feedback3@gl_skipcomponents4,Fail
|
||||
spec@arb_transform_feedback_instanced@draw-auto instanced,Fail
|
||||
spec@arb_vertex_program@clip-plane-transformation arb,Fail
|
||||
spec@arb_vertex_type_2_10_10_10_rev@attrib-p-type-size-match,Fail
|
||||
spec@egl 1.4@egl-copy-buffers,Crash
|
||||
spec@egl 1.4@eglterminate then unbind context,Fail
|
||||
@ -309,10 +307,6 @@ spec@ext_transform_feedback@tessellation triangles flat_last,Fail
|
||||
spec@ext_transform_feedback@tessellation triangles monochrome,Fail
|
||||
spec@ext_transform_feedback@tessellation triangles smooth,Fail
|
||||
spec@ext_transform_feedback@tessellation triangles wireframe,Fail
|
||||
spec@glsl-1.10@execution@clipping@clip-plane-transformation clipvert_pos,Fail
|
||||
spec@glsl-1.10@execution@clipping@clip-plane-transformation fixed,Fail
|
||||
spec@glsl-1.10@execution@clipping@clip-plane-transformation pos_clipvert,Fail
|
||||
spec@glsl-1.30@execution@clipping@clip-plane-transformation pos,Fail
|
||||
spec@glsl-1.30@execution@texelfetch fs sampler3d 1x129x9-98x129x9,Fail
|
||||
spec@glsl-1.30@execution@texelfetch fs sampler3d 98x129x1-98x129x9,Fail
|
||||
spec@glsl-1.30@execution@texelfetch fs sampler3d 98x1x9-98x129x9,Fail
|
||||
@ -353,108 +347,11 @@ spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Crash
|
||||
wgl@wgl-multi-context-single-window,Fail
|
||||
wgl@wgl-multi-window-single-context,Fail
|
||||
wgl@wgl-sanity,Fail
|
||||
spec@glsl-1.10@execution@interpolation@interpolation-none-gl_backcolor-flat-vertex,Fail
|
||||
spec@glsl-1.10@execution@interpolation@interpolation-none-gl_backcolor-smooth-vertex,Fail
|
||||
spec@glsl-1.10@execution@interpolation@interpolation-none-gl_backsecondarycolor-flat-vertex,Fail
|
||||
spec@glsl-1.10@execution@interpolation@interpolation-none-gl_backsecondarycolor-smooth-vertex,Fail
|
||||
spec@glsl-1.10@execution@interpolation@interpolation-none-gl_frontcolor-flat-vertex,Fail
|
||||
spec@glsl-1.10@execution@interpolation@interpolation-none-gl_frontcolor-smooth-vertex,Fail
|
||||
spec@glsl-1.10@execution@interpolation@interpolation-none-gl_frontsecondarycolor-flat-vertex,Fail
|
||||
spec@glsl-1.10@execution@interpolation@interpolation-none-gl_frontsecondarycolor-smooth-vertex,Fail
|
||||
spec@glsl-1.10@execution@interpolation@interpolation-none-other-flat-vertex,Fail
|
||||
spec@glsl-1.10@execution@interpolation@interpolation-none-other-smooth-vertex,Fail
|
||||
spec@glsl-1.20@execution@clipping@fixed-clip-enables,Fail
|
||||
spec@glsl-1.20@execution@clipping@vs-clip-vertex-const-accept,Fail
|
||||
spec@glsl-1.20@execution@clipping@vs-clip-vertex-different-from-position,Fail
|
||||
spec@glsl-1.20@execution@clipping@vs-clip-vertex-enables,Fail
|
||||
spec@glsl-1.20@execution@clipping@vs-clip-vertex-equal-to-position,Fail
|
||||
spec@glsl-1.20@execution@clipping@vs-clip-vertex-homogeneity,Fail
|
||||
spec@glsl-1.20@execution@clipping@vs-clip-vertex-primitives,Fail
|
||||
spec@glsl-1.30@execution@clipping@fs-clip-distance-interpolated,Crash
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-based-on-position,Fail
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-based-on-position-homogeneity,Fail
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-distance-all-planes-enabled,Fail
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-distance-bulk-assign,Fail
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-distance-const-accept,Fail
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-distance-deadcode,Fail
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-distance-enables,Fail
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-distance-implicitly-sized,Fail
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-distance-in-param,Fail
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-distance-inout-param,Fail
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-distance-out-param,Fail
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-distance-primitives,Fail
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-distance-retval,Fail
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-distance-uint-index,Fail
|
||||
spec@glsl-1.30@execution@fs-large-local-array-vec2,Crash
|
||||
spec@glsl-1.30@execution@fs-large-local-array-vec3,Crash
|
||||
spec@glsl-1.30@execution@fs-large-local-array-vec4,Crash
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_backcolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_backcolor-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_backcolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_backcolor-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_backsecondarycolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_backsecondarycolor-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_backsecondarycolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_backsecondarycolor-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_frontcolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_frontcolor-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_frontcolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_frontcolor-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_frontsecondarycolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_frontsecondarycolor-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_frontsecondarycolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_frontsecondarycolor-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-other-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-other-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-other-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-flat-other-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-none-gl_backcolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-none-gl_backcolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-none-gl_backsecondarycolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-none-gl_backsecondarycolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-none-gl_frontcolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-none-gl_frontcolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-none-gl_frontsecondarycolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-none-gl_frontsecondarycolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-none-other-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-none-other-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_backcolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_backcolor-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_backcolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_backcolor-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_backsecondarycolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_backsecondarycolor-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_backsecondarycolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_backsecondarycolor-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_frontcolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_frontcolor-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_frontcolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_frontcolor-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_frontsecondarycolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_frontsecondarycolor-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_frontsecondarycolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_frontsecondarycolor-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-other-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-other-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-other-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-other-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_backcolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_backcolor-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_backcolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_backcolor-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_backsecondarycolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_backsecondarycolor-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_backsecondarycolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_backsecondarycolor-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_frontcolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_frontcolor-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_frontcolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_frontcolor-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_frontsecondarycolor-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_frontsecondarycolor-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_frontsecondarycolor-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_frontsecondarycolor-smooth-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-other-flat-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-other-flat-vertex,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-other-smooth-distance,Fail
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-smooth-other-smooth-vertex,Fail
|
||||
|
@ -413,16 +413,16 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
||||
* distances in the VS, and we don't support clip distances so that is
|
||||
* always shader-based lowering in the FS.
|
||||
*
|
||||
* On a4xx-a5xx, there is no HW support for clip planes, so they are
|
||||
* On a4xx, there is no HW support for clip planes, so they are
|
||||
* always lowered to clip distances. We also lack SW support for the
|
||||
* HW's clip distances in HW, so we do shader-based lowering in the FS
|
||||
* in the driver backend.
|
||||
*
|
||||
* On a6xx, we have the HW clip distances hooked up, so we just let
|
||||
* On a5xx-a6xx, we have the HW clip distances hooked up, so we just let
|
||||
* mesa/st lower desktop GL's clip planes to clip distances in the last
|
||||
* vertex shader stage.
|
||||
*/
|
||||
return !is_a6xx(screen);
|
||||
return !is_a5xx(screen) && !is_a6xx(screen);
|
||||
|
||||
/* Stream output. */
|
||||
case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS:
|
||||
|
Loading…
x
Reference in New Issue
Block a user