mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
asahi: Advertise GL 3.1
We now have support for baseline MSAA, except for support for eMRT. But hey, this gets us 99% of the way there, so it's worth flipping on at least in agx/next. We can also advertise dual-source blending again. It was reverted since Chromium freaks out with dual-source blending on a GL 2.1 driver, but since we're advertising GL 3.1 now, it's ok. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23480>
This commit is contained in:
parent
8d019125a0
commit
be5004691c
4 changed files with 34 additions and 32 deletions
|
|
@ -36,35 +36,35 @@ context as extensions.
|
|||
Feature Status
|
||||
------------------------------------------------------- ------------------------
|
||||
|
||||
GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12, panfrost
|
||||
GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12, panfrost, asahi
|
||||
|
||||
glBindFragDataLocation, glGetFragDataLocation DONE
|
||||
GL_NV_conditional_render (Conditional rendering) DONE (asahi, v3d)
|
||||
GL_ARB_map_buffer_range (Map buffer subranges) DONE (v3d, vc4, lima, asahi)
|
||||
GL_ARB_color_buffer_float (Clamping controls) DONE (v3d, vc4, lima, asahi)
|
||||
GL_ARB_texture_float (Float textures, renderbuffers) DONE (v3d, asahi)
|
||||
GL_EXT_packed_float DONE (v3d, asahi)
|
||||
GL_EXT_texture_shared_exponent DONE (v3d, asahi)
|
||||
GL_ARB_depth_buffer_float (Float depth buffers) DONE (v3d, asahi)
|
||||
GL_ARB_framebuffer_object (Framebuffer objects) DONE (v3d, vc4, asahi)
|
||||
GL_NV_conditional_render (Conditional rendering) DONE (v3d)
|
||||
GL_ARB_map_buffer_range (Map buffer subranges) DONE (v3d, vc4, lima)
|
||||
GL_ARB_color_buffer_float (Clamping controls) DONE (v3d, vc4, lima)
|
||||
GL_ARB_texture_float (Float textures, renderbuffers) DONE (v3d)
|
||||
GL_EXT_packed_float DONE (v3d)
|
||||
GL_EXT_texture_shared_exponent DONE (v3d)
|
||||
GL_ARB_depth_buffer_float (Float depth buffers) DONE (v3d)
|
||||
GL_ARB_framebuffer_object (Framebuffer objects) DONE (v3d, vc4)
|
||||
GL_ARB_half_float_pixel DONE (all drivers)
|
||||
GL_ARB_half_float_vertex DONE (v3d, vc4, lima, asahi)
|
||||
GL_EXT_texture_integer DONE (v3d, asahi)
|
||||
GL_EXT_texture_array DONE (v3d, asahi)
|
||||
GL_EXT_draw_buffers2 (Per-buffer blend and masks) DONE (v3d, asahi)
|
||||
GL_ARB_half_float_vertex DONE (v3d, vc4, lima)
|
||||
GL_EXT_texture_integer DONE (v3d)
|
||||
GL_EXT_texture_array DONE (v3d)
|
||||
GL_EXT_draw_buffers2 (Per-buffer blend and masks) DONE (v3d)
|
||||
GL_EXT_texture_compression_rgtc DONE (all drivers that support GL_EXT_texture_snorm)
|
||||
GL_ARB_texture_rg DONE (v3d, lima, asahi)
|
||||
GL_EXT_transform_feedback (Transform feedback) DONE (v3d, asahi)
|
||||
GL_ARB_vertex_array_object (Vertex array objects) DONE (v3d, vc4, lima, asahi)
|
||||
GL_EXT_framebuffer_sRGB (sRGB framebuffer format) DONE (v3d, vc4, lima, asahi)
|
||||
GL_ARB_texture_rg DONE (v3d, lima)
|
||||
GL_EXT_transform_feedback (Transform feedback) DONE (v3d)
|
||||
GL_ARB_vertex_array_object (Vertex array objects) DONE (v3d, vc4, lima)
|
||||
GL_EXT_framebuffer_sRGB (sRGB framebuffer format) DONE (v3d, vc4, lima)
|
||||
glClearBuffer commands DONE
|
||||
glGetStringi command DONE
|
||||
glTexParameterI, glGetTexParameterI commands DONE
|
||||
glVertexAttribI commands DONE
|
||||
Depth format cube textures DONE (asahi)
|
||||
GLX_ARB_create_context (GLX 1.4 is required) DONE (v3d, vc4, asahi)
|
||||
Depth format cube textures DONE ()
|
||||
GLX_ARB_create_context (GLX 1.4 is required) DONE (v3d, vc4)
|
||||
Multisample anti-aliasing DONE (freedreno/a5xx+, freedreno (*), llvmpipe (*), softpipe (*)))
|
||||
8 draw buffers DONE (panfrost/t760+, asahi)
|
||||
8 draw buffers DONE (panfrost/t760+)
|
||||
|
||||
(*) freedreno (a2xx-a4xx), llvmpipe, and softpipe have fake Multisample anti-aliasing support
|
||||
|
||||
|
|
@ -91,7 +91,7 @@ GL 3.2, GLSL 1.50 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llv
|
|||
GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (v3d, vc4, panfrost, lima, asahi)
|
||||
GL_ARB_provoking_vertex (Provoking vertex) DONE (v3d, vc4, panfrost, lima, asahi)
|
||||
GL_ARB_seamless_cube_map (Seamless cubemaps) DONE (panfrost, asahi)
|
||||
GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx+, v3d, vc4, panfrost)
|
||||
GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx+, v3d, vc4, panfrost, asahi)
|
||||
GL_ARB_depth_clamp (Frag depth clamp) DONE (panfrost, asahi)
|
||||
GL_ARB_sync (Fence objects) DONE (v3d, vc4, panfrost, lima, asahi)
|
||||
GLX_ARB_create_context_profile DONE
|
||||
|
|
@ -99,7 +99,7 @@ GL 3.2, GLSL 1.50 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llv
|
|||
|
||||
GL 3.3, GLSL 3.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12
|
||||
|
||||
GL_ARB_blend_func_extended DONE (freedreno/a3xx, freedreno/a6xx, panfrost, lima)
|
||||
GL_ARB_blend_func_extended DONE (freedreno/a3xx, freedreno/a6xx, panfrost, lima, asahi)
|
||||
GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_occlusion_query2 DONE (v3d, panfrost, asahi)
|
||||
GL_ARB_sampler_objects DONE (all drivers)
|
||||
|
|
@ -324,7 +324,7 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
|||
GL_EXT_memory_object DONE (freedreno, radeonsi, i965/gen7+, llvmpipe, zink, d3d12)
|
||||
GL_EXT_memory_object_fd DONE (freedreno, radeonsi, i965/gen7+, llvmpipe, zink)
|
||||
GL_EXT_memory_object_win32 DONE (zink, d3d12)
|
||||
GL_EXT_multisampled_render_to_texture DONE (freedreno/a6xx, panfrost, zink, lima)
|
||||
GL_EXT_multisampled_render_to_texture DONE (freedreno/a6xx, panfrost, zink, lima, asahi)
|
||||
GL_EXT_render_snorm DONE (freedreno/a6xx, i965, r600, radeonsi, softpipe, zink, panfrost/bifrost+)
|
||||
GL_EXT_semaphore DONE (radeonsi, i965/gen7+, zink, d3d12)
|
||||
GL_EXT_semaphore_fd DONE (radeonsi, i965/gen7+, zink)
|
||||
|
|
|
|||
|
|
@ -2,3 +2,5 @@ VK_EXT_attachment_feedback_loop_dynamic_state on RADV
|
|||
extendedDynamicState3SampleLocationsEnable on RADV
|
||||
VK_EXT_dynamic_rendering_unused_attachments on RADV
|
||||
VK_EXT_mesh_shader on lavapipe
|
||||
OpenGL 3.1 on Asahi
|
||||
OpenGL ES 3.0 on Asahi
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ tib_filter(const nir_instr *instr, UNUSED const void *_)
|
|||
return false;
|
||||
|
||||
nir_io_semantics sem = nir_intrinsic_io_semantics(intr);
|
||||
assert(sem.dual_source_blend_index == 0 && "todo: dual source blending");
|
||||
assert(sem.dual_source_blend_index == 0 && "dual source blending lowered");
|
||||
return (sem.location >= FRAG_RESULT_DATA0);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1470,9 +1470,8 @@ agx_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
case PIPE_CAP_FBFETCH:
|
||||
case PIPE_CAP_FBFETCH_COHERENT:
|
||||
return 8;
|
||||
|
||||
case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:
|
||||
return 0;
|
||||
return 1;
|
||||
|
||||
case PIPE_CAP_OCCLUSION_QUERY:
|
||||
case PIPE_CAP_GENERATE_MIPMAP:
|
||||
|
|
@ -1508,7 +1507,11 @@ agx_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
|
||||
case PIPE_CAP_TEXTURE_MULTISAMPLE:
|
||||
case PIPE_CAP_SURFACE_SAMPLE_COUNT:
|
||||
return 1;
|
||||
case PIPE_CAP_SAMPLE_SHADING:
|
||||
/* TODO: sample shading */
|
||||
return 0;
|
||||
|
||||
case PIPE_CAP_IMAGE_LOAD_FORMATTED:
|
||||
case PIPE_CAP_IMAGE_STORE_FORMATTED:
|
||||
case PIPE_CAP_COMPUTE:
|
||||
|
|
@ -1534,9 +1537,9 @@ agx_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return is_deqp ? 330 : 130;
|
||||
return is_deqp ? 330 : 140;
|
||||
case PIPE_CAP_ESSL_FEATURE_LEVEL:
|
||||
return is_deqp ? 320 : 120;
|
||||
return is_deqp ? 310 : 300;
|
||||
|
||||
case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
|
||||
return 16;
|
||||
|
|
@ -1851,10 +1854,7 @@ agx_is_format_supported(struct pipe_screen *pscreen, enum pipe_format format,
|
|||
target == PIPE_TEXTURE_3D || target == PIPE_TEXTURE_CUBE ||
|
||||
target == PIPE_TEXTURE_CUBE_ARRAY);
|
||||
|
||||
bool is_deqp = agx_device(pscreen)->debug & AGX_DBG_DEQP;
|
||||
|
||||
if (sample_count > 1 &&
|
||||
(!is_deqp || (sample_count != 4 && sample_count != 2)))
|
||||
if (sample_count > 1 && sample_count != 4 && sample_count != 2)
|
||||
return false;
|
||||
|
||||
if (MAX2(sample_count, 1) != MAX2(storage_sample_count, 1))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue