r600/sfn: Make allocate_reserved_registers forward to a virtual function
authorGert Wollny <gert.wollny@collabora.com>
Wed, 6 May 2020 21:54:38 +0000 (23:54 +0200)
committerMarge Bot <eric+marge@anholt.net>
Tue, 19 May 2020 07:52:13 +0000 (07:52 +0000)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>

14 files changed:
src/gallium/drivers/r600/sfn/sfn_shader_base.cpp
src/gallium/drivers/r600/sfn/sfn_shader_base.h
src/gallium/drivers/r600/sfn/sfn_shader_compute.cpp
src/gallium/drivers/r600/sfn/sfn_shader_compute.h
src/gallium/drivers/r600/sfn/sfn_shader_fragment.cpp
src/gallium/drivers/r600/sfn/sfn_shader_fragment.h
src/gallium/drivers/r600/sfn/sfn_shader_geometry.cpp
src/gallium/drivers/r600/sfn/sfn_shader_geometry.h
src/gallium/drivers/r600/sfn/sfn_shader_tcs.cpp
src/gallium/drivers/r600/sfn/sfn_shader_tcs.h
src/gallium/drivers/r600/sfn/sfn_shader_tess_eval.cpp
src/gallium/drivers/r600/sfn/sfn_shader_tess_eval.h
src/gallium/drivers/r600/sfn/sfn_shader_vertex.cpp
src/gallium/drivers/r600/sfn/sfn_shader_vertex.h

index 3354e71287608d4eaf2db284c359b1e0bb0c8f23..57053efc49abfabc5a019a966a4279b129b09722 100644 (file)
@@ -102,6 +102,12 @@ enum chip_class ShaderFromNirProcessor::get_chip_class(void) const
   return m_chip_class;
 }
 
+bool ShaderFromNirProcessor::allocate_reserved_registers()
+{
+   bool retval = do_allocate_reserved_registers();
+   return retval;
+}
+
 static void remap_shader_info(r600_shader& sh_info,
                               std::vector<rename_reg_pair>& map,
                               UNUSED ValueMap& values)
index 4d799bf8f6ed8b7c41c72959bab33851f1833cb0..d284efc3f074f0ca7bbfa20f11994902d82596a6 100644 (file)
@@ -130,8 +130,10 @@ protected:
 
    std::bitset<es_last> m_sv_values;
 
+   bool allocate_reserved_registers();
+
 private:
-   virtual bool allocate_reserved_registers() = 0;
+   virtual bool do_allocate_reserved_registers() = 0;
 
    bool emit_alu_instruction(nir_instr *instr);
    bool emit_deref_instruction(nir_deref_instr* instr);
index e832b8a2b06ad4cfabf42feea397625bb4bac5b3..2351a7fc50b129443fcb635952caacc4d4b74200 100644 (file)
@@ -43,7 +43,7 @@ bool ComputeShaderFromNir::scan_sysvalue_access(UNUSED nir_instr *instr)
 {
    return true;
 }
-bool ComputeShaderFromNir::allocate_reserved_registers()
+bool ComputeShaderFromNir::do_allocate_reserved_registers()
 {
    int thread_id_sel = m_reserved_registers++;
    int wg_id_sel = m_reserved_registers++;
index bd6e792635f84a8b7f78d3962459ca928acd9510..b6a1813e52b52b29b02f63fe23d42b2ccce68f7e 100644 (file)
@@ -46,7 +46,7 @@ public:
 private:
    bool emit_intrinsic_instruction_override(nir_intrinsic_instr* instr) override;
 
-   bool allocate_reserved_registers() override;
+   bool do_allocate_reserved_registers() override;
    bool do_process_inputs(nir_variable *input) override;
    bool do_process_outputs(nir_variable *output) override;
    bool do_emit_load_deref(const nir_variable *in_var, nir_intrinsic_instr* instr) override;
index eb37721d8c5faa281c03c1da7960ff3456d2cbd6..c4084553f16e6b47a348aabfbeb12073b77d0107 100644 (file)
@@ -137,7 +137,7 @@ bool FragmentShaderFromNir::scan_sysvalue_access(nir_instr *instr)
    return true;
 }
 
-bool FragmentShaderFromNir::allocate_reserved_registers()
+bool FragmentShaderFromNir::do_allocate_reserved_registers()
 {
    assert(!m_reserved_registers);
 
index fbf91708a4b957a57d9fe2e4f374ffe31ca87f69..57d6cf7ec9acc8bbd50b99370f0dc0804418adb1 100644 (file)
@@ -50,7 +50,7 @@ private:
 
    void emit_shader_start() override;
    bool do_process_inputs(nir_variable *input) override;
-   bool allocate_reserved_registers() override;
+   bool do_allocate_reserved_registers() override;
    bool do_process_outputs(nir_variable *output) override;
    bool do_emit_load_deref(const nir_variable *in_var, nir_intrinsic_instr* instr) override;
    bool do_emit_store_deref(const nir_variable *out_var, nir_intrinsic_instr* instr) override;
index 48f02780ab2c80f9bf77f653c5cd77d6eaf1993c..2edc86ff3610c27c1ad6ace1ee2742ca1b10a481 100644 (file)
@@ -143,7 +143,7 @@ bool GeometryShaderFromNir::do_process_outputs(nir_variable *output)
 }
 
 
