mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-11 18:06:13 +00:00
sampler/render/constant cache unit since Sandybridge
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>
This commit is contained in:
parent
6a3a9e7148
commit
e97f0bca5f
@ -704,10 +704,13 @@
|
|||||||
#define BRW_MESSAGE_TARGET_SAMPLER 2
|
#define BRW_MESSAGE_TARGET_SAMPLER 2
|
||||||
#define BRW_MESSAGE_TARGET_GATEWAY 3
|
#define BRW_MESSAGE_TARGET_GATEWAY 3
|
||||||
#define BRW_MESSAGE_TARGET_DATAPORT_READ 4
|
#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_URB 6
|
||||||
#define BRW_MESSAGE_TARGET_THREAD_SPAWNER 7
|
#define BRW_MESSAGE_TARGET_THREAD_SPAWNER 7
|
||||||
#define BRW_MESSAGE_TARGET_VME 8
|
#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_FLOAT32 0
|
||||||
#define BRW_SAMPLER_RETURN_FORMAT_UINT32 2
|
#define BRW_SAMPLER_RETURN_FORMAT_UINT32 2
|
||||||
|
@ -1035,14 +1035,14 @@ msgtarget: NULL_TOKEN
|
|||||||
{
|
{
|
||||||
if (gen_level == 7) {
|
if (gen_level == 7) {
|
||||||
$$.bits2.send_gen5.sfid =
|
$$.bits2.send_gen5.sfid =
|
||||||
BRW_MESSAGE_TARGET_DATAPORT_READ;
|
BRW_MESSAGE_TARGET_DP_SC;
|
||||||
$$.bits3.generic_gen5.header_present = 1;
|
$$.bits3.generic_gen5.header_present = 1;
|
||||||
$$.bits3.dp_gen7.binding_table_index = $3;
|
$$.bits3.dp_gen7.binding_table_index = $3;
|
||||||
$$.bits3.dp_gen7.msg_control = $7;
|
$$.bits3.dp_gen7.msg_control = $7;
|
||||||
$$.bits3.dp_gen7.msg_type = $9;
|
$$.bits3.dp_gen7.msg_type = $9;
|
||||||
} else if (gen_level == 6) {
|
} else if (gen_level == 6) {
|
||||||
$$.bits2.send_gen5.sfid =
|
$$.bits2.send_gen5.sfid =
|
||||||
BRW_MESSAGE_TARGET_DATAPORT_READ;
|
BRW_MESSAGE_TARGET_DP_SC;
|
||||||
$$.bits3.generic_gen5.header_present = 1;
|
$$.bits3.generic_gen5.header_present = 1;
|
||||||
$$.bits3.dp_read_gen6.binding_table_index = $3;
|
$$.bits3.dp_read_gen6.binding_table_index = $3;
|
||||||
$$.bits3.dp_read_gen6.msg_control = $7;
|
$$.bits3.dp_read_gen6.msg_control = $7;
|
||||||
@ -1069,14 +1069,14 @@ msgtarget: NULL_TOKEN
|
|||||||
{
|
{
|
||||||
if (gen_level == 7) {
|
if (gen_level == 7) {
|
||||||
$$.bits2.send_gen5.sfid =
|
$$.bits2.send_gen5.sfid =
|
||||||
BRW_MESSAGE_TARGET_DATAPORT_WRITE;
|
BRW_MESSAGE_TARGET_DP_RC;
|
||||||
$$.bits3.generic_gen5.header_present = 1;
|
$$.bits3.generic_gen5.header_present = 1;
|
||||||
$$.bits3.dp_gen7.binding_table_index = $3;
|
$$.bits3.dp_gen7.binding_table_index = $3;
|
||||||
$$.bits3.dp_gen7.msg_control = $5;
|
$$.bits3.dp_gen7.msg_control = $5;
|
||||||
$$.bits3.dp_gen7.msg_type = $7;
|
$$.bits3.dp_gen7.msg_type = $7;
|
||||||
} else if (gen_level == 6) {
|
} else if (gen_level == 6) {
|
||||||
$$.bits2.send_gen5.sfid =
|
$$.bits2.send_gen5.sfid =
|
||||||
BRW_MESSAGE_TARGET_DATAPORT_WRITE;
|
BRW_MESSAGE_TARGET_DP_RC;
|
||||||
/* Sandybridge supports headerlesss message for render target write.
|
/* Sandybridge supports headerlesss message for render target write.
|
||||||
* Currently the GFX assembler doesn't support it. so the program must provide
|
* Currently the GFX assembler doesn't support it. so the program must provide
|
||||||
* message header
|
* message header
|
||||||
@ -1114,14 +1114,14 @@ msgtarget: NULL_TOKEN
|
|||||||
{
|
{
|
||||||
if (gen_level == 7) {
|
if (gen_level == 7) {
|
||||||
$$.bits2.send_gen5.sfid =
|
$$.bits2.send_gen5.sfid =
|
||||||
BRW_MESSAGE_TARGET_DATAPORT_WRITE;
|
BRW_MESSAGE_TARGET_DP_RC;
|
||||||
$$.bits3.generic_gen5.header_present = ($11 != 0);
|
$$.bits3.generic_gen5.header_present = ($11 != 0);
|
||||||
$$.bits3.dp_gen7.binding_table_index = $3;
|
$$.bits3.dp_gen7.binding_table_index = $3;
|
||||||
$$.bits3.dp_gen7.msg_control = $5;
|
$$.bits3.dp_gen7.msg_control = $5;
|
||||||
$$.bits3.dp_gen7.msg_type = $7;
|
$$.bits3.dp_gen7.msg_type = $7;
|
||||||
} else if (gen_level == 6) {
|
} else if (gen_level == 6) {
|
||||||
$$.bits2.send_gen5.sfid =
|
$$.bits2.send_gen5.sfid =
|
||||||
BRW_MESSAGE_TARGET_DATAPORT_WRITE;
|
BRW_MESSAGE_TARGET_DP_RC;
|
||||||
$$.bits3.generic_gen5.header_present = ($11 != 0);
|
$$.bits3.generic_gen5.header_present = ($11 != 0);
|
||||||
$$.bits3.dp_write_gen6.binding_table_index = $3;
|
$$.bits3.dp_write_gen6.binding_table_index = $3;
|
||||||
$$.bits3.dp_write_gen6.msg_control = $5;
|
$$.bits3.dp_write_gen6.msg_control = $5;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user