Hash :
6d9f0aee
        
        Author :
  
        
        Date :
2023-11-30T00:00:00
        
      
Metal: Ensure helper invocations when derivatives are used
Set sample coverage mask to ensure that
fragment shader helper invocations are
performed when derivatives are used.
Fixed the following tests on Apple silicon:
dEQP-GLES2.functional.texture.mipmap
    .2d.projected.nearest_linear_repeat
    .2d.projected.linear_linear_repeat
    .cube.projected.linear_nearest
    .cube.projected.linear_linear
dEQP-GLES3.functional.texture.mipmap
    .2d.projected.nearest_nearest_mirror
    .2d.projected.linear_nearest_clamp
    .2d.projected.linear_nearest_repeat
    .2d.projected.linear_nearest_mirror
    .2d.projected.nearest_linear_repeat
    .2d.projected.linear_linear_clamp
    .2d.projected.linear_linear_repeat
    .3d.projected.nearest_nearest_mirror
    .3d.projected.linear_nearest_clamp
    .3d.projected.linear_nearest_repeat
    .3d.projected.nearest_linear_clamp
    .3d.projected.nearest_linear_mirror
    .3d.projected.linear_linear_clamp
    .3d.projected.linear_linear_repeat
Fixed: angleproject:8443
Fixed: angleproject:7023
Change-Id: I13fc52532b94de098dcf3e9f5f02d48a6c8913c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5089131
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
      
//
// Copyright 2022 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// ConstantNames:
// Implementation of constant values used by the metal backend.
#include <stdio.h>
#include "GLSLANG/ShaderLang.h"
namespace sh
{
namespace mtl
{
/** extern */
const char kMultisampledRenderingConstName[]    = "ANGLEMultisampledRendering";
const char kRasterizerDiscardEnabledConstName[] = "ANGLERasterizerDisabled";
const char kDepthWriteEnabledConstName[]        = "ANGLEDepthWriteEnabled";
const char kEmulateAlphaToCoverageConstName[]   = "ANGLEEmulateAlphaToCoverage";
const char kWriteHelperSampleMaskConstName[]    = "ANGLEWriteHelperSampleMask";
const char kSampleMaskWriteEnabledConstName[]   = "ANGLESampleMaskWriteEnabled";
}  // namespace mtl
}  // namespace sh