• Show log

    Commit

  • Hash : 3036e090
    Author : Shahbaz Youssefi
    Date : 2021-07-29T15:55:39

    Vulkan: Direct SPIR-V Gen: Support the precise keyword
    
    The precise keyword is different in GLSL in that it defines what
    arithmetic operations _that have led to the value being assigned to a
    variable_ should be done precisely (i.e. not "contracted").
    
    A tree traverser is implemented that detects precise access chains and
    applies precise-ness to the right hand side of assignment expressions to
    said access chains.  This is only done if the shader uses the precise
    keyword in the first place.  The algorithm for this is inspired by the
    implementation in glslang.
    
    This change additionally:
    
    - Fixes parser to allow precise on function parameters
    - Fixes GLSL code generation to output precise on struct members and
      function parameters.
    
    Bug: angleproject:4889
    Change-Id: Ie3808c3c8c08da308e88af20f5f90379d9d14d47
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056369
    Reviewed-by: Tim Van Patten <timvp@google.com>
    Reviewed-by: Jamie Madill <jmadill@chromium.org>
    Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/angle.git
    Git SSH git@git.kmx.io:kc3-lang/angle.git
    Public access ? public
    Description

    A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.

    Homepage

    Github

    Users
    kc3_lang_org thodg_w www_kmx_io thodg_l thodg thodg_m
    Tags

  • README.md

  • dEQP Support

    ANGLE integrates dEQP (i.e. the OpenGL CTS) for conformance testing. It uses gtest to run tests, and provides the means for dEQP to use ANGLE.

    Overriding dEQP files

    Occasionally, ANGLE overrides certain dEQP files by copying them to this directory, adding the _override suffix, and modifying them. deqp.gni is used to select these override files to be built with dEQP instead of the original files.

    This is primarily done to fix tests until they are fixed upstream.

    Expectation files format

    For every set of dEQP tests, for example GLES3 tests on the Vulkan backend, an expectations file exists to let the test harness know which tests it should skip (as they are known to crash), or expect to see failed. Warnings are generated if a test unexpectedly passes, but an unexpected failure is an error. This let’s ANGLE ensure there are no regressions.

    While developing a feature, or testing on a new platform, the expectations files can be modified to reflect the reality of the situation. The expected format for every line in these files is:

    {BUG#} {MODIFIERS} : {TEST_NAME} = {PASS,FAIL,FLAKY,TIMEOUT,SKIP}

    MODIFIERS can be a combination of the below list, combined with a logical AND:

    WIN XP VISTA WIN7 WIN8 WIN10
    MAC LEOPARD SNOWLEOPARD LION MOUNTAINLION MAVERICKS YOSEMITE ELCAPITAN SIERRA HIGHSIERRA MOJAVE
    LINUX CHROMEOS ANDROID
    NVIDIA AMD INTEL
    DEBUG RELEASE
    D3D9 D3D11 OPENGL GLES VULKAN
    NEXUS5X PIXEL2ORXL
    QUADROP400
    SWIFTSHADER
    PREROTATION PREROTATION90 PREROTATION180 PREROTATION270
    SPIRVGEN

    TEST_NAME can be a specific test name, or set of test names using '*' as wildcard anywhere in the name. Examples:

    // Disabled everywhere as is too slow:
    3445 : dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.48 = SKIP
    
    // Crashes on both D3D11 and OPENGL:
    1442 OPENGL : dEQP-GLES31.functional.separate_shader.* = SKIP
    1442 D3D11 : dEQP-GLES31.functional.separate_shader.* = SKIP
    
    // Unsupported feature:
    3726 VULKAN ANDROID : dEQP-GLES31.functional.synchronization.inter_call.without_memory_barrier.*atomic_counter* = FAIL
    
    // Failing test in Nvidia's OpenGL implementation on windows:
    1665 WIN NVIDIA OPENGL : dEQP-GLES31.functional.draw_indirect.negative.command_offset_not_in_buffer_unsigned32_wrap = FAIL
    
    // Failing when emulated pre-rotation is enabled, no matter which angle:
    1234 PREROTATION : dEQP-GLES3.*blit* = FAIL
    
    // Failing when emulated pre-rotation is enabled with 270 degree angle:
    1234 PREROTATION270 : dEQP-GLES3.*blit* = FAIL
    
    // Crashing when generating SPIR-V directly from the translator
    1234 SPIRVGEN : dEQP.GLES2/functional_shaders_texture_functions_vertex_texture2dprojlod_vec4 = SKIP