r600g/sb: dump sampler/resource index modes for textures.
[mesa.git] / src / gallium / drivers / r600 / sb / sb_shader.cpp
index 32760ec056fcdca09b0232c4bfbc086f567b2440..f996c0786d123bd51cb71dccb089f774dcbc3597 100644 (file)
@@ -39,7 +39,8 @@ shader::shader(sb_context &sctx, shader_target t, unsigned id)
   coal(*this), bbs(),
   target(t), vt(ex), ex(*this), root(),
   compute_interferences(),
-  has_alu_predication(), uses_gradients(), safe_math(), ngpr(), nstack() {}
+  has_alu_predication(),
+  uses_gradients(), safe_math(), ngpr(), nstack(), dce_flags() {}
 
 bool shader::assign_slot(alu_node* n, alu_node *slots[5]) {
 
@@ -214,7 +215,7 @@ void shader::init() {
 void shader::init_call_fs(cf_node* cf) {
        unsigned gpr = 0;
 
-       assert(target == TARGET_VS);
+       assert(target == TARGET_VS || target == TARGET_ES);
 
        for(inputs_vec::const_iterator I = inputs.begin(),
                        E = inputs.end(); I != E; ++I, ++gpr) {
@@ -260,7 +261,6 @@ node* shader::create_node(node_type nt, node_subtype nst, node_flags flags) {
 
 alu_node* shader::create_alu() {
        alu_node* n = new (pool.allocate(sizeof(alu_node))) alu_node();
-       memset(&n->bc, 0, sizeof(bc_alu));
        all_nodes.push_back(n);
        return n;
 }
@@ -281,7 +281,6 @@ alu_packed_node* shader::create_alu_packed() {
 
 cf_node* shader::create_cf() {
        cf_node* n = new (pool.allocate(sizeof(cf_node))) cf_node();
-       memset(&n->bc, 0, sizeof(bc_cf));
        n->bc.barrier = 1;
        all_nodes.push_back(n);
        return n;
@@ -289,7 +288,6 @@ cf_node* shader::create_cf() {
 
 fetch_node* shader::create_fetch() {
        fetch_node* n = new (pool.allocate(sizeof(fetch_node))) fetch_node();
-       memset(&n->bc, 0, sizeof(bc_fetch));
        all_nodes.push_back(n);
        return n;
 }
@@ -426,64 +424,16 @@ cf_node* shader::create_cf(unsigned op) {
 std::string shader::get_full_target_name() {
        std::string s = get_shader_target_name();
        s += "/";
-       s += get_hw_chip_name();
+       s += ctx.get_hw_chip_name();
        s += "/";
-       s += get_hw_class_name();
+       s += ctx.get_hw_class_name();
        return s;
 }
 
-const char* shader::get_hw_class_name() {
-       switch (ctx.hw_class) {
-#define TRANSLATE_HW_CLASS(c) case HW_CLASS_##c: return #c
-               TRANSLATE_HW_CLASS(R600);
-               TRANSLATE_HW_CLASS(R700);
-               TRANSLATE_HW_CLASS(EVERGREEN);
-               TRANSLATE_HW_CLASS(CAYMAN);
-#undef TRANSLATE_HW_CLASS
-               default:
-                       return "INVALID_CHIP_CLASS";
-       }
-}
-
-const char* shader::get_hw_chip_name() {
-       switch (ctx.hw_chip) {
-#define TRANSLATE_CHIP(c) case HW_CHIP_##c: return #c
-               TRANSLATE_CHIP(R600);
-               TRANSLATE_CHIP(RV610);
-               TRANSLATE_CHIP(RV630);
-               TRANSLATE_CHIP(RV670);
-               TRANSLATE_CHIP(RV620);
-               TRANSLATE_CHIP(RV635);
-               TRANSLATE_CHIP(RS780);
-               TRANSLATE_CHIP(RS880);
-               TRANSLATE_CHIP(RV770);
-               TRANSLATE_CHIP(RV730);
-               TRANSLATE_CHIP(RV710);
-               TRANSLATE_CHIP(RV740);
-               TRANSLATE_CHIP(CEDAR);
-               TRANSLATE_CHIP(REDWOOD);
-               TRANSLATE_CHIP(JUNIPER);
-               TRANSLATE_CHIP(CYPRESS);
-               TRANSLATE_CHIP(HEMLOCK);
-               TRANSLATE_CHIP(PALM);
-               TRANSLATE_CHIP(SUMO);
-               TRANSLATE_CHIP(SUMO2);
-               TRANSLATE_CHIP(BARTS);
-               TRANSLATE_CHIP(TURKS);
-               TRANSLATE_CHIP(CAICOS);
-               TRANSLATE_CHIP(CAYMAN);
-               TRANSLATE_CHIP(ARUBA);
-#undef TRANSLATE_CHIP
-
-               default:
-                       assert(!"unknown chip");
-                       return "INVALID_CHIP";
-       }
-}
-
 const char* shader::get_shader_target_name() {
        switch (target) {
                case TARGET_VS: return "VS";
+               case TARGET_ES: return "ES";
                case TARGET_PS: return "PS";
                case TARGET_GS: return "GS";
                case TARGET_COMPUTE: return "COMPUTE";