diff --git a/docs/features.txt b/docs/features.txt index 7ee0ed5e831..5bb41188ed0 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -108,7 +108,7 @@ GL 3.3, GLSL 3.30 --- all DONE: freedreno, nv50, nvc0, r600, radeonsi, llvmpipe, GL_ARB_texture_swizzle DONE (v3d, vc4, panfrost, lima, etnaviv/HALTI0) GL_ARB_timer_query DONE (panfrost, v3d) GL_ARB_instanced_arrays DONE (etnaviv/HALTI2, v3d, panfrost) - GL_ARB_vertex_type_2_10_10_10_rev DONE (v3d, panfrost) + GL_ARB_vertex_type_2_10_10_10_rev DONE (v3d, panfrost, etnaviv/HALTI2) GL 4.0, GLSL 4.00 --- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7+, asahi diff --git a/src/gallium/drivers/etnaviv/etnaviv_format.c b/src/gallium/drivers/etnaviv/etnaviv_format.c index 521b4cd60aa..20bce94d70b 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_format.c +++ b/src/gallium/drivers/etnaviv/etnaviv_format.c @@ -168,6 +168,11 @@ static struct etna_format formats[PIPE_FORMAT_COUNT] = { V_(R10G10B10A2_USCALED, UNSIGNED_INT_2_10_10_10_REV, NONE), V_(R10G10B10A2_SSCALED, INT_2_10_10_10_REV, NONE), + V_(B10G10R10A2_UNORM, UNSIGNED_INT_10_10_10_2, NONE), + V_(B10G10R10A2_SNORM, INT_10_10_10_2, NONE), + V_(B10G10R10A2_USCALED, UNSIGNED_INT_10_10_10_2, NONE), + V_(B10G10R10A2_SSCALED, INT_10_10_10_2, NONE), + _T(X8Z24_UNORM, D24X8, NONE), _T(S8_UINT_Z24_UNORM, D24X8, NONE), diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c index f4043367e33..456a2d3e8e7 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c @@ -505,6 +505,17 @@ gpu_supports_vertex_format(struct etna_screen *screen, enum pipe_format format) if (util_format_is_pure_integer(format)) return VIV_FEATURE(screen, ETNA_FEATURE_HALTI2); + /* ARB_vertex_type_2_10_10_10_rev */ + if (format == PIPE_FORMAT_R10G10B10A2_UNORM || + format == PIPE_FORMAT_B10G10R10A2_UNORM || + format == PIPE_FORMAT_R10G10B10A2_SNORM || + format == PIPE_FORMAT_B10G10R10A2_SNORM || + format == PIPE_FORMAT_R10G10B10A2_USCALED || + format == PIPE_FORMAT_B10G10R10A2_USCALED || + format == PIPE_FORMAT_R10G10B10A2_SSCALED || + format == PIPE_FORMAT_B10G10R10A2_SSCALED) + return VIV_FEATURE(screen, ETNA_FEATURE_HALTI2); + return true; }