softpipe: implement get_timestamp and expose ARB_timer_query
PIPE_QUERY_TIMESTAMP is already implemented and working.
This commit is contained in:
parent
21f78d2189
commit
5ddcda060c
|
@ -30,6 +30,7 @@
|
|||
#include "util/u_format.h"
|
||||
#include "util/u_format_s3tc.h"
|
||||
#include "util/u_video.h"
|
||||
#include "os/os_time.h"
|
||||
#include "pipe/p_defines.h"
|
||||
#include "pipe/p_screen.h"
|
||||
#include "draw/draw_context.h"
|
||||
|
@ -164,8 +165,9 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
|
|||
case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY:
|
||||
case PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY:
|
||||
case PIPE_CAP_START_INSTANCE:
|
||||
case PIPE_CAP_QUERY_TIMESTAMP:
|
||||
return 0;
|
||||
case PIPE_CAP_QUERY_TIMESTAMP:
|
||||
return 1;
|
||||
}
|
||||
/* should only get here on unhandled cases */
|
||||
debug_printf("Unexpected PIPE_CAP %d query\n", param);
|
||||
|
@ -361,6 +363,12 @@ softpipe_flush_frontbuffer(struct pipe_screen *_screen,
|
|||
winsys->displaytarget_display(winsys, texture->dt, context_private);
|
||||
}
|
||||
|
||||
static uint64_t
|
||||
softpipe_get_timestamp(struct pipe_screen *_screen)
|
||||
{
|
||||
return os_time_get()*1000;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new pipe_screen object
|
||||
* Note: we're not presently subclassing pipe_screen (no softpipe_screen).
|
||||
|
@ -383,6 +391,7 @@ softpipe_create_screen(struct sw_winsys *winsys)
|
|||
screen->base.get_shader_param = softpipe_get_shader_param;
|
||||
screen->base.get_paramf = softpipe_get_paramf;
|
||||
screen->base.get_video_param = softpipe_get_video_param;
|
||||
screen->base.get_timestamp = softpipe_get_timestamp;
|
||||
screen->base.is_format_supported = softpipe_is_format_supported;
|
||||
screen->base.is_video_format_supported = vl_video_buffer_is_format_supported;
|
||||
screen->base.context_create = softpipe_create_context;
|
||||
|
|
Loading…
Reference in New Issue