<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/116125>116125</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [DirectX] Collect Shader Flags Mask based on Instructions Used and Shader Kind
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          bharadwajy
      </td>
    </tr>
</table>

<pre>
    - [ ] Implement Shader Flag Analysis for `m_bEnableMSAD` 
    Set if `DXIL::Opcode::Msad` is used
- [ ] Implement Shader Flag Analysis for `m_bViewID`
    Set if DXIL::OpCode::ViewID is used
- [ ] Implement Shader Flag Analysis for `m_bTiledResources` 
    Set 
      - if `DXIL::Opcode::CheckAccessFullyMapped` is used OR
      - if either of `DXIL::Opcode::SampleCmpClamp` or `DXIL::Opcode::SampleCmpBias` is used with non-zero clamp in its last argument.
- [ ] Implement Shader Flag Analysis for `m_bResourceDescriptorHeapIndexing` 
    Set if `OpCode::CreateHandleFromHeap` is used with zero sampler value
- [ ] Implement Shader Flag Analysis for `m_bSamplerDescriptorHeapIndexing` 
 Set if  `OpCode::CreateHandleFromHeap` is used with non-zero sampler value
- [ ] Implement Shader Flag Analysis for `m_bAdvancedTextureOps`
 Set 
      - if one of `DXIL::OpCode::TextureLoad`, `DXIL::OpCode::SampleLevel`, `DXIL::OpCode::SampleCmpLevelZero`, `DXIL::OpCode::SampleGrad`, `DXIL::OpCode::SampleCmp`, `DXIL::OpCode::Sample`, `DXIL::OpCode::SampleBias`, `DXIL::OpCode::SampleCmp`, `DXIL::OpCode::SampleCmpBias:Grad` is used and has no constant operand OR
      - if one of `DXIL::OpCode::SampleCmpLevel`, `DXIL::OpCode::TextureGatherRaw` used.
- [ ] Implement Shader Flag Analysis for `m_bSampleCmpGradientOrBias`
    Set if one of `OpCode::SampleCmpGrad`, `OpCode::SampleCmpBias` is used
- [ ] Implement Shader Flag Analysis for `m_bExtendedCommandInfo`
    Set if one of OpCode::StartVertexLocation, OpCode::StartInstanceLocation is used
- [ ] Implement Shader Flag Analysis for  `m_bUsesDerivatives` and `m_bDerivativesInMeshAndAmpShaders` 
    Set if any of the derivative ops viz., `DXIL::OpCode::DerivFineX`, `DXIL::OpCode::DerivFineY`, `DXIL::OpCode::DerivCoarseX`, `DXIL::OpCode::DerivCoarseY`, `DXIL::OpCode::CalculateLOD` are used( for `m_bUsesDerivatives`) and in Mesh of Amplification Shaders (for `m_bDerivativesInMeshAndAmpShaders`)
[ ] Implement Shader Flag Analysis for  m_bForceEarlyDepthStencil 
    Set if Pixel Shader

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVl1z2joQ_TXiRRPGljGEBz84JrTMTSZ3kraTe186a2vBamXJI8kk9Nffke0AuSSBpnniQ2d3z579kMBasVKICYkvSDwbQONKbZK8BAP8AX5sBrnmm-SMkviCknhGF1UtsULl6F0JHA2dS1jRVIHcWGHpUhtKxkH1Pb9UkEu8vktnZBxQEsxIkFJK6R06KpYeNLtfXJEoJVF6UxeaY_f92gL3FsLSxiLvDN8R_5vAh4WPfRB6P262jdvh_zjsFyGR36LVjSnQHqa--0Xp2ZtCZCUWP9OiQGvnjZSba6hr3JeG3tweeEPhSjRUv-H3DnwuWVVnEqra--vIH0FfCLD7wR-EK6nS6uwXGk0L74sKRYWzVIJ1FMyq8YIN3y3lk4oztIURtdPmM0K9UBwfhVq91lX7Nc0MgsPPoLjEudGVtz_IoeVv2zQNXYNs8N2MO7HMUcI923fR3Ur-MZRTvgZVIP-Cj64xeFPb3ci82K9a4QvttUuid3Sl2zEmLHsd2sl1hWuUp0Gzqm7R_6LRp1l8MqfSyNpZOAF4Gqofl48M_DSEUdpntW0MUJyWYKnStNDKOlCO6hqN__-FJXGshM_FPkauL_gn8JvnFh48Mc_q_YO_je_zFKjcjXmS8_8Dv0vlxQSel_91ST_gvrl8dKg48kxXFSi-UEv9BuFnVBwY9w2Nw8crXYATWnnCB5BFW9kCn0B_QLnn_NWinaERa3Bi3d1WvmW6w72DhbpGW6aKp1Xd-XzhZhNLCmrjk3MlUr61prq2dC1-Dd_sojbaXCi8P9ZvW-Q_JyEzDcae6LXDHvWbgSwaCQ6vbtrHDRjsCsHO9xriUFzCpq2-QlGvp5cqrWoplqIvaK8tJex85-doHQibdpX4nQaovudzbQq8BCM3M6xdeedQFUIeVvVv8Yiyd9UdDngS8Wk0hQEm4SQK41EUTseDMomm8ZjFkzyIQhiP-IhPJtHkPJic5xO-DMejgUhYwEZhGI6CIIzC8RBgHEcYs2g0joNowskowAqEHEq5robarAbC2gaTMByHLB5IyFHa9rXKmMIH2p4Sxvzj1STe6CxvVpaMAimsszs3TjjZPnNnwmDh7r1QmZYSi2cyWXoN9ifNwe9VragfOtMUvjyWfn1atr3BX0LxQWNkUjpX-8VM2Jyw-Uq4ssmHha4Im3sC_cdZbfQPLBxh85a2JWze57VO2H8BAAD___mgkaI">