ilo: update surface state emission for Gen8
authorChia-I Wu <olvaffe@gmail.com>
Tue, 27 Jan 2015 12:10:46 +0000 (20:10 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Wed, 11 Feb 2015 23:56:13 +0000 (07:56 +0800)
src/gallium/drivers/ilo/ilo_render_surface.c

index 657fbfdabece314adf95b1b4baa6df2f265080f4..97660d0a2ed7feb54bf8396b19c672233d0ddf5a 100644 (file)
@@ -43,7 +43,7 @@ gen6_emit_draw_surface_rt(struct ilo_render *r,
    uint32_t *surface_state;
    int base, count, i;
 
-   ILO_DEV_ASSERT(r->dev, 6, 7.5);
+   ILO_DEV_ASSERT(r->dev, 6, 8);
 
    if (!DIRTY(FS) && !DIRTY(FB))
       return;
@@ -134,7 +134,7 @@ gen6_emit_draw_surface_view(struct ilo_render *r,
    uint32_t *surface_state;
    int base, count, i;
 
-   ILO_DEV_ASSERT(r->dev, 6, 7.5);
+   ILO_DEV_ASSERT(r->dev, 6, 8);
 
    switch (shader_type) {
    case PIPE_SHADER_VERTEX:
@@ -191,7 +191,7 @@ gen6_emit_draw_surface_const(struct ilo_render *r,
    uint32_t *surface_state;
    int base, count, i;
 
-   ILO_DEV_ASSERT(r->dev, 6, 7.5);
+   ILO_DEV_ASSERT(r->dev, 6, 8);
 
    switch (shader_type) {
    case PIPE_SHADER_VERTEX:
@@ -244,7 +244,7 @@ gen6_emit_draw_surface_binding_tables(struct ilo_render *r,
 {
    int count;
 
-   ILO_DEV_ASSERT(r->dev, 6, 7.5);
+   ILO_DEV_ASSERT(r->dev, 6, 8);
 
    /* BINDING_TABLE_STATE */
    switch (shader_type) {
@@ -301,12 +301,13 @@ ilo_render_get_draw_surface_states_len(const struct ilo_render *render,
 {
    int sh_type, len;
 
-   ILO_DEV_ASSERT(render->dev, 6, 7.5);
+   ILO_DEV_ASSERT(render->dev, 6, 8);
 
    len = 0;
 
    for (sh_type = 0; sh_type < PIPE_SHADER_TYPES; sh_type++) {
-      const int alignment = 32 / 4;
+      const int alignment =
+         (ilo_dev_gen(render->dev) >= ILO_GEN(8) ? 64 : 32) / 4;
       int num_surfaces = 0;
 
       switch (sh_type) {
@@ -355,7 +356,7 @@ ilo_render_emit_draw_surface_states(struct ilo_render *render,
    const unsigned surface_used = ilo_builder_surface_used(render->builder);
    int shader_type;
 
-   ILO_DEV_ASSERT(render->dev, 6, 7.5);
+   ILO_DEV_ASSERT(render->dev, 6, 8);
 
    /*
     * upload all SURAFCE_STATEs together so that we know there are minimal