summaryrefslogtreecommitdiff
path: root/src/sna/gen9_render.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sna/gen9_render.c')
-rw-r--r--src/sna/gen9_render.c29
1 files changed, 26 insertions, 3 deletions
diff --git a/src/sna/gen9_render.c b/src/sna/gen9_render.c
index 801d514c..4e4172ed 100644
--- a/src/sna/gen9_render.c
+++ b/src/sna/gen9_render.c
@@ -230,11 +230,32 @@ static const struct gt_info skl_gt_info = {
.urb = { .max_vs_entries = 960 },
};
+static const struct gt_info bxt_gt_info = {
+ .name = "Broxton (gen9)",
+ .urb = { .max_vs_entries = 320 },
+};
+
+static const struct gt_info kbl_gt_info = {
+ .name = "Kayblake (gen9)",
+ .urb = { .max_vs_entries = 960 },
+};
+
static bool is_skl(struct sna *sna)
{
return sna->kgem.gen == 0110;
}
+static bool is_bxt(struct sna *sna)
+{
+ return sna->kgem.gen == 0111;
+}
+
+static bool is_kbl(struct sna *sna)
+{
+ return sna->kgem.gen == 0112;
+}
+
+
static inline bool too_large(int width, int height)
{
return width > GEN9_MAX_SIZE || height > GEN9_MAX_SIZE;
@@ -3982,11 +4003,13 @@ static bool gen9_render_setup(struct sna *sna)
state->gt = GEN9_GT_BIAS + ((devid >> 4) & 0xf) + 1;
DBG(("%s: gt=%d\n", __FUNCTION__, state->gt));
- state->info = &skl_gt_info;
+ state->info = &min_gt_info;
if (is_skl(sna))
state->info = &skl_gt_info;
- else
- return false;
+ if (is_bxt(sna))
+ state->info = &bxt_gt_info;
+ if (is_kbl(sna))
+ state->info = &kbl_gt_info;
sna_static_stream_init(&general);