intel: update genhw headers
genhw is maintained externally in https://github.com/olvaffe/envytools.
Changes that affect the driver include
- state alignment macros are now in bytes, not in dwords
- {DS,HS}_INVOCATION_COUNT are Gen7+ only
- new GEN_EXTRACT() macro to extract a bitfield
v2: regenerate again to reflect latest changes in the external repo (minor
naming fixes as well as addition of pixel interpolator definitions)
diff --git a/icd/intel/cmd_decode.c b/icd/intel/cmd_decode.c
index 2767295..53cfe7e 100644
--- a/icd/intel/cmd_decode.c
+++ b/icd/intel/cmd_decode.c
@@ -32,8 +32,6 @@
#include "kmd/winsys.h"
#include "cmd_priv.h"
-#define READ(dw, field) (((dw) & field ## __MASK) >> field ## __SHIFT)
-
static const uint32_t *
writer_pointer(const struct intel_cmd *cmd,
enum intel_cmd_writer_type which,
@@ -259,13 +257,13 @@
dw = writer_dw(cmd, which, offset, 0, "SCISSOR%d", i);
fprintf(stderr, "xmin %d, ymin %d\n",
- READ(dw, GEN6_SCISSOR_DW0_MIN_X),
- READ(dw, GEN6_SCISSOR_DW0_MIN_Y));
+ GEN_EXTRACT(dw, GEN6_SCISSOR_DW0_MIN_X),
+ GEN_EXTRACT(dw, GEN6_SCISSOR_DW0_MIN_Y));
dw = writer_dw(cmd, which, offset, 1, "SCISSOR%d", i);
fprintf(stderr, "xmax %d, ymax %d\n",
- READ(dw, GEN6_SCISSOR_DW1_MAX_X),
- READ(dw, GEN6_SCISSOR_DW1_MAX_Y));
+ GEN_EXTRACT(dw, GEN6_SCISSOR_DW1_MAX_X),
+ GEN_EXTRACT(dw, GEN6_SCISSOR_DW1_MAX_Y));
offset += state_size;
}
@@ -304,10 +302,10 @@
dw = writer_dw(cmd, which, item->offset, 0, "CC");
fprintf(stderr, "alpha test format %s, round disable %d, "
"stencil ref %d, bf stencil ref %d\n",
- READ(dw, GEN6_CC_DW0_ALPHATEST) ? "FLOAT32" : "UNORM8",
+ GEN_EXTRACT(dw, GEN6_CC_DW0_ALPHATEST) ? "FLOAT32" : "UNORM8",
(bool) (dw & GEN6_CC_DW0_ROUND_DISABLE_DISABLE),
- READ(dw, GEN6_CC_DW0_STENCIL0_REF),
- READ(dw, GEN6_CC_DW0_STENCIL1_REF));
+ GEN_EXTRACT(dw, GEN6_CC_DW0_STENCIL0_REF),
+ GEN_EXTRACT(dw, GEN6_CC_DW0_STENCIL1_REF));
writer_dw(cmd, which, item->offset, 1, "CC\n");
@@ -334,18 +332,18 @@
dw = writer_dw(cmd, which, item->offset, 0, "D_S");
fprintf(stderr, "stencil %sable, func %d, write %sable\n",
(dw & GEN6_ZS_DW0_STENCIL_TEST_ENABLE) ? "en" : "dis",
- READ(dw, GEN6_ZS_DW0_STENCIL0_FUNC),
+ GEN_EXTRACT(dw, GEN6_ZS_DW0_STENCIL0_FUNC),
(dw & GEN6_ZS_DW0_STENCIL_WRITE_ENABLE) ? "en" : "dis");
dw = writer_dw(cmd, which, item->offset, 1, "D_S");
fprintf(stderr, "stencil test mask 0x%x, write mask 0x%x\n",
- READ(dw, GEN6_ZS_DW1_STENCIL0_VALUEMASK),
- READ(dw, GEN6_ZS_DW1_STENCIL0_WRITEMASK));
+ GEN_EXTRACT(dw, GEN6_ZS_DW1_STENCIL0_VALUEMASK),
+ GEN_EXTRACT(dw, GEN6_ZS_DW1_STENCIL0_WRITEMASK));
dw = writer_dw(cmd, which, item->offset, 2, "D_S");
fprintf(stderr, "depth test %sable, func %d, write %sable\n",
(dw & GEN6_ZS_DW2_DEPTH_TEST_ENABLE) ? "en" : "dis",
- READ(dw, GEN6_ZS_DW2_DEPTH_FUNC),
+ GEN_EXTRACT(dw, GEN6_ZS_DW2_DEPTH_FUNC),
(dw & GEN6_ZS_DW2_DEPTH_WRITE_ENABLE) ? "en" : "dis");
}
@@ -403,9 +401,9 @@
dw = writer_dw(cmd, which, item->offset, 0, "SURF");
fprintf(stderr, "type 0x%x, format 0x%x, tiling %d, %s array\n",
- READ(dw, GEN7_SURFACE_DW0_TYPE),
- READ(dw, GEN7_SURFACE_DW0_FORMAT),
- READ(dw, GEN7_SURFACE_DW0_TILING),
+ GEN_EXTRACT(dw, GEN7_SURFACE_DW0_TYPE),
+ GEN_EXTRACT(dw, GEN7_SURFACE_DW0_FORMAT),
+ GEN_EXTRACT(dw, GEN7_SURFACE_DW0_TILING),
(dw & GEN7_SURFACE_DW0_IS_ARRAY) ? "is" : "not");
writer_dw(cmd, which, item->offset, 1, "SURF");
@@ -413,25 +411,25 @@
dw = writer_dw(cmd, which, item->offset, 2, "SURF");
fprintf(stderr, "%dx%d size\n",
- READ(dw, GEN7_SURFACE_DW2_WIDTH),
- READ(dw, GEN7_SURFACE_DW2_HEIGHT));
+ GEN_EXTRACT(dw, GEN7_SURFACE_DW2_WIDTH),
+ GEN_EXTRACT(dw, GEN7_SURFACE_DW2_HEIGHT));
dw = writer_dw(cmd, which, item->offset, 3, "SURF");
fprintf(stderr, "depth %d, pitch %d\n",
- READ(dw, GEN7_SURFACE_DW3_DEPTH),
- READ(dw, GEN7_SURFACE_DW3_PITCH));
+ GEN_EXTRACT(dw, GEN7_SURFACE_DW3_DEPTH),
+ GEN_EXTRACT(dw, GEN7_SURFACE_DW3_PITCH));
dw = writer_dw(cmd, which, item->offset, 4, "SURF");
fprintf(stderr, "min array element %d, array extent %d\n",
- READ(dw, GEN7_SURFACE_DW4_MIN_ARRAY_ELEMENT),
- READ(dw, GEN7_SURFACE_DW4_RT_VIEW_EXTENT));
+ GEN_EXTRACT(dw, GEN7_SURFACE_DW4_MIN_ARRAY_ELEMENT),
+ GEN_EXTRACT(dw, GEN7_SURFACE_DW4_RT_VIEW_EXTENT));
dw = writer_dw(cmd, which, item->offset, 5, "SURF");
fprintf(stderr, "mip base %d, mips %d, x,y offset: %d,%d\n",
- READ(dw, GEN7_SURFACE_DW5_MIN_LOD),
- READ(dw, GEN7_SURFACE_DW5_MIP_COUNT_LOD),
- READ(dw, GEN7_SURFACE_DW5_X_OFFSET),
- READ(dw, GEN7_SURFACE_DW5_Y_OFFSET));
+ GEN_EXTRACT(dw, GEN7_SURFACE_DW5_MIN_LOD),
+ GEN_EXTRACT(dw, GEN7_SURFACE_DW5_MIP_COUNT_LOD),
+ GEN_EXTRACT(dw, GEN7_SURFACE_DW5_X_OFFSET),
+ GEN_EXTRACT(dw, GEN7_SURFACE_DW5_Y_OFFSET));
writer_dw(cmd, which, item->offset, 6, "SURF\n");
writer_dw(cmd, which, item->offset, 7, "SURF\n");
@@ -446,31 +444,31 @@
dw = writer_dw(cmd, which, item->offset, 0, "SURF");
fprintf(stderr, "type 0x%x, format 0x%x\n",
- READ(dw, GEN6_SURFACE_DW0_TYPE),
- READ(dw, GEN6_SURFACE_DW0_FORMAT));
+ GEN_EXTRACT(dw, GEN6_SURFACE_DW0_TYPE),
+ GEN_EXTRACT(dw, GEN6_SURFACE_DW0_FORMAT));
writer_dw(cmd, which, item->offset, 1, "SURF");
fprintf(stderr, "offset\n");
dw = writer_dw(cmd, which, item->offset, 2, "SURF");
fprintf(stderr, "%dx%d size, %d mips\n",
- READ(dw, GEN6_SURFACE_DW2_WIDTH),
- READ(dw, GEN6_SURFACE_DW2_HEIGHT),
- READ(dw, GEN6_SURFACE_DW2_MIP_COUNT_LOD));
+ GEN_EXTRACT(dw, GEN6_SURFACE_DW2_WIDTH),
+ GEN_EXTRACT(dw, GEN6_SURFACE_DW2_HEIGHT),
+ GEN_EXTRACT(dw, GEN6_SURFACE_DW2_MIP_COUNT_LOD));
dw = writer_dw(cmd, which, item->offset, 3, "SURF");
fprintf(stderr, "pitch %d, tiling %d\n",
- READ(dw, GEN6_SURFACE_DW3_PITCH),
- READ(dw, GEN6_SURFACE_DW3_TILING));
+ GEN_EXTRACT(dw, GEN6_SURFACE_DW3_PITCH),
+ GEN_EXTRACT(dw, GEN6_SURFACE_DW3_TILING));
dw = writer_dw(cmd, which, item->offset, 4, "SURF");
fprintf(stderr, "mip base %d\n",
- READ(dw, GEN6_SURFACE_DW4_MIN_LOD));
+ GEN_EXTRACT(dw, GEN6_SURFACE_DW4_MIN_LOD));
dw = writer_dw(cmd, which, item->offset, 5, "SURF");
fprintf(stderr, "x,y offset: %d,%d\n",
- READ(dw, GEN6_SURFACE_DW5_X_OFFSET),
- READ(dw, GEN6_SURFACE_DW5_Y_OFFSET));
+ GEN_EXTRACT(dw, GEN6_SURFACE_DW5_X_OFFSET),
+ GEN_EXTRACT(dw, GEN6_SURFACE_DW5_Y_OFFSET));
}
static void