llvmpipe: enable GL 4.2
authorDave Airlie <airlied@redhat.com>
Mon, 6 Jul 2020 03:07:20 +0000 (13:07 +1000)
committerDave Airlie <airlied@redhat.com>
Mon, 6 Jul 2020 03:48:55 +0000 (13:48 +1000)
mostly just docs patch, features were all complete already

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5724>

.gitlab-ci/deqp-virgl-gl-fails.txt
.gitlab-ci/piglit/glslparser.txt
.gitlab-ci/piglit/quick_gl.txt
.gitlab-ci/piglit/quick_shader.txt
docs/features.txt
docs/relnotes/new_features.txt
src/gallium/drivers/llvmpipe/lp_screen.c

index e0c2e258f4bdeef57a203d745624dfe959b4f014..cdd40c28a30b1b4050c6fbc26ab6faf37c2c45b4 100644 (file)
@@ -4785,7 +4785,6 @@ KHR-GL30.transform_feedback.draw_xfb_stream_instanced_test
 KHR-GL30.transform_feedback.get_xfb_varying
 KHR-GL30.transform_feedback.query_vertex_interleaved_test
 KHR-GL30.transform_feedback.query_vertex_separate_test
 KHR-GL30.transform_feedback.get_xfb_varying
 KHR-GL30.transform_feedback.query_vertex_interleaved_test
 KHR-GL30.transform_feedback.query_vertex_separate_test
-KHR-GL31.CommonBugs.CommonBug_ParenthesisInLayoutQualifierIntegerValue
 KHR-GL31.transform_feedback.capture_vertex_interleaved_test
 KHR-GL31.transform_feedback.capture_vertex_separate_test
 KHR-GL31.transform_feedback.discard_vertex_test
 KHR-GL31.transform_feedback.capture_vertex_interleaved_test
 KHR-GL31.transform_feedback.capture_vertex_separate_test
 KHR-GL31.transform_feedback.discard_vertex_test
@@ -4794,7 +4793,6 @@ KHR-GL31.transform_feedback.draw_xfb_stream_test
 KHR-GL31.transform_feedback.draw_xfb_stream_instanced_test
 KHR-GL31.transform_feedback.query_vertex_interleaved_test
 KHR-GL31.transform_feedback.query_vertex_separate_test
 KHR-GL31.transform_feedback.draw_xfb_stream_instanced_test
 KHR-GL31.transform_feedback.query_vertex_interleaved_test
 KHR-GL31.transform_feedback.query_vertex_separate_test
-KHR-GL32.CommonBugs.CommonBug_ParenthesisInLayoutQualifierIntegerValue
 KHR-GL32.transform_feedback.capture_vertex_interleaved_test
 KHR-GL32.transform_feedback.capture_vertex_separate_test
 KHR-GL32.transform_feedback.discard_vertex_test
 KHR-GL32.transform_feedback.capture_vertex_interleaved_test
 KHR-GL32.transform_feedback.capture_vertex_separate_test
 KHR-GL32.transform_feedback.discard_vertex_test
index a0da47ef1140c9aa9569bd863c4babc86988ee9d..207f17f49d25f8da5032429dde22be84d7071d94 100644 (file)
@@ -208,7 +208,6 @@ spec/amd_vertex_shader_viewport_index/preprocessor/disabled-undefined-core.tese:
 spec/amd_vertex_shader_viewport_index/preprocessor/disabled-undefined-core.vert: skip
 spec/amd_vertex_shader_viewport_index/preprocessor/enabled-compat.frag: skip
 spec/amd_vertex_shader_viewport_index/preprocessor/enabled-compat.vert: skip
 spec/amd_vertex_shader_viewport_index/preprocessor/disabled-undefined-core.vert: skip
 spec/amd_vertex_shader_viewport_index/preprocessor/enabled-compat.frag: skip
 spec/amd_vertex_shader_viewport_index/preprocessor/enabled-compat.vert: skip
