ac: Fix loading a dvec3 from an SSBO
[mesa.git] / src / amd / common / ac_binary.c
index 1bf52c783281aff6d62732f834826542d1f70018..fabeb15a2048d26c3e98c6137a8b0c7484c4b58b 100644 (file)
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
- *
- * Authors: Tom Stellard <thomas.stellard@amd.com>
- *
- * Based on radeon_elf_util.c.
  */
 
 #include "ac_binary.h"
@@ -252,6 +248,7 @@ void ac_shader_binary_read_config(struct ac_shader_binary *binary,
                case R_00B128_SPI_SHADER_PGM_RSRC1_VS:
                case R_00B228_SPI_SHADER_PGM_RSRC1_GS:
                case R_00B848_COMPUTE_PGM_RSRC1:
+               case R_00B428_SPI_SHADER_PGM_RSRC1_HS:
                        conf->num_sgprs = MAX2(conf->num_sgprs, (G_00B028_SGPRS(value) + 1) * 8);
                        conf->num_vgprs = MAX2(conf->num_vgprs, (G_00B028_VGPRS(value) + 1) * 4);
                        conf->float_mode =  G_00B028_FLOAT_MODE(value);
@@ -301,3 +298,16 @@ void ac_shader_binary_read_config(struct ac_shader_binary *binary,
                conf->scratch_bytes_per_wave = G_00B860_WAVESIZE(wavesize) * 256 * 4;
        }
 }
+
+void ac_shader_binary_clean(struct ac_shader_binary *b)
+{
+       if (!b)
+               return;
+       FREE(b->code);
+       FREE(b->config);
+       FREE(b->rodata);
+       FREE(b->global_symbol_offsets);
+       FREE(b->relocs);
+       FREE(b->disasm_string);
+       FREE(b->llvm_ir_string);
+}