sampler/render/constant cache unit since Sandybridge
authorXiang, Haihao <haihao.xiang@intel.com>
Mon, 30 May 2011 08:30:48 +0000 (16:30 +0800)
committerDamien Lespiau <damien.lespiau@intel.com>
Mon, 4 Mar 2013 15:54:29 +0000 (15:54 +0000)
since Sandybrdige, there isn't a single function unit for data port read/write.
Instead sampler/render/constant cache unit is introduced, data port read/write
can be specified in a SEND instruction with different cache unit. To keep compatibility,
currently data port read always uses sampler cache unit however data port write
uses render cache unit

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
assembler/src/brw_defines.h
assembler/src/gram.y

index 60ab770..aba1b99 100644 (file)
 #define BRW_MESSAGE_TARGET_SAMPLER            2
 #define BRW_MESSAGE_TARGET_GATEWAY            3
 #define BRW_MESSAGE_TARGET_DATAPORT_READ      4
-#define BRW_MESSAGE_TARGET_DATAPORT_WRITE     5
+#define BRW_MESSAGE_TARGET_DP_SC              4  /* data port sampler cache */
+#define BRW_MESSAGE_TARGET_DATAPORT_WRITE     5  
+#define BRW_MESSAGE_TARGET_DP_RC              5  /* data port render cache */
 #define BRW_MESSAGE_TARGET_URB                6
 #define BRW_MESSAGE_TARGET_THREAD_SPAWNER     7
 #define BRW_MESSAGE_TARGET_VME                8
+#define BRW_MESSAGE_TARGET_DP_CC              9  /* data port constant cache */
 
 #define BRW_SAMPLER_RETURN_FORMAT_FLOAT32     0
 #define BRW_SAMPLER_RETURN_FORMAT_UINT32      2
index be4e132..8e2249c 100644 (file)
@@ -1035,14 +1035,14 @@ msgtarget:      NULL_TOKEN
                {
                  if (gen_level == 7) {
                       $$.bits2.send_gen5.sfid = 
-                          BRW_MESSAGE_TARGET_DATAPORT_READ;
+                          BRW_MESSAGE_TARGET_DP_SC;
                       $$.bits3.generic_gen5.header_present = 1;
                       $$.bits3.dp_gen7.binding_table_index = $3;
                       $$.bits3.dp_gen7.msg_control = $7;
                       $$.bits3.dp_gen7.msg_type = $9;
                  } else if (gen_level == 6) {
                       $$.bits2.send_gen5.sfid = 
-                          BRW_MESSAGE_TARGET_DATAPORT_READ;
+                          BRW_MESSAGE_TARGET_DP_SC;
                       $$.bits3.generic_gen5.header_present = 1;
                       $$.bits3.dp_read_gen6.binding_table_index = $3;
                       $$.bits3.dp_read_gen6.msg_control = $7;
@@ -1069,14 +1069,14 @@ msgtarget:      NULL_TOKEN
                {
                  if (gen_level == 7) {
                       $$.bits2.send_gen5.sfid =
-                          BRW_MESSAGE_TARGET_DATAPORT_WRITE;
+                          BRW_MESSAGE_TARGET_DP_RC;
                       $$.bits3.generic_gen5.header_present = 1;
                       $$.bits3.dp_gen7.binding_table_index = $3;
                       $$.bits3.dp_gen7.msg_control = $5;
                       $$.bits3.dp_gen7.msg_type = $7;
                   } else if (gen_level == 6) {
                       $$.bits2.send_gen5.sfid =
-                          BRW_MESSAGE_TARGET_DATAPORT_WRITE;
+                          BRW_MESSAGE_TARGET_DP_RC;
                       /* Sandybridge supports headerlesss message for render target write.
                        * Currently the GFX assembler doesn't support it. so the program must provide 
                        * message header
@@ -1114,14 +1114,14 @@ msgtarget:      NULL_TOKEN
                {
                  if (gen_level == 7) {
                       $$.bits2.send_gen5.sfid =
-                          BRW_MESSAGE_TARGET_DATAPORT_WRITE;
+                          BRW_MESSAGE_TARGET_DP_RC;
                       $$.bits3.generic_gen5.header_present = ($11 != 0);
                       $$.bits3.dp_gen7.binding_table_index = $3;
                       $$.bits3.dp_gen7.msg_control = $5;
                       $$.bits3.dp_gen7.msg_type = $7;
                  } else if (gen_level == 6) {
                       $$.bits2.send_gen5.sfid =
-                          BRW_MESSAGE_TARGET_DATAPORT_WRITE;
+                          BRW_MESSAGE_TARGET_DP_RC;
                       $$.bits3.generic_gen5.header_present = ($11 != 0);
                       $$.bits3.dp_write_gen6.binding_table_index = $3;
                       $$.bits3.dp_write_gen6.msg_control = $5;