-spec/arb_arrays_of_arrays/compiler/glsl-4.20-basic-types.frag: skip
 spec/arb_arrays_of_arrays/preprocessor/disabled-defined-compat.frag: skip
 spec/arb_arrays_of_arrays/preprocessor/disabled-defined-compat.vert: skip
 spec/arb_arrays_of_arrays/preprocessor/disabled-defined-core.comp: skip
 spec/arb_arrays_of_arrays/preprocessor/disabled-defined-compat.frag: skip
 spec/arb_arrays_of_arrays/preprocessor/disabled-defined-compat.vert: skip
 spec/arb_arrays_of_arrays/preprocessor/disabled-defined-core.comp: skip
@@ -287,14 +286,6 @@ spec/arb_bindless_texture/compiler/samplers/return-struct.frag: skip
 spec/arb_bindless_texture/compiler/samplers/struct-inside-uniform-block.frag: skip
 spec/arb_bindless_texture/compiler/samplers/temporary.vert: skip
 spec/arb_bindless_texture/compiler/samplers/uniform-block-initializer.frag: skip
 spec/arb_bindless_texture/compiler/samplers/struct-inside-uniform-block.frag: skip
 spec/arb_bindless_texture/compiler/samplers/temporary.vert: skip
 spec/arb_bindless_texture/compiler/samplers/uniform-block-initializer.frag: skip
-spec/arb_compute_shader/compiler/barrier.comp: skip
-spec/arb_compute_shader/compiler/groupmemorybarrier.comp: skip
-spec/arb_compute_shader/compiler/memorybarrieratomiccounter.comp: skip
-spec/arb_compute_shader/compiler/memorybarrierbuffer.comp: skip
-spec/arb_compute_shader/compiler/memorybarrierimage.comp: skip
-spec/arb_compute_shader/compiler/memorybarriershared.comp: skip
-spec/arb_compute_shader/compiler/shared-atomics.comp: skip
-spec/arb_compute_shader/compiler/shared-variables.comp: skip
 spec/arb_compute_shader/preprocessor/disabled-defined-compat.frag: skip
 spec/arb_compute_shader/preprocessor/disabled-defined-compat.vert: skip
 spec/arb_compute_shader/preprocessor/disabled-defined-core.comp: skip
 spec/arb_compute_shader/preprocessor/disabled-defined-compat.frag: skip
 spec/arb_compute_shader/preprocessor/disabled-defined-compat.vert: skip
 spec/arb_compute_shader/preprocessor/disabled-defined-core.comp: skip
@@ -2673,10 +2664,10 @@ spec/oes_texture_storage_multisample_2d_array/preprocessor/disabled-undefined-es
 summary:
        name:  results
        ----  --------
 summary:
        name:  results
        ----  --------
-       pass:    12160
+       pass:    12169
        fail:        2
       crash:        4
        fail:        2
       crash:        4
-       skip:     2666
+       skip:     2657
     timeout:        0
        warn:        0
  incomplete:        0
     timeout:        0
        warn:        0
  incomplete:        0
index 9999e272062c0a8e8580087c253f55503607b88d..f32f316faa8239d08d2e284cd4b755e95dfb782e 100644 (file)
@@ -391,9 +391,6 @@ 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 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.2/required-renderbuffer-attachment-formats: skip
-spec/!opengl 4.2/required-sized-texture-formats: skip
-spec/!opengl 4.2/required-texture-attachment-formats: skip
 spec/!opengl 4.3/get_glsl_version: skip
 spec/!opengl 4.5/compare-framebuffer-parameter-with-get: skip
 spec/!opengl 4.5/named-framebuffer-draw-buffers-errors: skip
 spec/!opengl 4.3/get_glsl_version: skip
 spec/!opengl 4.5/compare-framebuffer-parameter-with-get: skip
 spec/!opengl 4.5/named-framebuffer-draw-buffers-errors: skip
@@ -1688,10 +1685,10 @@ wgl/wgl-sanity: skip
 summary:
        name:  results
        ----  --------
 summary:
        name:  results
        ----  --------
-       pass:    21839
+       pass:    21840
        fail:      215
       crash:        0
        fail:      215
       crash:        0
-       skip:     1448
+       skip:     1445
     timeout:        0
        warn:        6
  incomplete:        0
     timeout:        0
        warn:        6
  incomplete:        0