-bool GeometryShaderFromNir::allocate_reserved_registers()
+bool GeometryShaderFromNir::do_allocate_reserved_registers()
 {
    const int sel[6] = {0, 0 ,0, 1, 1, 1};
    const int chan[6] = {0, 1 ,3, 0, 1, 2};
index cbecc1b20c814bb54bf7b7dc216e7d4a5916a3a1..08df47e559fa69c31006180f2904ef1aea4a5d48 100644 (file)
@@ -48,7 +48,7 @@ private:
    };
 
    bool do_process_inputs(nir_variable *input) override;
-   bool allocate_reserved_registers() override;
+   bool do_allocate_reserved_registers() override;
    bool do_process_outputs(nir_variable *output) override;
    bool emit_deref_instruction_override(nir_deref_instr* instr) override;
    bool emit_intrinsic_instruction_override(nir_intrinsic_instr* instr) override;
index 866396baddece30af169788399e38560a15ded2c..78a97b3202514f0108fb6f26c1c248c66e889a12 100644 (file)
@@ -56,7 +56,7 @@ bool TcsShaderFromNir::do_process_outputs(nir_variable *output)
    return true;
 }
 
-bool TcsShaderFromNir::allocate_reserved_registers()
+bool TcsShaderFromNir::do_allocate_reserved_registers()
 {
    if (m_sv_values.test(es_primitive_id)) {
       m_reserved_registers = 1;
index 06267d7a1b2c6ccbc9f9f0132458d55c6bde3fdb..ba914a75373a8e3d3a90168c84890dd7e2b1f928 100644 (file)
@@ -12,7 +12,7 @@ public:
    bool scan_sysvalue_access(nir_instr *instr) override;
 
 private:
-   bool allocate_reserved_registers() override;
+   bool do_allocate_reserved_registers() override;
    bool emit_intrinsic_instruction_override(nir_intrinsic_instr* instr) override;
    bool store_tess_factor(nir_intrinsic_instr* instr);
 
index 351c32ffda5c0a075c90f100428d8e8f5cc6db33..e8616fcb2b83cc81b417edb60fb14ea0b76a9953 100644 (file)
@@ -66,7 +66,7 @@ bool TEvalShaderFromNir::scan_sysvalue_access(nir_instr *instr)
    return true;
 }
 
-bool TEvalShaderFromNir::allocate_reserved_registers()
+bool TEvalShaderFromNir::do_allocate_reserved_registers()
 {
    if (m_sv_values.test(es_tess_coord)) {
       m_reserved_registers = 1;
index a9086a3268faa5423fbf25d9caa0abe47b7ae32f..a33dbfa6f760026490beb9b71e86a6d22e28287c 100644 (file)
@@ -15,7 +15,7 @@ public:
         bool scan_sysvalue_access(nir_instr *instr) override;
         PValue primitive_id() override {return m_primitive_id;}
      private:
-        bool allocate_reserved_registers() override;
+        bool do_allocate_reserved_registers() override;
         bool emit_intrinsic_instruction_override(nir_intrinsic_instr* instr) override;
         bool emit_load_tess_coord(nir_intrinsic_instr* instr);
         bool load_tess_z_coord(nir_intrinsic_instr* instr);
index f6cdc648318c59104395cad74d6bf12b70870eef..c3cd020b4dc7b812703f5f47b4af38402617269b 100644 (file)
@@ -83,7 +83,7 @@ bool VertexShaderFromNir::do_process_inputs(nir_variable *input)
    return false;
 }
 
-bool VertexShaderFromNir::allocate_reserved_registers()
+bool VertexShaderFromNir::do_allocate_reserved_registers()
 {
    /* Since the vertex ID is nearly always used, we add it here as an input so
     * that the registers used for vertex attributes don't get clobbered by the
index 4135cf1e3cd0dc4dcc40c3b5558d4614b8657603..4998a25f6b2daf05ca06e2c20af90f06b874a334 100644 (file)
@@ -61,7 +61,7 @@ private:
 
    void emit_shader_start() override;
    bool do_process_inputs(nir_variable *input) override;
-   bool allocate_reserved_registers() override;
+   bool do_allocate_reserved_registers() override;
    bool do_process_outputs(nir_variable *output) override;
    bool emit_intrinsic_instruction_override(nir_intrinsic_instr* instr) override;
    bool emit_store_local_shared(nir_intrinsic_instr* instr);