OSDN Git Service

i965: Make fs/vec4_visitor inherit from ir_visitor directly
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 20 May 2015 16:45:47 +0000 (09:45 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Fri, 29 May 2015 00:07:00 +0000 (17:07 -0700)
This is using multiple inheritance in C++.  However, ir_visitor is really
just an interface with no data so it shouldn't be so bad.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs.h
src/mesa/drivers/dri/i965/brw_shader.h
src/mesa/drivers/dri/i965/brw_vec4.h

index f63b149..6f16c31 100644 (file)
@@ -66,7 +66,7 @@ namespace brw {
  *
  * Translates either GLSL IR or Mesa IR (for ARB_fragment_program) into FS IR.
  */
-class fs_visitor : public backend_shader
+class fs_visitor : public backend_shader, public ir_visitor
 {
 public:
    const fs_reg reg_null_f;
index ac9acfc..da01d2f 100644 (file)
@@ -211,7 +211,7 @@ enum instruction_scheduler_mode {
    SCHEDULE_POST,
 };
 
-class backend_shader : public ir_visitor {
+class backend_shader {
 protected:
 
    backend_shader(struct brw_context *brw,
index f781343..06a16a4 100644 (file)
@@ -73,7 +73,7 @@ class vec4_live_variables;
  * Translates either GLSL IR or Mesa IR (for ARB_vertex_program and
  * fixed-function) into VS IR.
  */
-class vec4_visitor : public backend_shader
+class vec4_visitor : public backend_shader, public ir_visitor
 {
 public:
    vec4_visitor(struct brw_context *brw,