index 98c493df0199bf86daf682a63a08f024f124f0c1..7cad8a946c383d74f9be3c8ba89944c35e9d0ff1 100644 (file)
@@ -743,84 +743,6 @@ spec/glsl-4.00/execution/inout/vs-out-fs-in-s2/2/2-vec3-double: crash
 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.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.20/execution/conversion/frag-conversion-explicit-dmat2-mat2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-explicit-dmat2x3-mat2x3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-explicit-dmat2x4-mat2x4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-explicit-dmat3-mat3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-explicit-dmat3x2-mat3x2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-explicit-dmat3x4-mat3x4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-explicit-dmat4-mat4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-explicit-dmat4x2-mat4x2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-explicit-dmat4x3-mat4x3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-explicit-double-float-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-explicit-dvec2-vec2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-explicit-dvec3-vec3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-explicit-dvec4-vec4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-implicit-float-double-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-implicit-mat2-dmat2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-implicit-mat2x3-dmat2x3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-implicit-mat2x4-dmat2x4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-implicit-mat3-dmat3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-implicit-mat3x2-dmat3x2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-implicit-mat3x4-dmat3x4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-implicit-mat4-dmat4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-implicit-mat4x2-dmat4x2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-implicit-mat4x3-dmat4x3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-implicit-vec2-dvec2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-implicit-vec3-dvec3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/frag-conversion-implicit-vec4-dvec4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-explicit-dmat2-mat2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-explicit-dmat2x3-mat2x3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-explicit-dmat2x4-mat2x4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-explicit-dmat3-mat3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-explicit-dmat3x2-mat3x2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-explicit-dmat3x4-mat3x4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-explicit-dmat4-mat4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-explicit-dmat4x2-mat4x2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-explicit-dmat4x3-mat4x3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-explicit-double-float-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-explicit-dvec2-vec2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-explicit-dvec3-vec3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-explicit-dvec4-vec4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-implicit-float-double-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-implicit-mat2-dmat2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-implicit-mat2x3-dmat2x3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-implicit-mat2x4-dmat2x4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-implicit-mat3-dmat3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-implicit-mat3x2-dmat3x2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-implicit-mat3x4-dmat3x4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-implicit-mat4-dmat4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-implicit-mat4x2-dmat4x2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-implicit-mat4x3-dmat4x3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-implicit-vec2-dvec2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-implicit-vec3-dvec3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/geom-conversion-implicit-vec4-dvec4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-explicit-dmat2-mat2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-explicit-dmat2x3-mat2x3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-explicit-dmat2x4-mat2x4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-explicit-dmat3-mat3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-explicit-dmat3x2-mat3x2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-explicit-dmat3x4-mat3x4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-explicit-dmat4-mat4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-explicit-dmat4x2-mat4x2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-explicit-dmat4x3-mat4x3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-explicit-double-float-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-explicit-dvec2-vec2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-explicit-dvec3-vec3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-explicit-dvec4-vec4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-implicit-float-double-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-implicit-mat2-dmat2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-implicit-mat2x3-dmat2x3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-implicit-mat2x4-dmat2x4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-implicit-mat3-dmat3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-implicit-mat3x2-dmat3x2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-implicit-mat3x4-dmat3x4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-implicit-mat4-dmat4-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-implicit-mat4x2-dmat4x2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-implicit-mat4x3-dmat4x3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-implicit-vec2-dvec2-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-implicit-vec3-dvec3-zero-sign: skip
-spec/glsl-4.20/execution/conversion/vert-conversion-implicit-vec4-dvec4-zero-sign: skip
 spec/glsl-4.30/execution/built-in-functions/cs-abs-float: skip
 spec/glsl-4.30/execution/built-in-functions/cs-abs-int: skip
 spec/glsl-4.30/execution/built-in-functions/cs-abs-ivec2: skip
 spec/glsl-4.30/execution/built-in-functions/cs-abs-float: skip
 spec/glsl-4.30/execution/built-in-functions/cs-abs-int: skip
 spec/glsl-4.30/execution/built-in-functions/cs-abs-ivec2: skip
@@ -2400,10 +2322,10 @@ spec/nv_viewport_swizzle/viewport_swizzle: skip
 summary:
        name:  results
        ----  --------
 summary:
        name:  results
        ----  --------
-       pass:    13969
+       pass:    14047
        fail:      102
       crash:      178
        fail:      102
       crash:      178
-       skip:     2119
+       skip:     2041
     timeout:        0
        warn:        0
  incomplete:        0
     timeout:        0
        warn:        0
  incomplete:        0
