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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] Design c-style apis for compiling a shader
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            HLSL
      </td>
    </tr>

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

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

<pre>
    DXC exposes a COM based library today for compiling shaders.  A desire has been expressed to have an equivalent solution for compiling shaders but exposed in pure c apis. These apis should cover all features required to perform compilation.  The COM based library exposes lots of other features, but this Issue is for compiling shaders only and returning outputs in a form that a client code can consume.

This design is purely about the api surface and its functionality, not about the hosting of where compilation is performed.  That will be explained in Issue #90784 

Requirements
* c-style! (no COM apis!... I heard bad things happen if HRESULTs start showing up in the llvm-project code base)
* Spec showing the design with code snippets.
* Test approach understood
* Documentation approach understood. (Where will it live, what does it look like?)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0lNGP4yYQxv8a_DI6y2aTTfzgh-2m0Z20VaXbrdpXDONAjwBlIGn--wrs21ylvZfEwsx83_w-gyAyJ4c4su0vjHPpfQiMc7Y9NCIn7eNYl5rJq9t4-OsZ8N_gCQkEPP_-G0yCUIE1UxTxBskrcYPZR5D-HIw17gSkhcJILcATKCQTEbQgmBBd6RWRSofkQYsLgnCA_2RzERZdAvI2J-Pdxy1hymm1o8A4CDkiSBDBUAtvGgnrM5D22SqQ_oIRhLUwo0g5IkEsWnGRDxhnH8-rjCiyLZQ2H8z5nYH1icDP4JPG-N6W8edqLWlD8IUoIxj6yQje2RsIpyBiytGVVz6nkBOViQRUS0mLBAKkNQWK9ApBCgfSO8pnbFl3YN3T8vtWNAvmkyuiBUkRmHz1U4EA5TgLiVXWJII5O1nGFdakWzHvfPqhRHtK1dcMV40F8Z1Q1VjAoaq4RIKrsRYmLJSsMG4JZ-HA-MPQ7fYb-NHz1yWFM7pE6zp_AvmJ0s0i4z0wvne-xlDyZLxv2xa-gEYRFUxCFdLuRKBFCOjAzPD566-vf7y8EVASMZUv4FpGyKFYKUNZezl_CtH_jXIlWhJmfLgbeA0o3ytLzYr1apJeSsiZEDBRey96Q0ogQoheSA3ZlZCT9-q-4-BlLqMu_D7Y2pZ5_6ykK0mTwJoLlmCuBa_ySHXR-29gzTdkD8d3440aH9TwMIgGx37Xb_mO7_e80WM3zEMn-qmb96rfb_vNNGxx2HU73E3zpObGjLzjm27bDf3jpud9O3dy6tXjVkop5323YZsOz8LYtrBrfTw1pmQ6Dv0j7xsrJrS03iKfX15f1kskjhX1lE_ENp01lOjeIJlk681TC7YHOCyI1-yX4_v_gyPWo9PkaEedUiD28MT4kfHjySSdp1b6M-PHorH-fc-Z8WN1TIwfq-n_AgAA__8iCrMP">