mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-20 06:16:13 +00:00
intel_sprite_on: coding style fixes
It was driving me nuts... Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
This commit is contained in:
parent
5b5a7a806f
commit
93e5b4477f
@ -53,8 +53,7 @@
|
||||
|
||||
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
|
||||
|
||||
struct type_name
|
||||
{
|
||||
struct type_name {
|
||||
int type;
|
||||
const char *name;
|
||||
};
|
||||
@ -76,18 +75,16 @@ struct type_name encoder_type_names[] = {
|
||||
{ DRM_MODE_ENCODER_LVDS, "LVDS" },
|
||||
{ DRM_MODE_ENCODER_TVDAC, "TVDAC" },
|
||||
};
|
||||
|
||||
type_name_fn(encoder_type)
|
||||
|
||||
struct type_name connector_status_names[] = {
|
||||
struct type_name connector_status_names[] = {
|
||||
{ DRM_MODE_CONNECTED, "connected" },
|
||||
{ DRM_MODE_DISCONNECTED, "disconnected" },
|
||||
{ DRM_MODE_UNKNOWNCONNECTION, "unknown" },
|
||||
};
|
||||
|
||||
};
|
||||
type_name_fn(connector_status)
|
||||
|
||||
struct type_name connector_type_names[] = {
|
||||
struct type_name connector_type_names[] = {
|
||||
{ DRM_MODE_CONNECTOR_Unknown, "unknown" },
|
||||
{ DRM_MODE_CONNECTOR_VGA, "VGA" },
|
||||
{ DRM_MODE_CONNECTOR_DVII, "DVI-I" },
|
||||
@ -103,19 +100,17 @@ type_name_fn(connector_status)
|
||||
{ DRM_MODE_CONNECTOR_HDMIB, "HDMI-B" },
|
||||
{ DRM_MODE_CONNECTOR_TV, "TV" },
|
||||
{ DRM_MODE_CONNECTOR_eDP, "Embedded DisplayPort" },
|
||||
};
|
||||
|
||||
};
|
||||
type_name_fn(connector_type)
|
||||
|
||||
/*
|
||||
/*
|
||||
* Mode setting with the kernel interfaces is a bit of a chore.
|
||||
* First you have to find the connector in question and make sure the
|
||||
* requested mode is available.
|
||||
* Then you need to find the encoder attached to that connector so you
|
||||
* can bind it with a free crtc.
|
||||
*/
|
||||
struct connector
|
||||
{
|
||||
struct connector {
|
||||
uint32_t id;
|
||||
int mode_valid;
|
||||
drmModeModeInfo mode;
|
||||
@ -125,8 +120,7 @@ type_name_fn(connector_type)
|
||||
int pipe;
|
||||
};
|
||||
|
||||
static void dump_mode(
|
||||
drmModeModeInfo *mode)
|
||||
static void dump_mode(drmModeModeInfo *mode)
|
||||
{
|
||||
printf(" %s %d %d %d %d %d %d %d %d %d 0x%x 0x%x %d\n",
|
||||
mode->name,
|
||||
@ -144,9 +138,7 @@ static void dump_mode(
|
||||
mode->clock);
|
||||
}
|
||||
|
||||
static void dump_connectors(
|
||||
int gfx_fd,
|
||||
drmModeRes *resources)
|
||||
static void dump_connectors(int gfx_fd, drmModeRes *resources)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
@ -174,8 +166,7 @@ static void dump_connectors(
|
||||
continue;
|
||||
|
||||
printf(" modes:\n");
|
||||
printf(" name refresh (Hz) hdisp hss hse htot vdisp "
|
||||
"vss vse vtot flags type clock\n");
|
||||
printf(" name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot flags type clock\n");
|
||||
for (j = 0; j < connector->count_modes; j++)
|
||||
dump_mode(&connector->modes[j]);
|
||||
|
||||
@ -184,9 +175,7 @@ static void dump_connectors(
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
static void dump_crtcs(
|
||||
int gfx_fd,
|
||||
drmModeRes *resources)
|
||||
static void dump_crtcs(int gfx_fd, drmModeRes *resources)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -214,9 +203,7 @@ static void dump_crtcs(
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
static void dump_planes(
|
||||
int gfx_fd,
|
||||
drmModeRes *resources)
|
||||
static void dump_planes(int gfx_fd, drmModeRes *resources)
|
||||
{
|
||||
drmModePlaneRes *plane_resources;
|
||||
drmModePlane *ovr;
|
||||
@ -251,8 +238,7 @@ static void dump_planes(
|
||||
return;
|
||||
}
|
||||
|
||||
static void connector_find_preferred_mode(
|
||||
int gfx_fd,
|
||||
static void connector_find_preferred_mode(int gfx_fd,
|
||||
drmModeRes *gfx_resources,
|
||||
struct connector *c)
|
||||
{
|
||||
@ -380,14 +366,9 @@ static int connector_find_plane(int gfx_fd, struct connector *c)
|
||||
return id;
|
||||
}
|
||||
|
||||
static int prepare_primary_surface(
|
||||
int fd,
|
||||
int prim_width,
|
||||
int prim_height,
|
||||
uint32_t *prim_handle,
|
||||
uint32_t *prim_stride,
|
||||
uint32_t *prim_size,
|
||||
int tiled)
|
||||
static int prepare_primary_surface(int fd, int prim_width, int prim_height,
|
||||
uint32_t *prim_handle, uint32_t *prim_stride,
|
||||
uint32_t *prim_size, int tiled)
|
||||
{
|
||||
uint32_t bytes_per_pixel = sizeof(uint32_t);
|
||||
uint32_t *prim_fb_ptr;
|
||||
@ -436,9 +417,7 @@ static int prepare_primary_surface(
|
||||
}
|
||||
}
|
||||
|
||||
prim_fb_ptr = gem_mmap(fd,
|
||||
*prim_handle, *prim_size,
|
||||
PROT_READ | PROT_WRITE);
|
||||
prim_fb_ptr = gem_mmap(fd, *prim_handle, *prim_size, PROT_READ | PROT_WRITE);
|
||||
|
||||
if (prim_fb_ptr != NULL) {
|
||||
// Write primary surface with gray background
|
||||
@ -449,12 +428,8 @@ static int prepare_primary_surface(
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void fill_sprite(
|
||||
int sprite_width,
|
||||
int sprite_height,
|
||||
int sprite_stride,
|
||||
int sprite_index,
|
||||
void *sprite_fb_ptr)
|
||||
static void fill_sprite(int sprite_width, int sprite_height, int sprite_stride,
|
||||
int sprite_index, void *sprite_fb_ptr)
|
||||
{
|
||||
__u32 *pLinePat0,
|
||||
*pLinePat1,
|
||||
@ -491,14 +466,9 @@ static void fill_sprite(
|
||||
return;
|
||||
}
|
||||
|
||||
static int prepare_sprite_surfaces(
|
||||
int fd,
|
||||
int sprite_width,
|
||||
int sprite_height,
|
||||
uint32_t num_surfaces,
|
||||
uint32_t *sprite_handles,
|
||||
uint32_t *sprite_stride,
|
||||
uint32_t *sprite_size,
|
||||
static int prepare_sprite_surfaces(int fd, int sprite_width, int sprite_height,
|
||||
uint32_t num_surfaces, uint32_t *sprite_handles,
|
||||
uint32_t *sprite_stride, uint32_t *sprite_size,
|
||||
int tiled)
|
||||
{
|
||||
uint32_t bytes_per_pixel = sizeof(uint32_t);
|
||||
@ -557,11 +527,7 @@ static int prepare_sprite_surfaces(
|
||||
|
||||
if (sprite_fb_ptr != NULL) {
|
||||
// Fill with checkerboard pattern
|
||||
fill_sprite(
|
||||
sprite_width,
|
||||
sprite_height,
|
||||
*sprite_stride,
|
||||
i, sprite_fb_ptr);
|
||||
fill_sprite(sprite_width, sprite_height, *sprite_stride, i, sprite_fb_ptr);
|
||||
|
||||
munmap(sprite_fb_ptr, *sprite_size);
|
||||
} else {
|
||||
@ -576,13 +542,8 @@ static int prepare_sprite_surfaces(
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ricochet(
|
||||
int tiled,
|
||||
int sprite_w,
|
||||
int sprite_h,
|
||||
int out_w,
|
||||
int out_h,
|
||||
int dump_info)
|
||||
static void ricochet(int tiled, int sprite_w, int sprite_h,
|
||||
int out_w, int out_h, int dump_info)
|
||||
{
|
||||
int ret;
|
||||
int gfx_fd;
|
||||
@ -657,8 +618,7 @@ static void ricochet(
|
||||
curr_term.c_cc[VTIME] = 0 ; // Return immediately, even if
|
||||
// nothing has been entered.
|
||||
if (tcsetattr( 0, TCSANOW, &curr_term) != 0) {
|
||||
printf("tcgetattr failure: %s\n",
|
||||
strerror(errno));
|
||||
printf("tcgetattr failure: %s\n", strerror(errno));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -702,14 +662,8 @@ static void ricochet(
|
||||
}
|
||||
|
||||
// Add the primary surface framebuffer
|
||||
ret = drmModeAddFB(
|
||||
gfx_fd,
|
||||
prim_width,
|
||||
prim_height,
|
||||
24, 32,
|
||||
prim_stride,
|
||||
prim_handle,
|
||||
&prim_fb_id);
|
||||
ret = drmModeAddFB(gfx_fd, prim_width, prim_height, 24, 32,
|
||||
prim_stride, prim_handle, &prim_fb_id);
|
||||
gem_close(gfx_fd, prim_handle);
|
||||
|
||||
if (ret != 0) {
|
||||
@ -719,14 +673,9 @@ static void ricochet(
|
||||
}
|
||||
|
||||
// Allocate and fill sprite surfaces
|
||||
ret = prepare_sprite_surfaces(
|
||||
gfx_fd,
|
||||
sprite_w,
|
||||
sprite_h,
|
||||
num_surfaces,
|
||||
ret = prepare_sprite_surfaces(gfx_fd, sprite_w, sprite_h, num_surfaces,
|
||||
&sprite_handles[0],
|
||||
&sprite_stride,
|
||||
&sprite_size,
|
||||
&sprite_stride, &sprite_size,
|
||||
tiled);
|
||||
if (ret != 0) {
|
||||
printf("Preparation of sprite surfaces failed %dx%d\n",
|
||||
@ -746,11 +695,10 @@ static void ricochet(
|
||||
pitches[3] = sprite_stride;
|
||||
memset(offsets, 0, sizeof(offsets));
|
||||
|
||||
ret = drmModeAddFB2(
|
||||
gfx_fd,
|
||||
sprite_w, sprite_h, DRM_FORMAT_XRGB8888,
|
||||
handles, pitches, offsets, &sprite_fb_id[sprite_index],
|
||||
plane_flags);
|
||||
ret = drmModeAddFB2(gfx_fd, sprite_w, sprite_h,
|
||||
DRM_FORMAT_XRGB8888,
|
||||
handles, pitches, offsets,
|
||||
&sprite_fb_id[sprite_index], plane_flags);
|
||||
gem_close(gfx_fd, sprite_handles[sprite_index]);
|
||||
|
||||
if (ret) {
|
||||
@ -809,10 +757,7 @@ static void ricochet(
|
||||
printf("Sprite surface dimensions = %dx%d\n"
|
||||
"Sprite output dimensions = %dx%d\n"
|
||||
"Press any key to continue >\n",
|
||||
sprite_w,
|
||||
sprite_h,
|
||||
out_w,
|
||||
out_h);
|
||||
sprite_w, sprite_h, out_w, out_h);
|
||||
|
||||
// Wait for a key-press
|
||||
while( read(0, &key, 1) == 0);
|
||||
@ -821,16 +766,9 @@ static void ricochet(
|
||||
}
|
||||
|
||||
// Set up the primary display mode
|
||||
ret = drmModeSetCrtc(
|
||||
gfx_fd,
|
||||
curr_connector.crtc,
|
||||
prim_fb_id,
|
||||
0, 0,
|
||||
&curr_connector.id,
|
||||
1,
|
||||
&curr_connector.mode);
|
||||
if (ret != 0)
|
||||
{
|
||||
ret = drmModeSetCrtc(gfx_fd, curr_connector.crtc, prim_fb_id,
|
||||
0, 0, &curr_connector.id, 1, &curr_connector.mode);
|
||||
if (ret != 0) {
|
||||
printf("Failed to set mode (%dx%d@%dHz): %s\n",
|
||||
prim_width, prim_height, curr_connector.mode.vrefresh,
|
||||
strerror(errno));
|
||||
@ -842,8 +780,7 @@ static void ricochet(
|
||||
set.min_value = 0;
|
||||
set.max_value = 0;
|
||||
set.flags = I915_SET_COLORKEY_NONE;
|
||||
ret = drmCommandWrite(gfx_fd, DRM_I915_SET_SPRITE_COLORKEY, &set,
|
||||
sizeof(set));
|
||||
ret = drmCommandWrite(gfx_fd, DRM_I915_SET_SPRITE_COLORKEY, &set, sizeof(set));
|
||||
assert(ret == 0);
|
||||
|
||||
// Set up sprite output dimensions, initial position, etc.
|
||||
@ -868,12 +805,10 @@ static void ricochet(
|
||||
// Bounce sprite off the walls
|
||||
while (keep_moving) {
|
||||
// Obtain system time in usec.
|
||||
if (gettimeofday( &stTimeVal, NULL ) != 0) {
|
||||
printf("gettimeofday error: %s\n",
|
||||
strerror(errno));
|
||||
} else {
|
||||
if (gettimeofday( &stTimeVal, NULL ) != 0)
|
||||
printf("gettimeofday error: %s\n", strerror(errno));
|
||||
else
|
||||
currTime = ((long long)stTimeVal.tv_sec * 1000000) + stTimeVal.tv_usec;
|
||||
}
|
||||
|
||||
// Check if it's time to flip the sprite surface
|
||||
if (currTime - prevFlipTime > deltaFlipTime) {
|
||||
@ -884,19 +819,12 @@ static void ricochet(
|
||||
|
||||
// Move the sprite on the screen and flip
|
||||
// the surface if the index has changed
|
||||
if (drmModeSetPlane(
|
||||
gfx_fd,
|
||||
sprite_plane_id,
|
||||
curr_connector.crtc,
|
||||
sprite_fb_id[sprite_index],
|
||||
plane_flags,
|
||||
if (drmModeSetPlane(gfx_fd, sprite_plane_id, curr_connector.crtc,
|
||||
sprite_fb_id[sprite_index], plane_flags,
|
||||
sprite_x, sprite_y,
|
||||
out_w, out_h,
|
||||
0, 0,
|
||||
sprite_w, sprite_h)) {
|
||||
printf("Failed to enable sprite plane: %s\n",
|
||||
strerror(errno));
|
||||
}
|
||||
0, 0, sprite_w, sprite_h))
|
||||
printf("Failed to enable sprite plane: %s\n", strerror(errno));
|
||||
|
||||
// Check if it's time to move the sprite surface
|
||||
if (currTime - prevMoveTime > deltaMoveTime) {
|
||||
@ -946,15 +874,13 @@ static void ricochet(
|
||||
break;
|
||||
case 'f': // Slow down sprite flipping;
|
||||
deltaFlipTime = (deltaFlipTime * 100) / 90;
|
||||
if (deltaFlipTime > 1000000) {
|
||||
if (deltaFlipTime > 1000000)
|
||||
deltaFlipTime = 1000000;
|
||||
}
|
||||
break;
|
||||
case 'F': // Speed up sprite flipping;
|
||||
deltaFlipTime = (deltaFlipTime * 100) / 110;
|
||||
if (deltaFlipTime < 20000) {
|
||||
if (deltaFlipTime < 20000)
|
||||
deltaFlipTime = 20000;
|
||||
}
|
||||
break;
|
||||
case 'n': // Next connector
|
||||
case 'N':
|
||||
@ -980,8 +906,7 @@ out:
|
||||
tcflush(0, TCIFLUSH);
|
||||
// Restore previous terminal settings
|
||||
if (tcsetattr( 0, TCSANOW, &orig_term) != 0) {
|
||||
printf("tcgetattr failure: %s\n",
|
||||
strerror(errno));
|
||||
printf("tcgetattr failure: %s\n", strerror(errno));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1027,14 +952,12 @@ int main(int argc, char **argv)
|
||||
enable_tiling = 1;
|
||||
break;
|
||||
case 's': // Surface dimensions
|
||||
if (sscanf(optarg, "%dx%d",
|
||||
&plane_width, &plane_height) != 2)
|
||||
if (sscanf(optarg, "%dx%d", &plane_width, &plane_height) != 2)
|
||||
usage(argv[0]);
|
||||
test_overlay = 1;
|
||||
break;
|
||||
case 'o': // Output dimensions
|
||||
if (sscanf(optarg, "%dx%d",
|
||||
&out_width, &out_height) != 2)
|
||||
if (sscanf(optarg, "%dx%d", &out_width, &out_height) != 2)
|
||||
usage(argv[0]);
|
||||
break;
|
||||
default:
|
||||
@ -1047,20 +970,13 @@ int main(int argc, char **argv)
|
||||
}
|
||||
|
||||
if (test_overlay) {
|
||||
if (out_width < (plane_width / 2)) {
|
||||
if (out_width < (plane_width / 2))
|
||||
out_width = plane_width;
|
||||
}
|
||||
|
||||
if (out_height < (plane_height / 2)) {
|
||||
if (out_height < (plane_height / 2))
|
||||
out_height = plane_height;
|
||||
}
|
||||
|
||||
ricochet(enable_tiling,
|
||||
plane_width,
|
||||
plane_height,
|
||||
out_width,
|
||||
out_height,
|
||||
dump_info);
|
||||
ricochet(enable_tiling, plane_width, plane_height, out_width, out_height, dump_info);
|
||||
} else {
|
||||
printf("Sprite dimensions are required:\n");
|
||||
usage(argv[0]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user