gallium: extend pipe_context::flush for it to accept an END_OF_FRAME flag
[mesa.git] / src / gallium / drivers / radeonsi / radeonsi_pipe.c
index dcdbe2ae1d80e9139f6c1015a3ce38145682185c..6f32a376d7013247ad482ac9513bc9362b242581 100644 (file)
@@ -158,7 +158,8 @@ void radeonsi_flush(struct pipe_context *ctx, struct pipe_fence_handle **fence,
 }
 
 static void r600_flush_from_st(struct pipe_context *ctx,
-                              struct pipe_fence_handle **fence)
+                              struct pipe_fence_handle **fence,
+                               enum pipe_flush_flags flags)
 {
        radeonsi_flush(ctx, fence, 0);
 }
@@ -326,6 +327,9 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        case PIPE_CAP_NPOT_TEXTURES:
                return 1;
 
+        case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT:
+                return 64;
+
        case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
                return 256;
 
@@ -344,6 +348,10 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
        case PIPE_CAP_USER_VERTEX_BUFFERS:
        case PIPE_CAP_TEXTURE_MULTISAMPLE:
+       case PIPE_CAP_COMPUTE:
+       case PIPE_CAP_QUERY_TIMESTAMP:
+       case PIPE_CAP_CUBE_MAP_ARRAY:
+       case PIPE_CAP_TEXTURE_BUFFER_OBJECTS:
                return 0;
 
        /* Stream output. */
@@ -378,7 +386,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
                return 8;
 
        /* Timer queries, present when the clock frequency is non zero. */
-       case PIPE_CAP_TIMER_QUERY:
+       case PIPE_CAP_QUERY_TIME_ELAPSED:
                return rscreen->info.r600_clock_crystal_freq != 0;
 
        case PIPE_CAP_MIN_TEXEL_OFFSET:
@@ -465,6 +473,8 @@ static int r600_get_shader_param(struct pipe_screen* pscreen, unsigned shader, e
                return 0;
        case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
                return 16;
+       case PIPE_SHADER_CAP_PREFERRED_IR:
+               return PIPE_SHADER_IR_TGSI;
        }
        return 0;
 }
@@ -536,7 +546,7 @@ static boolean r600_fence_signalled(struct pipe_screen *pscreen,
        struct r600_screen *rscreen = (struct r600_screen *)pscreen;
        struct r600_fence *rfence = (struct r600_fence*)fence;
 
-       return rscreen->fences.data[rfence->index];
+       return rscreen->fences.data[rfence->index] != 0;
 }
 
 static boolean r600_fence_finish(struct pipe_screen *pscreen,