index a9bfafe69bbe5c0194118b2b823f85d8e7c744e8..284689a0bfc3ac841c9f7bd4d868fb6bdeaf1f95 100644 (file)
@@ -150,19 +150,19 @@ GL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virg
   GL_ARB_viewport_array                                 DONE (i965, nv50, softpipe, swr, zink)
 
 
   GL_ARB_viewport_array                                 DONE (i965, nv50, softpipe, swr, zink)
 
 
-GL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
+GL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl
 
 
-  GL_ARB_texture_compression_bptc                       DONE (freedreno, i965, llvmpipe, softpipe, swr, zink)
+  GL_ARB_texture_compression_bptc                       DONE (freedreno, i965, softpipe, swr, zink)
   GL_ARB_compressed_texture_pixel_storage               DONE (all drivers)
   GL_ARB_compressed_texture_pixel_storage               DONE (all drivers)
-  GL_ARB_shader_atomic_counters                         DONE (freedreno/a5xx+, i965, llvmpipe, softpipe, v3d)
+  GL_ARB_shader_atomic_counters                         DONE (freedreno/a5xx+, i965, softpipe, v3d)
   GL_ARB_texture_storage                                DONE (all drivers)
   GL_ARB_texture_storage                                DONE (all drivers)
-  GL_ARB_transform_feedback_instanced                   DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr, v3d)
-  GL_ARB_base_instance                                  DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr, v3d)
-  GL_ARB_shader_image_load_store                        DONE (freedreno/a5xx+, i965, llvmpipe, softpipe, v3d)
+  GL_ARB_transform_feedback_instanced                   DONE (freedreno, i965, nv50, softpipe, swr, v3d)
+  GL_ARB_base_instance                                  DONE (freedreno, i965, nv50, softpipe, swr, v3d)
+  GL_ARB_shader_image_load_store                        DONE (freedreno/a5xx+, i965, softpipe, v3d)
   GL_ARB_conservative_depth                             DONE (all drivers that support GLSL 1.30)
   GL_ARB_shading_language_420pack                       DONE (all drivers that support GLSL 1.30)
   GL_ARB_shading_language_packing                       DONE (all drivers)
   GL_ARB_conservative_depth                             DONE (all drivers that support GLSL 1.30)
   GL_ARB_shading_language_420pack                       DONE (all drivers that support GLSL 1.30)
   GL_ARB_shading_language_packing                       DONE (all drivers)
-  GL_ARB_internalformat_query                           DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr, v3d, zink)
+  GL_ARB_internalformat_query                           DONE (freedreno, i965, nv50, softpipe, swr, v3d, zink)
   GL_ARB_map_buffer_alignment                           DONE (all drivers)
 
 
   GL_ARB_map_buffer_alignment                           DONE (all drivers)
 
 
index a9763ca04f5859855637015d8029417dd468af80..f5d4b29a058fdfdf87ced8c641650b00daaa6a04 100644 (file)
@@ -1,6 +1,6 @@
 GL_ARB_compute_variable_group_size on Iris.
 GL_ARB_gpu_shader5 on llvmpipe
 GL_ARB_compute_variable_group_size on Iris.
 GL_ARB_gpu_shader5 on llvmpipe
-GL 4.1 on llvmpipe
+GL 4.2 on llvmpipe
 GL_EXT_shader_group_vote on GLES3.
 VK_AMD_texture_gather_bias_lod on RADV.
 VK_AMD_gpu_shader_half_float on RADV/ACO.
 GL_EXT_shader_group_vote on GLES3.
 VK_AMD_texture_gather_bias_lod on RADV.
 VK_AMD_gpu_shader_half_float on RADV/ACO.
index a20da723bd92ec4f507f90ba82e283806c909772..3cb653707d05979db4b285a70a031b72eaa66ad7 100644 (file)
@@ -220,7 +220,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 1;
    case PIPE_CAP_GLSL_FEATURE_LEVEL: {
       struct llvmpipe_screen *lscreen = llvmpipe_screen(screen);
-      return lscreen->use_tgsi ? 330 : 410;
+      return lscreen->use_tgsi ? 330 : 420;
    }
    case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
       return 140;
    }
    case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
       return 140;