From: Max Reitz <mreitz@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>, qemu-devel@nongnu.org
Cc: Anthony Liguori <aliguori@amazon.com>
Subject: Re: [Qemu-devel] [PATCH v2 5/7] console-gl: externalize shader programs
Date: Mon, 19 Jan 2015 11:15:48 -0500 [thread overview]
Message-ID: <54BD2DB4.9080507@redhat.com> (raw)
In-Reply-To: <1421674603-31575-6-git-send-email-kraxel@redhat.com>
On 2015-01-19 at 08:36, Gerd Hoffmann wrote:
> ---
S-o-b is missing.
> Makefile | 17 +++++++++++++++++
> scripts/shaderinclude.pl | 16 ++++++++++++++++
> ui/console-gl.c | 28 ++--------------------------
> ui/shader/texture-blit.frag | 10 ++++++++++
> ui/shader/texture-blit.vert | 11 +++++++++++
> 5 files changed, 56 insertions(+), 26 deletions(-)
> create mode 100644 scripts/shaderinclude.pl
> create mode 100644 ui/shader/texture-blit.frag
> create mode 100644 ui/shader/texture-blit.vert
>
> diff --git a/Makefile b/Makefile
> index 6817c6f..6d77782 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -292,6 +292,7 @@ clean:
> rm -f fsdev/*.pod
> rm -rf .libs */.libs
> rm -f qemu-img-cmds.h
> + rm -f ui/shader/*-vert.h ui/shader/*-frag.h
> @# May not be present in GENERATED_HEADERS
> rm -f trace/generated-tracers-dtrace.dtrace*
> rm -f trace/generated-tracers-dtrace.h*
> @@ -437,6 +438,22 @@ cscope:
> find "$(SRC_PATH)" -name "*.[chsS]" -print | sed 's,^\./,,' > ./cscope.files
> cscope -b
>
> +# opengl shader programs
> +ui/shader/%-vert.h: $(SRC_PATH)/ui/shader/%.vert $(SRC_PATH)/scripts/shaderinclude.pl
> + @mkdir -p $(dir $@)
> + $(call quiet-command,\
> + perl $(SRC_PATH)/scripts/shaderinclude.pl $< > $@,\
> + " VERT $@")
> +
> +ui/shader/%-frag.h: $(SRC_PATH)/ui/shader/%.frag $(SRC_PATH)/scripts/shaderinclude.pl
> + @mkdir -p $(dir $@)
> + $(call quiet-command,\
> + perl $(SRC_PATH)/scripts/shaderinclude.pl $< > $@,\
> + " FRAG $@")
> +
> +ui/console-gl.o: $(SRC_PATH)/ui/console-gl.c \
> + ui/shader/texture-blit-vert.h ui/shader/texture-blit-frag.h
> +
> # documentation
> MAKEINFO=makeinfo
> MAKEINFOFLAGS=--no-headers --no-split --number-sections
> diff --git a/scripts/shaderinclude.pl b/scripts/shaderinclude.pl
> new file mode 100644
> index 0000000..81b5146
> --- /dev/null
> +++ b/scripts/shaderinclude.pl
> @@ -0,0 +1,16 @@
> +#!/usr/bin/perl
> +use strict;
> +use warnings;
> +
> +my $file = shift;
> +open FILE, "<", $file or die "open $file: $!";
> +my $name = $file;
> +$name =~ s|.*/||;
> +$name =~ s/[-.]/_/g;
> +print "static GLchar ${name}_src[] =\n";
> +while (<FILE>) {
> + chomp;
> + printf " \"%s\\n\"\n", $_;
> +}
> +print " \"\\n\";\n";
> +close FILE;
> diff --git a/ui/console-gl.c b/ui/console-gl.c
> index 589c682..2c9412d 100644
> --- a/ui/console-gl.c
> +++ b/ui/console-gl.c
> @@ -33,32 +33,8 @@ struct ConsoleGLState {
>
> /* ---------------------------------------------------------------------- */
>
> -static GLchar texture_blit_vert_src[] =
> - "\n"
> - "#version 300 es\n"
> - "\n"
> - "in vec2 in_position;\n"
> - "in vec2 in_tex_coord;\n"
> - "out vec2 ex_tex_coord;\n"
> - "\n"
> - "void main(void) {\n"
> - " gl_Position = vec4(in_position.x, in_position.y, 0.0, 1.0);\n"
> - " ex_tex_coord = in_tex_coord;\n"
> - "}\n"
> - "\n";
> -
> -static GLchar texture_blit_frag_src[] =
> - "\n"
> - "#version 300 es\n"
> - "\n"
> - "uniform sampler2D image;\n"
> - "in highp vec2 ex_tex_coord;\n"
> - "out highp vec4 out_frag_color;\n"
> - "\n"
> - "void main(void) {\n"
> - " out_frag_color = texture(image, ex_tex_coord);\n"
> - "}\n"
> - "\n";
> +#include "shader/texture-blit-vert.h"
> +#include "shader/texture-blit-frag.h"
>
> static void gl_run_texture_blit(ConsoleGLState *gls)
> {
> diff --git a/ui/shader/texture-blit.frag b/ui/shader/texture-blit.frag
> new file mode 100644
> index 0000000..148b1aa
> --- /dev/null
> +++ b/ui/shader/texture-blit.frag
> @@ -0,0 +1,10 @@
> +
> +#version 300 es
> +
> +uniform sampler2D image;
> +in highp vec2 ex_tex_coord;
> +out highp vec4 out_frag_color;
Apart from me not knowing what highp really does because I don't know
GLES, I can imagine what it's probably supposed to do (high-precision);
do we really need it for these values?
(I know, I should've said that in the previous patch already…)
> +
> +void main(void) {
> + out_frag_color = texture(image, ex_tex_coord);
> +}
> diff --git a/ui/shader/texture-blit.vert b/ui/shader/texture-blit.vert
> new file mode 100644
> index 0000000..4ffb5d1
> --- /dev/null
> +++ b/ui/shader/texture-blit.vert
> @@ -0,0 +1,11 @@
> +
> +#version 300 es
> +
> +in vec2 in_position;
> +in vec2 in_tex_coord;
> +out vec2 ex_tex_coord;
> +
> +void main(void) {
> + gl_Position = vec4(in_position.x, in_position.y, 0.0, 1.0);
> + ex_tex_coord = in_tex_coord;
> +}
gl_Position = vec4(in_position, 0.0, 1.0);
ex_tex_coord = vec2(1.0 + in_position.x, 1.0 - in_position.y) * 0.5;
*duck*
Anyway:
Reviewed-by: Max Reitz <mreitz@redhat.com>
next prev parent reply other threads:[~2015-01-19 16:16 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-19 13:36 [Qemu-devel] [PATCH v2 0/7] sdl2: add opengl rendering support Gerd Hoffmann
2015-01-19 13:36 ` [Qemu-devel] [PATCH v2 1/7] configure: opengl overhaul Gerd Hoffmann
2015-01-19 14:43 ` Max Reitz
2015-01-19 13:36 ` [Qemu-devel] [PATCH v2 2/7] Allow the use of X11 from a non standard location Gerd Hoffmann
2015-01-19 14:50 ` Max Reitz
2015-01-19 13:36 ` [Qemu-devel] [PATCH v2 3/7] pixman: add a bunch of PIXMAN_BE_* defines for 32bpp Gerd Hoffmann
2015-01-19 14:54 ` Max Reitz
2015-01-19 13:36 ` [Qemu-devel] [PATCH v2 4/7] console-gl: add opengl rendering helper functions Gerd Hoffmann
2015-01-19 16:05 ` Max Reitz
2015-01-20 11:00 ` Gerd Hoffmann
2015-01-20 13:54 ` Max Reitz
2015-01-20 14:44 ` Gerd Hoffmann
2015-01-20 14:52 ` Max Reitz
2015-01-19 13:36 ` [Qemu-devel] [PATCH v2 5/7] console-gl: externalize shader programs Gerd Hoffmann
2015-01-19 16:15 ` Max Reitz [this message]
2015-01-19 13:36 ` [Qemu-devel] [PATCH v2 6/7] sdl2: move SDL_* includes to sdl2.h Gerd Hoffmann
2015-01-19 16:16 ` Max Reitz
2015-01-19 13:36 ` [Qemu-devel] [PATCH v2 7/7] sdl2: add support for display rendering using opengl Gerd Hoffmann
2015-01-19 16:22 ` Max Reitz
2015-01-20 11:13 ` Gerd Hoffmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54BD2DB4.9080507@redhat.com \
--to=mreitz@redhat.com \
--cc=aliguori@amazon.com \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.