From f9e773b92059f4c13735fa3214d5c505f9e06d66 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 20 Jul 2020 13:45:09 +1000 Subject: [PATCH] llvmpipe: enable GL 4.5 This passes conformance on both the master and 4.6.0 (with patches) branches. I'll be submitting results shortly from the 20.2.x branch this lands in. Cc: "20.2" Reviewed-by: Roland Scheidegger Part-of: --- .gitlab-ci/piglit/glslparser.txt | 5 ++--- .gitlab-ci/piglit/quick_gl.txt | 13 ++++--------- .gitlab-ci/piglit/quick_shader.txt | 15 ++++----------- docs/features.txt | 30 +++++++++++++++--------------- docs/relnotes/new_features.txt | 1 + src/gallium/drivers/llvmpipe/lp_screen.c | 2 +- 6 files changed, 27 insertions(+), 39 deletions(-) diff --git a/.gitlab-ci/piglit/glslparser.txt b/.gitlab-ci/piglit/glslparser.txt index ceff608..785f9f1 100644 --- a/.gitlab-ci/piglit/glslparser.txt +++ b/.gitlab-ci/piglit/glslparser.txt @@ -2303,7 +2303,6 @@ spec/glsl-1.50/compiler/compatibility/gl_secondarycolor.vert: skip spec/glsl-1.50/compiler/compatibility/gl_textureenvcolor.frag: skip spec/glsl-1.50/compiler/compatibility/gl_texturematrix.frag: skip spec/glsl-1.50/compiler/compatibility/gl_vertex.vert: skip -spec/glsl-4.40/compiler/inout-parameter-qualifier.frag: skip spec/intel_conservative_rasterization/compiler/inner_coverage.gl.frag: skip spec/intel_conservative_rasterization/compiler/inner_coverage.gl.vert: skip spec/intel_conservative_rasterization/compiler/inner_coverage.gles.frag: skip @@ -2573,10 +2572,10 @@ spec/oes_texture_storage_multisample_2d_array/preprocessor/disabled-undefined-es summary: name: results ---- -------- - pass: 12263 + pass: 12264 fail: 2 crash: 4 - skip: 2566 + skip: 2565 timeout: 0 warn: 0 incomplete: 0 diff --git a/.gitlab-ci/piglit/quick_gl.txt b/.gitlab-ci/piglit/quick_gl.txt index b061a96..1e630e5 100644 --- a/.gitlab-ci/piglit/quick_gl.txt +++ b/.gitlab-ci/piglit/quick_gl.txt @@ -389,10 +389,6 @@ spec/!opengl 2.0/vertex-program-two-side/vs, tcs, tes and fs: skip spec/!opengl 3.1/draw-buffers-errors: skip spec/!opengl 3.2/gl-3.2-adj-prims pv-first: fail spec/!opengl 3.2/layered-rendering/clear-color-mismatched-layer-count: fail -spec/!opengl 4.2/gl-max-vertex-attrib-stride: skip -spec/!opengl 4.5/compare-framebuffer-parameter-with-get: skip -spec/!opengl 4.5/named-framebuffer-draw-buffers-errors: skip -spec/!opengl 4.5/named-framebuffer-read-buffer-errors: skip spec/!opengl es 2.0/invalid-es3-queries_gles2: skip spec/3dfx_texture_compression_fxt1/compressedteximage gl_compressed_rgb_fxt1_3dfx: skip spec/3dfx_texture_compression_fxt1/compressedteximage gl_compressed_rgba_fxt1_3dfx: skip @@ -490,7 +486,6 @@ spec/arb_geometry_shader4/arb_geometry_shader4-program-parameter-vertices-out ma spec/arb_geometry_shader4/arb_geometry_shader4-program-parameter-vertices-out tf 1: skip spec/arb_geometry_shader4/arb_geometry_shader4-program-parameter-vertices-out tf max: skip spec/arb_geometry_shader4/arb_geometry_shader4-vertices-in: skip -spec/arb_gpu_shader5/arb_gpu_shader5-xfb-streams-without-invocations: fail spec/arb_gpu_shader5/arb_gpu_shader5-xfb-streams-without-invocations spirv: skip spec/arb_gpu_shader_fp64/execution/arb_gpu_shader_fp64-dlist-uniforms: skip spec/arb_internalformat_query/minmax: skip @@ -1666,10 +1661,10 @@ wgl/wgl-sanity: skip summary: name: results ---- -------- - pass: 23031 - fail: 199 + pass: 23064 + fail: 198 crash: 0 - skip: 1442 + skip: 1438 timeout: 0 warn: 6 incomplete: 0 @@ -1678,4 +1673,4 @@ summary: changes: 0 fixes: 0 regressions: 0 - total: 24696 + total: 24724 diff --git a/.gitlab-ci/piglit/quick_shader.txt b/.gitlab-ci/piglit/quick_shader.txt index 80c3f2b..cfe6e67 100644 --- a/.gitlab-ci/piglit/quick_shader.txt +++ b/.gitlab-ci/piglit/quick_shader.txt @@ -1,4 +1,3 @@ -shaders/glsl-idiv-const-opt: skip spec/arb_bindless_texture/execution/images/basic-arithmetic-uvec2-imagestore: skip spec/arb_bindless_texture/execution/images/basic-imageatomicexchange: skip spec/arb_bindless_texture/execution/images/basic-imagestore: skip @@ -303,7 +302,6 @@ spec/arb_shader_ballot/execution/fs-readinvocation-uint: skip spec/arb_shader_ballot/execution/fs-readinvocation-uint-uniform: skip spec/arb_shader_clock/execution/clock: skip spec/arb_shader_clock/execution/clock2x32: skip -spec/arb_shader_image_load_store/execution/gl45-imageatomicexchange-float: skip spec/arb_shader_precision/fs-pow-float-float: fail spec/arb_shader_precision/fs-pow-vec2-vec2: fail spec/arb_shader_precision/fs-pow-vec3-vec3: fail @@ -506,12 +504,7 @@ spec/glsl-4.00/execution/inout/vs-out-fs-in-s2/3-double-float: crash spec/glsl-4.00/execution/inout/vs-out-fs-in-s2/3-dvec2-float: crash spec/glsl-4.00/execution/inout/vs-out-fs-in-s2/3-dvec3-float: crash spec/glsl-4.30/execution/built-in-functions/cs-pow-float-float: fail -spec/glsl-4.40/execution/fs-interpolateatcentroid-swizzle: skip -spec/glsl-4.40/execution/fs-interpolateatoffset-swizzle: skip -spec/glsl-4.40/execution/fs-interpolateatsample-swizzle: skip -spec/glsl-4.50/execution/glsl-mul-const: skip -spec/glsl-4.50/execution/helper-invocation: skip -spec/glsl-4.50/execution/ssbo-atomiccompswap-int: skip +spec/glsl-4.50/execution/ssbo-atomiccompswap-int: fail spec/intel_shader_atomic_float_minmax/execution/shared-atomiccompswap-float: skip spec/intel_shader_atomic_float_minmax/execution/shared-atomicexchange-float: skip spec/intel_shader_atomic_float_minmax/execution/shared-atomicmax-float: skip @@ -605,10 +598,10 @@ spec/nv_viewport_swizzle/viewport_swizzle: skip summary: name: results ---- -------- - pass: 15771 - fail: 103 + pass: 15778 + fail: 104 crash: 178 - skip: 323 + skip: 315 timeout: 0 warn: 0 incomplete: 0 diff --git a/docs/features.txt b/docs/features.txt index 4ce5b57..52a081d 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -192,12 +192,12 @@ GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, llvmpipe, virgl GL_ARB_vertex_attrib_binding DONE (all drivers) -GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi +GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, llvmpipe GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers) - GL_ARB_buffer_storage DONE (freedreno, i965, nv50, llvmpipe, swr, v3d) - GL_ARB_clear_texture DONE (i965, nv50, llvmpipe, softpipe, swr, virgl) - GL_ARB_enhanced_layouts DONE (i965, nv50, llvmpipe, softpipe, virgl) + GL_ARB_buffer_storage DONE (freedreno, i965, nv50, swr, v3d) + GL_ARB_clear_texture DONE (i965, nv50, softpipe, swr, virgl) + GL_ARB_enhanced_layouts DONE (i965, nv50, softpipe, virgl) - compile-time constant expressions DONE - explicit byte offsets for blocks DONE - forced alignment within blocks DONE @@ -205,22 +205,22 @@ GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi - specified transform/feedback layout DONE - input/output block locations DONE GL_ARB_multi_bind DONE (all drivers) - GL_ARB_query_buffer_object DONE (i965/hsw+, llvmpipe, virgl) - GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, llvmpipe, softpipe, swr, virgl, panfrost) - GL_ARB_texture_stencil8 DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr, virgl, v3d) - GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, llvmpipe, softpipe, swr, virgl, zink, panfrost) + GL_ARB_query_buffer_object DONE (i965/hsw+, virgl) + GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, softpipe, swr, virgl, panfrost) + GL_ARB_texture_stencil8 DONE (freedreno, i965/hsw+, nv50, softpipe, swr, virgl, v3d) + GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, softpipe, swr, virgl, zink, panfrost) -GL 4.5, GLSL 4.50 -- all DONE: nvc0, r600, radeonsi +GL 4.5, GLSL 4.50 -- all DONE: nvc0, r600, radeonsi, llvmpipe GL_ARB_ES3_1_compatibility DONE (i965/hsw+, softpipe, virgl) - GL_ARB_clip_control DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr, virgl) - GL_ARB_conditional_render_inverted DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr, virgl) - GL_ARB_cull_distance DONE (i965, nv50, llvmpipe, softpipe, swr, virgl) - GL_ARB_derivative_control DONE (i965, nv50, llvmpipe, softpipe, virgl) + GL_ARB_clip_control DONE (freedreno, i965, nv50, softpipe, swr, virgl) + GL_ARB_conditional_render_inverted DONE (freedreno, i965, nv50, softpipe, swr, virgl) + GL_ARB_cull_distance DONE (i965, nv50, softpipe, swr, virgl) + GL_ARB_derivative_control DONE (i965, nv50, softpipe, virgl) GL_ARB_direct_state_access DONE (all drivers) GL_ARB_get_texture_sub_image DONE (all drivers) - GL_ARB_shader_texture_image_samples DONE (i965, nv50, llvmpipe, virgl) - GL_ARB_texture_barrier DONE (freedreno, i965, nv50, llvmpipe, virgl) + GL_ARB_shader_texture_image_samples DONE (i965, nv50, virgl) + GL_ARB_texture_barrier DONE (freedreno, i965, nv50, virgl) GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful) GL_KHR_robustness DONE (freedreno, i965, virgl) GL_EXT_shader_integer_mix DONE (all drivers that support GLSL) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 6012d06..868da1d 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -1 +1,2 @@ +GL 4.5 on llvmpipe GL_NV_half_float diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index ac33b01..1db662b 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -204,7 +204,7 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param) return 1; case PIPE_CAP_GLSL_FEATURE_LEVEL: { struct llvmpipe_screen *lscreen = llvmpipe_screen(screen); - return lscreen->use_tgsi ? 330 : 430; + return lscreen->use_tgsi ? 330 : 450; } case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY: return 140; -- 2.7.4