turnip: Make tu_android.c compile again
[mesa.git] / src / freedreno / ir3 / ir3_nir.c
index c779a57f7c5176c85161137b5dffb50b15f2aa62..dc707545bbb6a629aa25a15a4c775e7f312e1424 100644 (file)
@@ -71,6 +71,12 @@ static const nir_shader_compiler_options options = {
                .lower_to_scalar = true,
                .has_imul24 = true,
                .lower_wpos_pntc = true,
+
+               /* Only needed for the spirv_to_nir() pass done in ir3_cmdline.c
+                * but that should be harmless for GL since 64b is not
+                * supported there.
+                */
+               .lower_int64_options = (nir_lower_int64_options)~0,
 };
 
 /* we don't want to lower vertex_id to _zero_based on newer gpus: */
@@ -115,6 +121,12 @@ static const nir_shader_compiler_options options_a6xx = {
                .has_imul24 = true,
                .max_unroll_iterations = 32,
                .lower_wpos_pntc = true,
+
+               /* Only needed for the spirv_to_nir() pass done in ir3_cmdline.c
+                * but that should be harmless for GL since 64b is not
+                * supported there.
+                */
+               .lower_int64_options = (nir_lower_int64_options)~0,
 };
 
 const nir_shader_compiler_options *
@@ -310,7 +322,7 @@ static bool
 ir3_nir_lower_layer_id(nir_shader *nir)
 {
        unsigned layer_id_loc = ~0;
-       nir_foreach_variable(var, &nir->inputs) {
+       nir_foreach_shader_in_variable(var, nir) {
                if (var->data.location == VARYING_SLOT_LAYER) {
                        layer_id_loc = var->data.driver_location;
                        break;
@@ -503,6 +515,8 @@ ir3_nir_scan_driver_consts(nir_shader *shader,
 
                                switch (intr->intrinsic) {
                                case nir_intrinsic_get_buffer_size:
+                                       if (ir3_bindless_resource(intr->src[0]))
+                                               break;
                                        idx = nir_src_as_uint(intr->src[0]);
                                        if (layout->ssbo_size.mask & (1 << idx))
                                                break;