hud: add GALLIUM_HUD_SCALE
Scale hud by an integer factor, for high DPI displays. Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3931> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3931>
This commit is contained in:

committed by
Marge Bot

parent
0ee76b90d5
commit
31a7815785
@@ -397,6 +397,8 @@ Mesa EGL supports different sets of environment variables. See the
|
|||||||
<code>GALLIUM_HUD_TOGGLE_SIGNAL</code> to <code>10</code>
|
<code>GALLIUM_HUD_TOGGLE_SIGNAL</code> to <code>10</code>
|
||||||
(<code>SIGUSR1</code>).
|
(<code>SIGUSR1</code>).
|
||||||
Use <code>kill -10 <pid></code> to toggle the hud as desired.</dd>
|
Use <code>kill -10 <pid></code> to toggle the hud as desired.</dd>
|
||||||
|
<dt><code>GALLIUM_HUD_SCALE</code></dt>
|
||||||
|
<dd>Scale hud by an integer factor, for high DPI displays. Default is 1.</dd>
|
||||||
<dt><code>GALLIUM_HUD_DUMP_DIR</code></dt>
|
<dt><code>GALLIUM_HUD_DUMP_DIR</code></dt>
|
||||||
<dd>specifies a directory for writing the displayed hud values into files.</dd>
|
<dd>specifies a directory for writing the displayed hud values into files.</dd>
|
||||||
<dt><code>GALLIUM_DRIVER</code></dt>
|
<dt><code>GALLIUM_DRIVER</code></dt>
|
||||||
|
@@ -55,6 +55,7 @@
|
|||||||
|
|
||||||
/* Control the visibility of all HUD contexts */
|
/* Control the visibility of all HUD contexts */
|
||||||
static boolean huds_visible = TRUE;
|
static boolean huds_visible = TRUE;
|
||||||
|
static int hud_scale = 1;
|
||||||
|
|
||||||
|
|
||||||
#ifdef PIPE_OS_UNIX
|
#ifdef PIPE_OS_UNIX
|
||||||
@@ -84,10 +85,10 @@ hud_draw_colored_prims(struct hud_context *hud, unsigned prim,
|
|||||||
hud->constants.color[1] = g;
|
hud->constants.color[1] = g;
|
||||||
hud->constants.color[2] = b;
|
hud->constants.color[2] = b;
|
||||||
hud->constants.color[3] = a;
|
hud->constants.color[3] = a;
|
||||||
hud->constants.translate[0] = (float) xoffset;
|
hud->constants.translate[0] = (float) (xoffset * hud_scale);
|
||||||
hud->constants.translate[1] = (float) yoffset;
|
hud->constants.translate[1] = (float) (yoffset * hud_scale);
|
||||||
hud->constants.scale[0] = 1;
|
hud->constants.scale[0] = hud_scale;
|
||||||
hud->constants.scale[1] = yscale;
|
hud->constants.scale[1] = yscale * hud_scale;
|
||||||
cso_set_constant_buffer(cso, PIPE_SHADER_VERTEX, 0, &hud->constbuf);
|
cso_set_constant_buffer(cso, PIPE_SHADER_VERTEX, 0, &hud->constbuf);
|
||||||
|
|
||||||
cso_set_vertex_buffers(cso, 0, 1, &hud->color_prims.vbuf);
|
cso_set_vertex_buffers(cso, 0, 1, &hud->color_prims.vbuf);
|
||||||
@@ -556,10 +557,11 @@ hud_draw_results(struct hud_context *hud, struct pipe_resource *tex)
|
|||||||
hud->constants.color[3] = 0.666f;
|
hud->constants.color[3] = 0.666f;
|
||||||
hud->constants.translate[0] = 0;
|
hud->constants.translate[0] = 0;
|
||||||
hud->constants.translate[1] = 0;
|
hud->constants.translate[1] = 0;
|
||||||
hud->constants.scale[0] = 1;
|
hud->constants.scale[0] = hud_scale;
|
||||||
hud->constants.scale[1] = 1;
|
hud->constants.scale[1] = hud_scale;
|
||||||
|
|
||||||
cso_set_constant_buffer(cso, PIPE_SHADER_VERTEX, 0, &hud->constbuf);
|
cso_set_constant_buffer(cso, PIPE_SHADER_VERTEX, 0, &hud->constbuf);
|
||||||
|
|
||||||
cso_set_vertex_buffers(cso, 0, 1, &hud->bg.vbuf);
|
cso_set_vertex_buffers(cso, 0, 1, &hud->bg.vbuf);
|
||||||
cso_draw_arrays(cso, PIPE_PRIM_QUADS, 0, hud->bg.num_vertices);
|
cso_draw_arrays(cso, PIPE_PRIM_QUADS, 0, hud->bg.num_vertices);
|
||||||
}
|
}
|
||||||
@@ -590,8 +592,8 @@ hud_draw_results(struct hud_context *hud, struct pipe_resource *tex)
|
|||||||
hud->constants.color[3] = 1;
|
hud->constants.color[3] = 1;
|
||||||
hud->constants.translate[0] = 0;
|
hud->constants.translate[0] = 0;
|
||||||
hud->constants.translate[1] = 0;
|
hud->constants.translate[1] = 0;
|
||||||
hud->constants.scale[0] = 1;
|
hud->constants.scale[0] = hud_scale;
|
||||||
hud->constants.scale[1] = 1;
|
hud->constants.scale[1] = hud_scale;
|
||||||
cso_set_constant_buffer(cso, PIPE_SHADER_VERTEX, 0, &hud->constbuf);
|
cso_set_constant_buffer(cso, PIPE_SHADER_VERTEX, 0, &hud->constbuf);
|
||||||
|
|
||||||
if (hud->whitelines.num_vertices) {
|
if (hud->whitelines.num_vertices) {
|
||||||
@@ -1819,6 +1821,7 @@ hud_create(struct cso_context *cso, struct hud_context *share)
|
|||||||
struct sigaction action = {{0}};
|
struct sigaction action = {{0}};
|
||||||
#endif
|
#endif
|
||||||
huds_visible = debug_get_bool_option("GALLIUM_HUD_VISIBLE", TRUE);
|
huds_visible = debug_get_bool_option("GALLIUM_HUD_VISIBLE", TRUE);
|
||||||
|
hud_scale = debug_get_num_option("GALLIUM_HUD_SCALE", 1);
|
||||||
|
|
||||||
if (!env || !*env)
|
if (!env || !*env)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
Reference in New Issue
Block a user