tests/vgem_fb_test: Remove VGEM

Idea from now on is to not use VGEM but some rendernode-like API.
This commit is contained in:
Tiago Vignatti 2015-06-02 16:32:52 -03:00
parent 2a849a1af3
commit 4938e30751

View File

@ -34,9 +34,8 @@
#include "drmtest.h" #include "drmtest.h"
// to use DRM, one has to comment both USE_GEM and USE_VGEM defines. // to use DRM, one has to comment USE_GEM defines.
#define USE_GEM #define USE_GEM
//#define USE_VGEM
#ifdef USE_GEM #ifdef USE_GEM
#include "ioctl_wrappers.h" #include "ioctl_wrappers.h"
@ -48,9 +47,6 @@
struct context { struct context {
int drm_card_fd; int drm_card_fd;
#ifdef USE_VGEM
int vgem_card_fd;
#endif
int card_fd; int card_fd;
drmModeRes *resources; drmModeRes *resources;
@ -77,7 +73,7 @@ struct context {
static int disable_profiling = false; static int disable_profiling = false;
void disable_psr() { static void disable_psr(void) {
const char psr_path[] = "/sys/module/i915/parameters/enable_psr"; const char psr_path[] = "/sys/module/i915/parameters/enable_psr";
int psr_fd = open(psr_path, O_WRONLY); int psr_fd = open(psr_path, O_WRONLY);
@ -93,47 +89,11 @@ void disable_psr() {
close(psr_fd); close(psr_fd);
} }
void do_fixes() { static void do_fixes(void) {
disable_psr(); disable_psr();
} }
char *drm_card_path = "/dev/dri/card0"; const char *drm_card_path = "/dev/dri/card0";
#ifdef USE_VGEM
const char g_sys_card_path_format[] =
"/sys/bus/platform/devices/vgem/drm/card%d";
const char g_dev_card_path_format[] =
"/dev/dri/card%d";
int drm_open_vgem()
{
char *name;
int i, fd;
for (i = 0; i < 16; i++) {
struct stat _stat;
int ret;
ret = asprintf(&name, g_sys_card_path_format, i);
assert(ret != -1);
if (stat(name, &_stat) == -1) {
free(name);
continue;
}
free(name);
ret = asprintf(&name, g_dev_card_path_format, i);
assert(ret != -1);
fd = open(name, O_RDWR);
free(name);
if (fd == -1) {
continue;
}
return fd;
}
return -1;
}
#endif
static double elapsed(const struct timeval *start, const struct timeval *end) static double elapsed(const struct timeval *start, const struct timeval *end)
{ {
@ -141,7 +101,7 @@ static double elapsed(const struct timeval *start, const struct timeval *end)
} }
#ifdef USE_GEM #ifdef USE_GEM
void * mmap_intel_bo(drm_intel_bo *buffer) static void * mmap_intel_bo(drm_intel_bo *buffer)
{ {
if (drm_intel_bo_map(buffer, 1)) { if (drm_intel_bo_map(buffer, 1)) {
fprintf(stderr, "fail to map a drm buffer\n"); fprintf(stderr, "fail to map a drm buffer\n");
@ -174,7 +134,7 @@ void * mmap_dumb_bo(int fd, int handle, size_t size)
} }
#endif #endif
bool setup_drm(struct context *ctx) static bool setup_drm(struct context *ctx)
{ {
int fd = ctx->drm_card_fd; int fd = ctx->drm_card_fd;
drmModeRes *resources = NULL; drmModeRes *resources = NULL;
@ -261,7 +221,7 @@ bool setup_drm(struct context *ctx)
#define STEP_FLIP 3 #define STEP_FLIP 3
#define STEP_DRAW 4 #define STEP_DRAW 4
void show_sequence(const int *sequence) static void show_sequence(const int *sequence)
{ {
int sequence_subindex; int sequence_subindex;
fprintf(stderr, "starting sequence: "); fprintf(stderr, "starting sequence: ");
@ -290,7 +250,7 @@ void show_sequence(const int *sequence)
fprintf(stderr, "\n"); fprintf(stderr, "\n");
} }
void draw(struct context *ctx) static void draw(struct context *ctx)
{ {
int i; int i;
@ -382,7 +342,7 @@ void draw(struct context *ctx)
} }
} }
static int opt_handler(int opt, int opt_index) static int opt_handler(int opt, int opt_index, void *data)
{ {
switch (opt) { switch (opt) {
case 'd': case 'd':
@ -400,8 +360,7 @@ int main(int argc, char **argv)
{ {
int ret = 0; int ret = 0;
struct context ctx; struct context ctx;
uint32_t bo_handle; unsigned long bo_stride = 0;
uint32_t bo_stride;
int drm_prime_fd; int drm_prime_fd;
size_t i; size_t i;
@ -420,20 +379,9 @@ int main(int argc, char **argv)
ctx.bufmgr = drm_intel_bufmgr_gem_init(ctx.drm_card_fd, BO_SIZE); ctx.bufmgr = drm_intel_bufmgr_gem_init(ctx.drm_card_fd, BO_SIZE);
ctx.card_fd = ctx.drm_card_fd; ctx.card_fd = ctx.drm_card_fd;
fprintf(stderr, "Method to open video card: GEM\n"); fprintf(stderr, "Method to open video card: GEM\n");
#else
#ifdef USE_VGEM
ctx.vgem_card_fd = drm_open_vgem();
if (ctx.vgem_card_fd < 0) {
fprintf(stderr, "failed to open vgem card\n");
ret = 1;
goto close_drm_card;
}
ctx.card_fd = ctx.vgem_card_fd;
fprintf(stderr, "Method to open video card: VGEM\n");
#else #else
ctx.card_fd = ctx.drm_card_fd; ctx.card_fd = ctx.drm_card_fd;
fprintf(stderr, "Method to open video card: DRM\n"); fprintf(stderr, "Method to open video card: DRM\n");
#endif
ctx.drm_gbm = gbm_create_device(ctx.drm_card_fd); ctx.drm_gbm = gbm_create_device(ctx.drm_card_fd);
if (!ctx.drm_gbm) { if (!ctx.drm_gbm) {
@ -474,7 +422,6 @@ int main(int argc, char **argv)
goto free_buffers; goto free_buffers;
} }
bo_handle = gbm_bo_get_handle(ctx.gbm_buffer[i]).u32;
bo_stride = gbm_bo_get_stride(ctx.gbm_buffer[i]); bo_stride = gbm_bo_get_stride(ctx.gbm_buffer[i]);
drm_prime_fd = gbm_bo_get_fd(ctx.gbm_buffer[i]); drm_prime_fd = gbm_bo_get_fd(ctx.gbm_buffer[i]);
@ -533,10 +480,6 @@ destroy_drm_gbm:
gbm_device_destroy(ctx.drm_gbm); gbm_device_destroy(ctx.drm_gbm);
#endif #endif
close_card: close_card:
#ifdef USE_VGEM
close(ctx.vgem_card_fd);
#endif
close_drm_card:
close(ctx.drm_card_fd); close(ctx.drm_card_fd);
fail: fail:
return ret; return ret;