Re: [Mesa3d-dev] [PATCH 3/4] [egl_g3d] Revalidate based on sequence number
On Tue, Jan 12, 2010 at 5:03 PM, Chia-I Wu olva...@gmail.com wrote: Semantically, the validate call asks for nothing but the specified textures of the native surface _at the moment_. There are some properties * It can be called repeatedly without any ill effect * It may return entirely different textures between two calls, without any knowledge in advance As such, splitting the call into get sequence number and validate is not possible. For optimization, some artifacts are added (and documented) * The argument textures may be NULL. Since there will be no way to return the textures to the caller, the native display may skip the creation of the textures. * (NEW) A sequence number is returned to indicate which moment the textures belong to (even when the argument textures is NULL) Using these artifacts, EGL is capable to * validate the native surface with textures set to NULL to get the sequence number * if the sequence number differs from what EGLSurface knows (which rarely happens), validate is called again to retrieve the textures The force_validate is used to indicate that the first validate call is very likely to return a different sequence number, and it may call to retrieve the textures directly. The attached patch is what's on my mind. I only does a quick test and it seems to work. From a276ba00280bfe145f7af962424879e34fc61cba Mon Sep 17 00:00:00 2001 From: Chia-I Wu olva...@gmail.com Date: Tue, 12 Jan 2010 18:08:02 +0800 Subject: [PATCH] st/egl_g3d: Use a sequence number to decide if validation is required. It is not safe to assume that the native surface has not changed since the last validation by checking the geometry alone. Add a sequence number to validate callback so that the native display can notify us. Signed-off-by: Chia-I Wu olva...@gmail.com --- .../state_trackers/egl_g3d/common/egl_g3d.c| 35 +--- .../state_trackers/egl_g3d/common/egl_g3d.h|1 + src/gallium/state_trackers/egl_g3d/common/native.h |7 ++-- .../state_trackers/egl_g3d/kms/native_kms.c|9 - .../state_trackers/egl_g3d/kms/native_kms.h|1 + .../state_trackers/egl_g3d/x11/native_dri2.c | 20 +-- .../state_trackers/egl_g3d/x11/native_ximage.c | 14 +++- 7 files changed, 66 insertions(+), 21 deletions(-) diff --git a/src/gallium/state_trackers/egl_g3d/common/egl_g3d.c b/src/gallium/state_trackers/egl_g3d/common/egl_g3d.c index 741e5b4..60fce03 100644 --- a/src/gallium/state_trackers/egl_g3d/common/egl_g3d.c +++ b/src/gallium/state_trackers/egl_g3d/common/egl_g3d.c @@ -63,22 +63,19 @@ egl_g3d_validate_context(_EGLDisplay *dpy, _EGLContext *ctx) } if (!gctx-force_validate) { - EGLint cur_w, cur_h; + unsigned int seq_num; - cur_w = gsurf-base.Width; - cur_h = gsurf-base.Height; gsurf-native-validate(gsurf-native, gbuf-native_atts, gbuf-num_atts, - NULL, - gsurf-base.Width, gsurf-base.Height); - /* validate only when the geometry changed */ - if (gsurf-base.Width == cur_w gsurf-base.Height == cur_h) + seq_num, NULL, NULL, NULL); + /* skip validation */ + if (gsurf-sequence_number == seq_num) continue; } gsurf-native-validate(gsurf-native, gbuf-native_atts, gbuf-num_atts, -(struct pipe_texture **) textures, +gsurf-sequence_number, (struct pipe_texture **) textures, gsurf-base.Width, gsurf-base.Height); for (i = 0; i gbuf-num_atts; i++) { struct pipe_texture *pt = textures[i]; @@ -599,6 +596,16 @@ egl_g3d_destroy_context(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx) return EGL_TRUE; } +static EGLBoolean +init_surface_geometry(_EGLSurface *surf) +{ + struct egl_g3d_surface *gsurf = egl_g3d_surface(surf); + + return gsurf-native-validate(gsurf-native, NULL, 0, + gsurf-sequence_number, NULL, + gsurf-base.Width, gsurf-base.Height); +} + static _EGLSurface * egl_g3d_create_window_surface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, EGLNativeWindowType win, @@ -626,8 +633,7 @@ egl_g3d_create_window_surface(_EGLDriver *drv, _EGLDisplay *dpy, return NULL; } - if (!gsurf-native-validate(gsurf-native, NULL, 0, NULL, -gsurf-base.Width, gsurf-base.Height)) { + if (!init_surface_geometry(gsurf-base)) { gsurf-native-destroy(gsurf-native); free(gsurf); return NULL; @@ -667,8 +673,7 @@ egl_g3d_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *dpy, return NULL; } - if (!gsurf-native-validate(gsurf-native, NULL, 0, NULL, -gsurf-base.Width, gsurf-base.Height)) { + if (!init_surface_geometry(gsurf-base)) { gsurf-native-destroy(gsurf-native); free(gsurf); return NULL; @@ -706,6 +711,12 @@
Re: [Mesa3d-dev] Plans for EGL
On Mon, 2010-01-11 at 20:23 -0800, Chia-I Wu wrote: Hi all, I just pushed a new EGL driver (egl_g3d) to master. The new driver is located at src/gallium/state_trackers/egl_g3d/. When built, it provides .a archives that are later linked to by src/gallium/winsys/drm/hw/egl_g3d/ to provide the final EGL drivers loadable by libEGL. This new driver supports mixed client APIs (OpenGL, OpenVG, and OpenGL ES). It supports both HW/SW rendering on X11 and supports EGL_MESA_screen_surface on bare KMS. The goal of this driver is to provide _the_ EGL driver for Gallium architecture. I am working on merging opengl-es-v2 branch. When that is done, I plan to work on preparing EGL for easy/wide adoption. The specific items I have right now are * Write up documentation * Remove unused/non-working EGL drivers * Remove drivers that are deprecated by egl_g3d * Automatic driver selection (like DRI) * Re-organize EGL demos The drivers to be removed are * Unused * src/egl/drivers/demo/ * src/egl/drivers/xdri/ * Non-working * src/egl/drivers/dri/ * src/mesa/drivers/dri/fb/fb_egl.c * src/mesa/drivers/dri/radeon/server/radeon_egl.c * src/mesa/drivers/dri/r600/server/radeon_egl.c * src/mesa/drivers/dri/r300/server/radeon_egl.c * src/mesa/drivers/dri/r200/server/radeon_egl.c * Deprecated by egl_g3d * src/gallium/state_trackers/egl/ * src/gallium/winsys/egl_xlib/ If anyone has any concern or is actively using any of the driver listed above, please let me konw. The removal, especially of those in the last category, is still a plan, and is supposed to be several weeks away. If anyone has any trouble using/testing egl_g3d, please let me know too. As for the re-organization, I want to move various demos using EGL to progs/egl/. The directory structure will be like progs/egl/opengl progs/egl/opengles1 progs/egl/opengles2 progs/egl/openvg There will be simple window-system glue code that the demos may use. Simple demos who use the glue code will be able to run on multiple window systems like X11 and bare KMS. There are also plans for new features and internal cleanups. But I want to start with attracting new users/developers first, as EGL is almost ready to shine. This all sounds great to me. I'm looking forward to seeing this happen. Keith -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
[Mesa3d-dev] [PATH] Add double opcodes to TGSI Revision 2
These patches add support to double opcodes as discussed in mail list. The opcodes create are: movd, ddiv, dadd, dseq, dmax, dmin, dmul, dmuladd, drcp and dslt. They are used like suggested by Zack: MOVD A.xy, C.xy, c.xy where x is the lsb and y is the msb. There are still missing some opcodes being implemented(i will send the code soon), they are: dfrac, dfracexp, dldexp and convert between float and double. Revision 2 update: In revision 2 we remove the create_double function it is not used, change the MULADD opcode to DMAD and add a documentation to new opcodes. Michal: i am seeing the double opcode branch i can move the opcode codes to use the exec_double_binary/unary Igor From 83f895a235e76d8d556411fd0154650a2598acd0 Mon Sep 17 00:00:00 2001 From: Igor Oliveira igor.olive...@openbossa.org Date: Tue, 12 Jan 2010 07:40:50 -0400 Subject: [PATCH 1/3] tgsi: add double opcodes --- src/gallium/include/pipe/p_shader_tokens.h | 13 - 1 files changed, 12 insertions(+), 1 deletions(-) diff --git a/src/gallium/include/pipe/p_shader_tokens.h b/src/gallium/include/pipe/p_shader_tokens.h index 550e2ab..789edaa 100644 --- a/src/gallium/include/pipe/p_shader_tokens.h +++ b/src/gallium/include/pipe/p_shader_tokens.h @@ -319,7 +319,18 @@ struct tgsi_property_data { #define TGSI_OPCODE_CASE142 #define TGSI_OPCODE_DEFAULT 143 #define TGSI_OPCODE_ENDSWITCH 144 -#define TGSI_OPCODE_LAST145 + +#define TGSI_OPCODE_MOVD145 +#define TGSI_OPCODE_DDIV146 +#define TGSI_OPCODE_DADD147 +#define TGSI_OPCODE_DSEQ148 +#define TGSI_OPCODE_DMAX149 +#define TGSI_OPCODE_DMIN150 +#define TGSI_OPCODE_DMUL151 +#define TGSI_OPCODE_DMAD152 +#define TGSI_OPCODE_DRCP153 +#define TGSI_OPCODE_DSLT154 +#define TGSI_OPCODE_LAST155 #define TGSI_SAT_NONE0 /* do not saturate */ #define TGSI_SAT_ZERO_ONE1 /* clamp to [0,1] */ -- 1.6.3.3 From 91d50bdbd6f35af9a0e342c46c8ee5fbe0910421 Mon Sep 17 00:00:00 2001 From: Igor Oliveira igor.olive...@openbossa.org Date: Tue, 12 Jan 2010 07:41:08 -0400 Subject: [PATCH 2/3] tgsi: implement double opcodes --- src/gallium/auxiliary/tgsi/tgsi_exec.c | 230 +- src/gallium/auxiliary/tgsi/tgsi_info.c | 10 + src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h | 11 +- 3 files changed, 249 insertions(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c index f43233b..4f2b29c 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_exec.c +++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c @@ -69,6 +69,15 @@ #define TILE_BOTTOM_LEFT 2 #define TILE_BOTTOM_RIGHT 3 +union tgsi_double { + struct int_double { + int lsb; + int msb; + double d; + } id; + double d; +}; + static void micro_abs(union tgsi_exec_channel *dst, const union tgsi_exec_channel *src) @@ -380,6 +389,184 @@ micro_trunc(union tgsi_exec_channel *dst, dst-f[3] = (float)(int)src-f[3]; } +static void +micro_movd(union tgsi_exec_channel *dst, + const union tgsi_exec_channel *src) +{ + union tgsi_double dsrc, ddst; + + dsrc.id.lsb = src-u[0]; + dsrc.id.msb = src-u[1]; + + ddst.d = dsrc.d; + + dst-u[0] = ddst.id.lsb; + dst-u[1] = ddst.id.msb; +} + +static void +micro_dadd(union tgsi_exec_channel *dst, + const union tgsi_exec_channel *src) +{ + union tgsi_double dsrc0, dsrc1, ddst; + + dsrc0.id.lsb = src[0].u[0]; + dsrc0.id.msb = src[0].u[1]; + + dsrc1.id.lsb = src[1].u[0]; + dsrc1.id.msb = src[1].u[1]; + + ddst.d = dsrc0.d * dsrc1.d; + + dst-u[0] = ddst.id.lsb; + dst-u[1] = ddst.id.msb; +} + +static void +micro_ddiv(union tgsi_exec_channel *dst, + const union tgsi_exec_channel *src) +{ + union tgsi_double dsrc0, dsrc1, ddst; + + dsrc0.id.lsb = src[0].u[0]; + dsrc0.id.msb = src[0].u[1]; + + dsrc1.id.lsb = src[1].u[0]; + dsrc1.id.msb = src[1].u[1]; + + if (dsrc1.d != 0) { + ddst.d = dsrc0.d/dsrc1.d; + dst-u[0] = ddst.id.lsb; + dst-u[1] = ddst.id.msb; + } +} + +static void +micro_dseq(union tgsi_exec_channel *dst, + const union tgsi_exec_channel *src) +{ + union tgsi_double dsrc0, dsrc1, ddst; + + dsrc0.id.lsb = src[0].u[0]; + dsrc0.id.msb = src[0].u[1]; + + dsrc1.id.lsb = src[1].u[0]; + dsrc1.id.msb = src[1].u[1]; + + ddst.d = dsrc0.d == dsrc1.d ? 1.0F : 0.0F; + + dst-u[0] = ddst.id.lsb; + dst-u[1] = ddst.id.msb; +} + +static void +micro_dslt(union tgsi_exec_channel *dst, + const union tgsi_exec_channel *src) +{ + union tgsi_double dsrc0, dsrc1, ddst; + + dsrc0.id.lsb = src[0].u[0]; + dsrc0.id.msb = src[0].u[1]; + + dsrc1.id.lsb = src[1].u[0]; + dsrc1.id.msb = src[1].u[1]; + + ddst.d = dsrc0.d dsrc1.d ? 1.0F : 0.0F; + + dst-u[0] =
Re: [Mesa3d-dev] [PATH] Add double opcodes to TGSI Revision 2
Igor Oliveira wrote on 2010-01-12 12:52: Michal: i am seeing the double opcode branch i can move the opcode codes to use the exec_double_binary/unary Igor, Yes, that was my intention. It would be great if you looked at what has been done in that branch and for each new opcode provide reference implementation in tgsi_exec.c, document it in gallium/docs/source/tgsi.rst and it would super cool if you could add a unit test in python/tests/regress/fragment-shader. Thanks. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
[Mesa3d-dev] [Bug 26003] New: incorrect rendering in celestia; unsupported opcode 13
http://bugs.freedesktop.org/show_bug.cgi?id=26003 Summary: incorrect rendering in celestia; unsupported opcode 13 Product: Mesa Version: 7.6 Platform: All OS/Version: Linux (All) Status: NEW Severity: normal Priority: medium Component: Mesa core AssignedTo: mesa3d-dev@lists.sourceforge.net ReportedBy: s...@robots.org.uk The rendering of the planet Earth in Celestia is incorrect; see the attached screenshot. The following message is produced: Mesa 7.6.1 implementation error: Unsupported opcode 13 (CMP) in vertex shader Please report at bugzilla.freedesktop.org I'm using intel 2.9.1, xserver 7.4, drm 2.4.15. -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
[Mesa3d-dev] [Bug 26003] incorrect rendering in celestia; unsupported opcode 13
http://bugs.freedesktop.org/show_bug.cgi?id=26003 --- Comment #1 from Sam Morris s...@robots.org.uk 2010-01-12 04:24:26 PST --- Created an attachment (id=32584) -- (http://bugs.freedesktop.org/attachment.cgi?id=32584) screenshot from celestia -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
[Mesa3d-dev] [Bug 26003] incorrect rendering in celestia; unsupported opcode 13
http://bugs.freedesktop.org/show_bug.cgi?id=26003 --- Comment #2 from Sam Morris s...@robots.org.uk 2010-01-12 04:24:53 PST --- Created an attachment (id=32585) -- (http://bugs.freedesktop.org/attachment.cgi?id=32585) xorg log -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
[Mesa3d-dev] [Bug 26003] incorrect rendering in celestia; unsupported opcode 13
http://bugs.freedesktop.org/show_bug.cgi?id=26003 --- Comment #3 from Sam Morris s...@robots.org.uk 2010-01-12 06:02:26 PST --- Created an attachment (id=32590) -- (http://bugs.freedesktop.org/attachment.cgi?id=32590) comparison screenshot with SW rendering looks better, though it's still missing clouds -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
[Mesa3d-dev] [Bug 26003] incorrect rendering in celestia; unsupported opcode 13
http://bugs.freedesktop.org/show_bug.cgi?id=26003 --- Comment #4 from Sam Morris s...@robots.org.uk 2010-01-12 06:18:18 PST --- This is resolved with 7.7. The clouds are still missing, however. -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
[Mesa3d-dev] [Bug 26003] incorrect rendering in celestia; unsupported opcode 13
http://bugs.freedesktop.org/show_bug.cgi?id=26003 Sam Morris s...@robots.org.uk changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #5 from Sam Morris s...@robots.org.uk 2010-01-12 06:23:02 PST --- Ignore my last command. Clouds were disabled. Sorry for the noise! -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] Gallium feature levels
On 11.01.2010 22:03, Zack Rusin wrote: On Monday 11 January 2010 15:17:00 Roland Scheidegger wrote: - extra mirror wrap modes - i don't think mirror repeat was ever supported and mirror clamp was removed in d3d10 but it seems that some hardware kept support for those Mirror repeat is a core feature in GL since 1.4 hence we can't just drop it. I wasn't suggesting that. I was just pointing out what happens with it from the D3D side. I think all hardware we'd ever care about would support it. mirror clamp / mirror clamp to edge are only an extension, though (ATI_texture_mirror_once). (I think the dx mirror once definition is probably mirror_clamp_to_edge in opengl parlance). That's possible. As mentioned I'm not really sure what to do with this feature. - shadow maps - it's more of an researched guess since it's largely based on a format support, but as far as i can tell all d3d10 hardware supports it, earlier it varies (e.g. nvidia did it for ages) Required for GL 1.4. I thought it was pretty much required for d3d sm2.0, though you're right you could probably just not support the texture format there. Anyway, most hardware should support it, I believe even those which didn't really supported it at DX9 SM 2.0 time supported it (chips like radeon r300 lacked the hw to do the comparison in the texture unit, but it can be more or less easily implemented in the pixel shader, though the implementation will suck as it certainly won't do PCF just use some point sampling version - unless you're willing to do a much more complex implementation in the pixel shader, but then on this generation of hardware you might exceed maximum shader length). I believe all hardware supporting SM 2.0 could at least do some sampling of depth textures, though possibly only 16 bit and I'm not sure filtering worked in all cases. Yes, but the issue is that I'm not sure how to represent it from a feature level case. Are you saying we should just enable it for all feature levels? That'd be nice. Hmm, maybe. I think the other stuff is acceptable. Take a look at the docs and let me know what you think. What is feature level 1 useful for? I thought we'd really wanted DX9 level functionality as a bare minimum. GL2.x certainly needs cards supporting shader model 2 (and that is a cheat, in reality it would be shader model 3). The main issue was having something without hardware vs in the feature levels. It was supposed to be whatever the current i915 driver currently supports, but yea, I think it doesn't make sense and level 2 should be minumum. Also, I don't quite get the shader model levels. I thought there were mainly two different DX9 versions, one with sm 2.0 the other with 3.0, with noone caring about other differences (as most stuff was cappable anyway). However, you've got 3 and all of them have 2.0 shader model? As mentioned this is based on the D3D feature level concept. It's the first link I put in the the references: http://msdn.microsoft.com/en-us/library/ee422086(VS.85).aspx#Overview It's there because that's what Microsoft defined as feature level and I'm assuming it's because they had a good need for it :) Ah, that's why it doesn't make much sense :-). I'm not sure what requirements got them to these levels. I definitely think those 3 dx9 levels are very odd and don't even make sense for d3d only, much less for gallium. For example, requires at least max aniso 16? You got to be kidding, aniso spec is so fuzzy you can pass any cheap point filter as compliant (well almost) anyway, so it doesn't make any sense (plus, this only really enhances filtering quality, it makes absolutely zero difference for writing applications). I think the retrofit of 9_1, 9_2, 9_3 to some arbitrary DX9 versions doesn't match hardware really neither. The most distinguishable feature of DX9.0c (which was the last version IIRC) was definitely SM 3.0, but of course like everything else (multiple render targets, etc.) it was optional. I think for gallium it would make way more sense to expose only 2 feature levels - basically drop 9_1, and additionally bump 9_3 to include SM 3.0 (I wonder if that's not just a typo there, after all the model is called ps_4_0_level_9_3 unlike the others which are called 9_1 only). Though granted nv20/25 can't do separate alpha blend (but it can't do fragment shaders neither really so I don't know how well that driver is ever going to work), i915 may not be able to do occlusion queries (not sure if hw can't do it but the current driver doesn't implement it), everybody (I think) can do mirror_once, and I don't know what overlapping vertex elements are. More comments below. +static const enum pipe_feature_level +i915_feature_level(struct pipe_screen *screen) +{ + return PIPE_FEATURE_LEVEL_1; +} What's the reason this is not feature level 2? Yea, I was winging it for all the drivers because I couldn't be bothered to do a
Re: [Mesa3d-dev] Plans for EGL
On 12 jan 2010, at 04.23, Chia-I Wu wrote: Hi all, I just pushed a new EGL driver (egl_g3d) to master. The new driver is located at src/gallium/state_trackers/egl_g3d/. When built, it provides .a archives that are later linked to by src/gallium/winsys/ drm/hw/egl_g3d/ to provide the final EGL drivers loadable by libEGL. This new driver supports mixed client APIs (OpenGL, OpenVG, and OpenGL ES). It supports both HW/SW rendering on X11 and supports EGL_MESA_screen_surface on bare KMS. The goal of this driver is to provide _the_ EGL driver for Gallium architecture. I am working on merging opengl-es-v2 branch. When that is done, I plan to work on preparing EGL for easy/wide adoption. The specific items I have right now are * Write up documentation * Remove unused/non-working EGL drivers * Remove drivers that are deprecated by egl_g3d * Automatic driver selection (like DRI) * Re-organize EGL demos The drivers to be removed are * Unused * src/egl/drivers/demo/ * src/egl/drivers/xdri/ I think that at least demo should remain if for nothing more then to serve as a empty skeleton for anybody wishing to make their own driver. * Non-working * src/egl/drivers/dri/ Having the dri driver working would be desirable since it allows you to use none gallium drivers standalone. * src/mesa/drivers/dri/fb/fb_egl.c * src/mesa/drivers/dri/radeon/server/radeon_egl.c * src/mesa/drivers/dri/r600/server/radeon_egl.c * src/mesa/drivers/dri/r300/server/radeon_egl.c * src/mesa/drivers/dri/r200/server/radeon_egl.c * Deprecated by egl_g3d * src/gallium/state_trackers/egl/ * src/gallium/winsys/egl_xlib/ If anyone has any concern or is actively using any of the driver listed above, please let me konw. The removal, especially of those in the last category, is still a plan, and is supposed to be several weeks away. If anyone has any trouble using/testing egl_g3d, please let me know too. I'm okay with removing s/g/st/egl and moving egl_g3d to s/g/st/egl. Actually I'm more then okay with the move since I'm not a big fan of the name name egl_g3d. As for the re-organization, I want to move various demos using EGL to progs/egl/. The directory structure will be like progs/egl/opengl progs/egl/opengles1 progs/egl/opengles2 progs/egl/openvg Also progs/egl/interop once we get inter API communication working. There will be simple window-system glue code that the demos may use. Simple demos who use the glue code will be able to run on multiple window systems like X11 and bare KMS. There are also plans for new features and internal cleanups. But I want to start with attracting new users/developers first, as EGL is almost ready to shine. Nice work! Can you write down a list of what drivers that the new code produce? Cheers Jakob. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] [PATCH] Add EGL/GLX extension for direct Gallium access
I will reply to the parts that I am more familiar with. On Tue, Jan 12, 2010 at 12:23 PM, Luca Barbieri l...@luca-barbieri.com wrote: Regardless of my personal preference as expressed, there are some minor issues in the EGL part of the patch. One is that, it lifts certain restrictions required by EGL 1.4 by commenting out the code (e.g. in eglSwapBuffers). It should check if EGL_MESA_gallium is supported and decide what to do. Is that restriction (the surface being swapped by eglSwapBuffers must be bound to the current context) actually in the spec? The man page at http://www.khronos.org/opengles/documentation/opengles1_0/html/eglSwapBuffers.html doesn't talk about contexts at all, and GLX doesn't have that restriction. As far as merging my patches, great, but there is some complexity involved, since there are various versions of them. First of all, the Gallium framework/programs code is now independent of the extensions as it contains its own main loop with DRI2 and KMS support, and can thus be merged now, independently of the extension and/or egl_g3d. This is quite useful for writing Gallium demos/tool in C: you call its init_and_render function passing a draw function pointer, and it calls back draw with a pipe_context and pipe_framebuffer_state you can use for drawing. Using it from Python would however require some adaptations. As for the extension, this is the current situation: 1. The orginal GLX and EGL patches. There are based on egl_glx, egl_softpipe and the GLX/DRI stack. They implement a GetGalliumSurfaces call which pulls surfaces out of an st_framebuffer. This makes them somewhat invasive and is inelegant since there is a dependency on the state tracker. 2. The EGL patch based on egl_g3d. This patch is much cleaner, thanks to egl_g3d's design, which is much better than the existing one as it separates the API implementation (in egl_g3d.c) from the abstraction of the underlying rendering system (the native_display/native_surface/native_config classes). This allows a very simple implementation of the Gallium extension. However, the patch I posted depends on changes to native_surface which I think are beneficial, but I'm not sure if Chia-I Wu likes. The sequence number change? I think we can work it out soon in the other thread. Note that this actually changes the extension interface, which now has a GetGalliumTextures function instead of GetGalliumSurfaces, that mimics Chia-I Wu's design of native_surface-validate, which I believe is superior to my initial interface design. I am ok with EGL_MESA_gallium you proposed. My proposal is also easy to implement, but since I am not working on it, I don't want to hinder your work (which is promising!). Regarding the patches, I would like to see * the extension be compile time (#ifdef EGL_MESA_gallium) or runtime checked (dpy-Extensions.MESA_gallium) * all new types are prefixed by EGL and suffixed by Mesa. E.g., EGLg3dContextMesa. The naming rule is according to http://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image.txt 3. A new GLX implementation based on the egl_g3d native core, including a GLX_MESA I sent a preview of this to Chia-I Wu and have since made it work with all applications except single-buffered ones (due to egl_g3d dropping single-buffered visuals: this should be asily fixable), including compiz. I'll post a patch to the list soon with the code. Using this means however replacing (in actual use, not in the repository, of course) all the GLX/DRI stack with a new Gallium-only GLX implementation. My suggestion for this is still http://www.mail-archive.com/mesa3d-dev@lists.sourceforge.net/msg10541.html I don't think egl_g3d can replace the stock libGL because, at least, it lacks indirect rendering. Longer term, you might consider revive the Xegl project. Thus, of all the code involved, my new Gallium programs code and Chia-I Wu's egl_g3d can be merged now, as they have no dependencies and don't affect the existing code. As for the extensions, they somewhat depend on whether we decide to go with egl_g3d or not. If egl_g3d becomes the default EGL and GLX layer for Gallium drivers, then the egl_g3d versions of the extensions and the overall codebase are much cleaner. Otherwise, it's easy to add glXGetGalliumScreen and glXCreateGalliumContext on top of the existing code but getting surfaces/textures is a bit more ugly. Also, it may be a good idea to update the old patches to expose the new glXGetGalliumTextures with user-specified attachments rather than the old and uglier GetGaliumSurfaces interface. What do you think? -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to
Re: [Mesa3d-dev] Gallium feature levels
On Tue, Jan 12, 2010 at 9:44 AM, Keith Whitwell kei...@vmware.com wrote: On Tue, 2010-01-12 at 06:33 -0800, Roland Scheidegger wrote: Profile 7 (2009)6 (2008) 5 (2006)4 (2004)3 (2003)2 (2002) 1 (2000) Fragment Shader Yes Yes Yes Yes Yes Yes Yes DX 7 didn't have any shader model IIRC. DX8/8.1 introduced shader models 1.0-1.3/1.4. Yea, that level should be gone. Though thinking about this, maybe we should keep a level below lowest dx9 feature level, since gallium drivers exist which are pretty low on the feature scale (like the nv04/10/20). I don't know how well they'll ever going to work, since they'd need the fixed function fragment operations out of tgsi, but maybe we shouldn't prevent it by forcing them to announce support of fragment shaders. The base level of gallium functionality included fragment shaders from the start, these early nv drivers don't really change that. In my view these are a speculative bet that with a lot of effort it is possible to turn shaders back into fixed-function, but supporting that isn't a design goal for gallium as a whole. Keith Just my opinion, I wouldn't count on nv04-nv20 actually staying in gallium. At some point we wanted to experiment with shaders on fixed func, but I don't think anyone is really motivated or optimistic that it will turn out well. They're already rotting as it is. Francisco Jerez is working on a classic Mesa driver for these and if/when they're worth pushing to master I'd expect the gallium drivers to be axed. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] Plans for EGL
On Tue, Jan 12, 2010 at 10:52 PM, Jakob Bornecrantz ja...@vmware.com wrote: On 12 jan 2010, at 04.23, Chia-I Wu wrote: * Write up documentation * Remove unused/non-working EGL drivers * Remove drivers that are deprecated by egl_g3d * Automatic driver selection (like DRI) * Re-organize EGL demos The drivers to be removed are * Unused * src/egl/drivers/demo/ * src/egl/drivers/xdri/ I think that at least demo should remain if for nothing more then to serve as a empty skeleton for anybody wishing to make their own driver. The idea is that src/egl/drivers/glx/ has already provided a simple EGL driver that works. The demo driver, though compiles, is outdated or may outdate over time since it is not a working driver that can be verified. * Non-working * src/egl/drivers/dri/ Having the dri driver working would be desirable since it allows you to use none gallium drivers standalone. The only problem with the dri driver is that no one is maintaining it. I agree that there might still interests in loading DRI drivers from EGL drivers. I wrote one for Android. How about we keep the xdri driver and leave dri driver in the git history? The xdri driver * dlopen()s DRI1/DRI2 drivers * talks with the X server using DRI1/DRI2 (the protocol) to implement functions like getBuffersWithFormat * works well The first point is the key idea shared by both dri and xdri drivers. * src/mesa/drivers/dri/fb/fb_egl.c * src/mesa/drivers/dri/radeon/server/radeon_egl.c * src/mesa/drivers/dri/r600/server/radeon_egl.c * src/mesa/drivers/dri/r300/server/radeon_egl.c * src/mesa/drivers/dri/r200/server/radeon_egl.c * Deprecated by egl_g3d * src/gallium/state_trackers/egl/ * src/gallium/winsys/egl_xlib/ If anyone has any concern or is actively using any of the driver listed above, please let me konw. The removal, especially of those in the last category, is still a plan, and is supposed to be several weeks away. If anyone has any trouble using/testing egl_g3d, please let me know too. I'm okay with removing s/g/st/egl and moving egl_g3d to s/g/st/egl. Actually I'm more then okay with the move since I'm not a big fan of the name name egl_g3d. Thanks. I will do the rename after the removal :P As for the re-organization, I want to move various demos using EGL to progs/egl/. The directory structure will be like progs/egl/opengl progs/egl/opengles1 progs/egl/opengles2 progs/egl/openvg Also progs/egl/interop once we get inter API communication working. Yes. Actually, inter API communication should be working with egl_g3d. It just lacks demos. There will be simple window-system glue code that the demos may use. Simple demos who use the glue code will be able to run on multiple window systems like X11 and bare KMS. There are also plans for new features and internal cleanups. But I want to start with attracting new users/developers first, as EGL is almost ready to shine. Nice work! Can you write down a list of what drivers that the new code produce? When configured with --egl-native-displays=x11,kms, egl_g3d will give libeglx11.a and libeglkms.a. They are used by winsys/drm/ to give egl_x11_i965.so egl_x11_i915.so egl_x11_nouveau.so egl_x11_r300.so egl_x11_vmwgfx.so egl_kms_i965.so egl_kms_i915.so egl_kms_nouveau.so egl_kms_r300.so egl_kms_vmwgfx.so I only tested the i915 ones. Luca reported success with nouveau ones. The others are only compile tested. Automatic driver selection is also part of the plan. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
[Mesa3d-dev] [RFC] instanced-arrays branch
Keith, I would like to merge this branch to master soon. It adds new entrypoints to pipe_context -- draw_arrays_instanced() and draw_elements_instanced(). A new system value is introduced to TGSI that allows vertex shaders to access current instance ID. The new entrypoints are implemented in draw module, and softpipe driver has been properly adjusted for that. There is no capability bit defined for that -- I wasn't sure whether we still want to go this route. Please review, thanks. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] [git] Support for new DRI2 protocol
On Fri, 8 Jan 2010 12:00:47 -0800 Jesse Barnes jbar...@virtuousgeek.org wrote: DRI2 now has support for swapbuffers, OML_sync_control and events. There's a git tree at git://people.freedesktop.org/~jbarnes/mesa with support for the new requests that I'd like to push into Mesa master. Can people take a look at make sure I don't have anything horribly wrong? I've tested it against both old and new X servers (that is, servers with and w/o support for the new requests) and things seem solid, so I think it's ready to go. Building does require current dri2proto bits (all of which are in dri2proto master); I should probably spin a release of that just to make things easy. I pushed into master after Jakob and Kristian had a look yesterday. I had to push a small fix afterward: mesa's autoconf wasn't checking for the glproto version, but now that we require 1.4.11 to build I added a check for it. The pull also included a check for dri2proto 2.2, which is required as well. -- Jesse Barnes, Intel Open Source Technology Center -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] [PATCH] New GLX API implementation for Gallium over egl_g3d
As far as end user benefits, currently there is the ability to switch between the DRM Gallium driver and softpipe with an environment variable (the DRI stack has a similar feature, but with swrast), and a reduction of X server usage/roundtrips as it doesn't make any GLX calls except for initialization. On the developer side, it's a cleaner and simpler design than the existing DRI stack for the case of Gallium drivers, and can replace state_trackers/glx/xlib. It also serves as a second user, other than EGL, for egl_g3d's display abstraction. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] [PATCH] Add EGL/GLX extension for direct Gallium access
Using this means however replacing (in actual use, not in the repository, of course) all the GLX/DRI stack with a new Gallium-only GLX implementation. My suggestion for this is still http://www.mail-archive.com/mesa3d-dev@lists.sourceforge.net/msg10541.html I don't think egl_g3d can replace the stock libGL because, at least, it lacks indirect rendering. Longer term, you might consider revive the Xegl project. This can be solved by making libGL load a GLX driver. One of them would be egl_g3d, and another the existing code for indirect rendering and legacy DRI. Or possibly some newly written XCB-based indirect rendering GLX driver, if anyone wants to do that. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] Plans for EGL
On 12 jan 2010, at 16.16, Chia-I Wu wrote: On Tue, Jan 12, 2010 at 10:52 PM, Jakob Bornecrantz ja...@vmware.com wrote: On 12 jan 2010, at 04.23, Chia-I Wu wrote: * Write up documentation * Remove unused/non-working EGL drivers * Remove drivers that are deprecated by egl_g3d * Automatic driver selection (like DRI) * Re-organize EGL demos The drivers to be removed are * Unused * src/egl/drivers/demo/ * src/egl/drivers/xdri/ I think that at least demo should remain if for nothing more then to serve as a empty skeleton for anybody wishing to make their own driver. The idea is that src/egl/drivers/glx/ has already provided a simple EGL driver that works. The demo driver, though compiles, is outdated or may outdate over time since it is not a working driver that can be verified. Hmm, maybe you are right. But it doesn't cost anything to keep it around. * Non-working * src/egl/drivers/dri/ Having the dri driver working would be desirable since it allows you to use none gallium drivers standalone. The only problem with the dri driver is that no one is maintaining it. I agree that there might still interests in loading DRI drivers from EGL drivers. I wrote one for Android. How about we keep the xdri driver and leave dri driver in the git history? The xdri driver * dlopen()s DRI1/DRI2 drivers * talks with the X server using DRI1/DRI2 (the protocol) to implement functions like getBuffersWithFormat * works well The first point is the key idea shared by both dri and xdri drivers. The xdri driver is pretty much deprecated by the glx driver as it does pretty much the same thing. The dri is more interesting then the xdri driver since it is standalone from X. * src/mesa/drivers/dri/fb/fb_egl.c * src/mesa/drivers/dri/radeon/server/radeon_egl.c * src/mesa/drivers/dri/r600/server/radeon_egl.c * src/mesa/drivers/dri/r300/server/radeon_egl.c * src/mesa/drivers/dri/r200/server/radeon_egl.c * Deprecated by egl_g3d * src/gallium/state_trackers/egl/ * src/gallium/winsys/egl_xlib/ If anyone has any concern or is actively using any of the driver listed above, please let me konw. The removal, especially of those in the last category, is still a plan, and is supposed to be several weeks away. If anyone has any trouble using/testing egl_g3d, please let me know too. I'm okay with removing s/g/st/egl and moving egl_g3d to s/g/st/egl. Actually I'm more then okay with the move since I'm not a big fan of the name name egl_g3d. Thanks. I will do the rename after the removal :P As for the re-organization, I want to move various demos using EGL to progs/egl/. The directory structure will be like progs/egl/opengl progs/egl/opengles1 progs/egl/opengles2 progs/egl/openvg Also progs/egl/interop once we get inter API communication working. Yes. Actually, inter API communication should be working with egl_g3d. It just lacks demos. Ah cool, I'm looking forwards to when we get EGLImage. There will be simple window-system glue code that the demos may use. Simple demos who use the glue code will be able to run on multiple window systems like X11 and bare KMS. There are also plans for new features and internal cleanups. But I want to start with attracting new users/developers first, as EGL is almost ready to shine. Nice work! Can you write down a list of what drivers that the new code produce? When configured with --egl-native-displays=x11,kms, egl_g3d will give libeglx11.a and libeglkms.a. They are used by winsys/drm/ to give Just a nitpick --egl-native-displays should be somehow marked as being gallium only as the native display interface is dependent on gallium, also why do you have to include egl_g3d there shouldn't that just be common? egl_x11_i965.so egl_x11_i915.so egl_x11_nouveau.so egl_x11_r300.so egl_x11_vmwgfx.so egl_kms_i965.so egl_kms_i915.so egl_kms_nouveau.so egl_kms_r300.so egl_kms_vmwgfx.so I only tested the i915 ones. Luca reported success with nouveau ones. The others are only compile tested. Automatic driver selection is also part of the plan. Ok cool stuff. Cheers Jakob. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] Mesa (glsl-pp-rework-2): scons: Get GLSL code building correctly when cross compiling.
On Mon, 2010-01-11 at 15:28 -0800, Stephan Raue wrote: Hi all, Am 10.12.2009 17:36, schrieb José Fonseca: On Thu, 2009-12-10 at 08:31 -0800, Jose Fonseca wrote: Module: Mesa Branch: glsl-pp-rework-2 Commit: 491f384c3958067e6c4c994041f5d8d413b806bc URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=491f384c3958067e6c4c994041f5d8d413b806bc Author: José Fonsecajfons...@vmware.com Date: Thu Dec 10 16:29:04 2009 + scons: Get GLSL code building correctly when cross compiling. This is quite messy. GLSL code has to be built twice: one for the host OS, another for the target OS. is there also an solution for building without scons? i am get the follow when i am crosscompile for x86_64 target with i386 host: gmake[3]: Entering directory `/home/stephan/projects/openelec/build.OpenELEC-intel_x64.x86_64.devel/Mesa-master-20100108/src/mesa/shader/slang/library' ../../../../../src/glsl/apps/compile fragment slang_common_builtin.gc slang_common_builtin_gc.h ../../../../../src/glsl/apps/compile: ../../../../../src/glsl/apps/compile: cannot execute binary file gmake[3]: *** [slang_common_builtin_gc.h] Error 126 gmake[3]: Leaving directory `/home/stephan/projects/openelec/build.OpenELEC-intel_x64.x86_64.devel/Mesa-master-20100108/src/mesa/shader/slang/library' gmake[2]: *** [glsl_builtin] Error 1 gmake[2]: Leaving directory `/home/stephan/projects/openelec/build.OpenELEC-intel_x64.x86_64.devel/Mesa-master-20100108/src/mesa' make[1]: *** [subdirs] Error 1 make[1]: Leaving directory `/home/stephan/projects/openelec/build.OpenELEC-intel_x64.x86_64.devel/Mesa-master-20100108/src' make: *** [default] Error 1 Nope, and I don't think it will be easy, since Mesa's makefile system doesn't support building stuff on a separate dir. Jose -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] [PATCH 3/4] [egl_g3d] Revalidate based on sequence number
Doesn't this make two DRI2GetBuffers protocol calls, in case of a resize? A way to avoid this would be to have the first call update the sequence number and store the buffer names (also destroying textures whose names have changed), and the second call actually creating textures for these names. The cleanest way seems to me to split validate into an update part (with only a sequence number and dimensions output)s and a get textures part (with only a textures output). Or alternatively taking the sequence number as input as I did. Something like: dri2_surface_update(struct native_surface *nsurf, const enum native_attachment *natts, unsigned num_natts, unsigned int *seq_num, int *width, int *height); dri2_surface_get_textures(struct native_surface *nsurf, const enum native_attachment *natts, unsigned num_natts, struct pipe_texture **textures); The alternative is to have validate not call DRI2GetBuffers if textures is not null or when given an additional flag, but that seems more hacky. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] Mesa (glsl-pp-rework-2): scons: Get GLSL code building correctly when cross compiling.
José Fonseca wrote on 2010-01-12 19:51: On Mon, 2010-01-11 at 15:28 -0800, Stephan Raue wrote: Hi all, Am 10.12.2009 17:36, schrieb José Fonseca: On Thu, 2009-12-10 at 08:31 -0800, Jose Fonseca wrote: Module: Mesa Branch: glsl-pp-rework-2 Commit: 491f384c3958067e6c4c994041f5d8d413b806bc URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=491f384c3958067e6c4c994041f5d8d413b806bc Author: José Fonsecajfons...@vmware.com Date: Thu Dec 10 16:29:04 2009 + scons: Get GLSL code building correctly when cross compiling. This is quite messy. GLSL code has to be built twice: one for the host OS, another for the target OS. is there also an solution for building without scons? i am get the follow when i am crosscompile for x86_64 target with i386 host: gmake[3]: Entering directory `/home/stephan/projects/openelec/build.OpenELEC-intel_x64.x86_64.devel/Mesa-master-20100108/src/mesa/shader/slang/library' ../../../../../src/glsl/apps/compile fragment slang_common_builtin.gc slang_common_builtin_gc.h ../../../../../src/glsl/apps/compile: ../../../../../src/glsl/apps/compile: cannot execute binary file gmake[3]: *** [slang_common_builtin_gc.h] Error 126 gmake[3]: Leaving directory `/home/stephan/projects/openelec/build.OpenELEC-intel_x64.x86_64.devel/Mesa-master-20100108/src/mesa/shader/slang/library' gmake[2]: *** [glsl_builtin] Error 1 gmake[2]: Leaving directory `/home/stephan/projects/openelec/build.OpenELEC-intel_x64.x86_64.devel/Mesa-master-20100108/src/mesa' make[1]: *** [subdirs] Error 1 make[1]: Leaving directory `/home/stephan/projects/openelec/build.OpenELEC-intel_x64.x86_64.devel/Mesa-master-20100108/src' make: *** [default] Error 1 Nope, and I don't think it will be easy, since Mesa's makefile system doesn't support building stuff on a separate dir. Yes, and that's a good reason to go back to how it was before -- regenerating the files and checking them in by a developer that made a change to input files. I will do the necessary changes. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] Build failure of Mesa 7.7 with SCons on Windows
Hi, I never tried to build with MinGW on windows. Only with cross compilation. MSVC linker works around limitations in the command line length by using tempfiles. gnu ld also allows to do the same. So it should be a matter of enabling doing the same trick in SCons/Tool/mingw.py that is done in SCons/Tool/mslink.py, like: env['LINKCOM'] = '${TEMPFILE($LINK $LINKFLAGS /OUT:$TARGET.windows $_LIBDIRFLAGS $_LIBFLAGS $_PDB $SOURCES.windows)}' It's kind of an advanced thing to do. I'd like to help you but I'm quite busy so it will take a while until I get back to you. Alternatively, if you're confortable with linux, cross compiling to MinGW on linux works perfectly well. Jose On Sun, 2010-01-10 at 09:32 -0800, Sir Gallantmon wrote: Hello, I was trying to build Mesa 7.7 with SCons on Windows using TDM-GCC MinGW 4.4.1-tdm-2 with the following output: C:\projects\mesa_7_7scons platform=windows machine=x86 statetrackers=mesa drivers=softpipe,trace winsys=gdi scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... Compiling src\gallium\auxiliary\cso_cache\cso_cache.c ... Compiling src\gallium\auxiliary\cso_cache\cso_context.c ... Compiling src\gallium\auxiliary\cso_cache\cso_hash.c ... Compiling src\gallium\auxiliary\draw\draw_context.c ... Compiling src\gallium\auxiliary\draw\draw_pipe.c ... Compiling src\gallium\auxiliary\draw\draw_pipe_aaline.c ... Compiling src\gallium\auxiliary\draw\draw_pipe_aapoint.c ... Archiving build\windows-x86\gallium\auxiliary\cso_cache \libcso_cache.a ... Compiling src\gallium\auxiliary\draw\draw_pipe_clip.c ... Indexing build\windows-x86\gallium\auxiliary\cso_cache \libcso_cache.a ... Compiling src\gallium\auxiliary\draw\draw_pipe_cull.c ... Compiling src\gallium\auxiliary\draw\draw_pipe_flatshade.c ... Compiling src\gallium\auxiliary\draw\draw_pipe_offset.c ... Compiling src\gallium\auxiliary\draw\draw_pipe_pstipple.c ... Compiling src\gallium\auxiliary\draw\draw_pipe_stipple.c ... Compiling src\gallium\auxiliary\draw\draw_pipe_twoside.c ... Compiling src\gallium\auxiliary\draw\draw_pipe_unfilled.c ... Compiling src\gallium\auxiliary\draw\draw_pipe_util.c ... Compiling src\gallium\auxiliary\draw\draw_pipe_validate.c ... Compiling src\gallium\auxiliary\draw\draw_pipe_vbuf.c ... Compiling src\gallium\auxiliary\draw\draw_pipe_wide_line.c ... Compiling src\gallium\auxiliary\draw\draw_pipe_wide_point.c ... Compiling src\gallium\auxiliary\draw\draw_pt.c ... Compiling src\gallium\auxiliary\draw\draw_pt_elts.c ... Compiling src\gallium\auxiliary\draw\draw_pt_emit.c ... Compiling src\gallium\auxiliary\draw\draw_pt_fetch.c ... Compiling src\gallium\auxiliary\draw\draw_pt_fetch_emit.c ... Compiling src\gallium\auxiliary\draw\draw_pt_fetch_shade_emit.c ... Compiling src\gallium\auxiliary\draw \draw_pt_fetch_shade_pipeline.c ... Compiling src\gallium\auxiliary\draw\draw_pt_post_vs.c ... Compiling src\gallium\auxiliary\draw\draw_pt_util.c ... Compiling src\gallium\auxiliary\draw\draw_pt_varray.c ... Compiling src\gallium\auxiliary\draw\draw_pt_vcache.c ... Compiling src\gallium\auxiliary\draw\draw_vertex.c ... Compiling src\gallium\auxiliary\draw\draw_vs.c ... Compiling src\gallium\auxiliary\draw\draw_vs_aos.c ... Compiling src\gallium\auxiliary\draw\draw_vs_aos_io.c ... Compiling src\gallium\auxiliary\draw\draw_vs_aos_machine.c ... Compiling src\gallium\auxiliary\draw\draw_vs_exec.c ... Compiling src\gallium\auxiliary\draw\draw_vs_llvm.c ... Compiling src\gallium\auxiliary\draw\draw_vs_ppc.c ... Compiling src\gallium\auxiliary\draw\draw_vs_sse.c ... Compiling src\gallium\auxiliary\draw\draw_vs_varient.c ... C:\Python26_w32\Scripts\..\python.exe src\gallium\auxiliary\indices \u_indices_gen.py build\windows-x86\gallium\auxilia ry\indices\u_indices_gen.c Compiling build\windows-x86\gallium\auxiliary\indices \u_indices_gen.c ... C:\Python26_w32\Scripts\..\python.exe src\gallium\auxiliary\indices \u_unfilled_gen.py build\windows-x86\gallium\auxili ary\indices\u_unfilled_gen.c Compiling src\gallium\auxiliary\pipebuffer\pb_buffer_fenced.c ... Compiling build\windows-x86\gallium\auxiliary\indices \u_unfilled_gen.c ... Archiving build\windows-x86\gallium\auxiliary\draw\libdraw.a ... Indexing build\windows-x86\gallium\auxiliary\draw\libdraw.a ... Compiling src\gallium\auxiliary\pipebuffer\pb_buffer_malloc.c ... Compiling src\gallium\auxiliary\pipebuffer\pb_bufmgr_alt.c ... Compiling src\gallium\auxiliary\pipebuffer\pb_bufmgr_cache.c ... Compiling src\gallium\auxiliary\pipebuffer\pb_bufmgr_debug.c ... Compiling src\gallium\auxiliary\pipebuffer\pb_bufmgr_fenced.c ... Compiling src\gallium\auxiliary\pipebuffer\pb_bufmgr_mm.c ... Compiling src\gallium\auxiliary\pipebuffer\pb_bufmgr_ondemand.c ... Compiling src\gallium\auxiliary\pipebuffer\pb_bufmgr_pool.c ...
Re: [Mesa3d-dev] Plans for EGL
On Wed, Jan 13, 2010 at 2:46 AM, Jakob Bornecrantz ja...@vmware.com wrote: On 12 jan 2010, at 16.16, Chia-I Wu wrote: On Tue, Jan 12, 2010 at 10:52 PM, Jakob Bornecrantz ja...@vmware.com wrote: On 12 jan 2010, at 04.23, Chia-I Wu wrote: * Write up documentation * Remove unused/non-working EGL drivers * Remove drivers that are deprecated by egl_g3d * Automatic driver selection (like DRI) * Re-organize EGL demos The drivers to be removed are * Unused * src/egl/drivers/demo/ * src/egl/drivers/xdri/ I think that at least demo should remain if for nothing more then to serve as a empty skeleton for anybody wishing to make their own driver. The idea is that src/egl/drivers/glx/ has already provided a simple EGL driver that works. The demo driver, though compiles, is outdated or may outdate over time since it is not a working driver that can be verified. Hmm, maybe you are right. But it doesn't cost anything to keep it around. The demo driver does not free resources at eglTerminate. It does not initialize surfaces with _eglInitSurface. There may be more, which makes it a bad demo driver. It may be updated, but since the driver won't run, it is hard to find if anything is missing there. * Non-working * src/egl/drivers/dri/ Having the dri driver working would be desirable since it allows you to use none gallium drivers standalone. The only problem with the dri driver is that no one is maintaining it. I agree that there might still interests in loading DRI drivers from EGL drivers. I wrote one for Android. How about we keep the xdri driver and leave dri driver in the git history? The xdri driver * dlopen()s DRI1/DRI2 drivers * talks with the X server using DRI1/DRI2 (the protocol) to implement functions like getBuffersWithFormat * works well The first point is the key idea shared by both dri and xdri drivers. The xdri driver is pretty much deprecated by the glx driver as it does pretty much the same thing. The dri is more interesting then the xdri driver since it is standalone from X. However, it lacks maintenance. Th * src/mesa/drivers/dri/fb/fb_egl.c * src/mesa/drivers/dri/radeon/server/radeon_egl.c * src/mesa/drivers/dri/r600/server/radeon_egl.c * src/mesa/drivers/dri/r300/server/radeon_egl.c * src/mesa/drivers/dri/r200/server/radeon_egl.c * Deprecated by egl_g3d * src/gallium/state_trackers/egl/ * src/gallium/winsys/egl_xlib/ If anyone has any concern or is actively using any of the driver listed above, please let me konw. The removal, especially of those in the last category, is still a plan, and is supposed to be several weeks away. If anyone has any trouble using/testing egl_g3d, please let me know too. I'm okay with removing s/g/st/egl and moving egl_g3d to s/g/st/egl. Actually I'm more then okay with the move since I'm not a big fan of the name name egl_g3d. Thanks. I will do the rename after the removal :P As for the re-organization, I want to move various demos using EGL to progs/egl/. The directory structure will be like progs/egl/opengl progs/egl/opengles1 progs/egl/opengles2 progs/egl/openvg Also progs/egl/interop once we get inter API communication working. Yes. Actually, inter API communication should be working with egl_g3d. It just lacks demos. Ah cool, I'm looking forwards to when we get EGLImage. There will be simple window-system glue code that the demos may use. Simple demos who use the glue code will be able to run on multiple window systems like X11 and bare KMS. There are also plans for new features and internal cleanups. But I want to start with attracting new users/developers first, as EGL is almost ready to shine. Nice work! Can you write down a list of what drivers that the new code produce? When configured with --egl-native-displays=x11,kms, egl_g3d will give libeglx11.a and libeglkms.a. They are used by winsys/drm/ to give Just a nitpick --egl-native-displays should be somehow marked as being gallium only as the native display interface is dependent on gallium, also why do you have to include egl_g3d there shouldn't that just be common? egl_x11_i965.so egl_x11_i915.so egl_x11_nouveau.so egl_x11_r300.so egl_x11_vmwgfx.so egl_kms_i965.so egl_kms_i915.so egl_kms_nouveau.so egl_kms_r300.so egl_kms_vmwgfx.so I only tested the i915 ones. Luca reported success with nouveau ones. The others are only compile tested. Automatic driver selection is also part of the plan. Ok cool stuff. Cheers Jakob. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev
Re: [Mesa3d-dev] [git] Support for new DRI2 protocol
On Tue, 12 Jan 2010 17:37:35 -0800 Dan Nicholson dbn.li...@gmail.com wrote: On Tue, Jan 12, 2010 at 10:21 AM, Jesse Barnes jbar...@virtuousgeek.org wrote: On Fri, 8 Jan 2010 12:00:47 -0800 Jesse Barnes jbar...@virtuousgeek.org wrote: DRI2 now has support for swapbuffers, OML_sync_control and events. There's a git tree at git://people.freedesktop.org/~jbarnes/mesa with support for the new requests that I'd like to push into Mesa master. Can people take a look at make sure I don't have anything horribly wrong? I've tested it against both old and new X servers (that is, servers with and w/o support for the new requests) and things seem solid, so I think it's ready to go. Building does require current dri2proto bits (all of which are in dri2proto master); I should probably spin a release of that just to make things easy. I pushed into master after Jakob and Kristian had a look yesterday. I had to push a small fix afterward: mesa's autoconf wasn't checking for the glproto version, but now that we require 1.4.11 to build I added a check for it. The pull also included a check for dri2proto 2.2, which is required as well. Jesse, for the glproto check, I think it should be folded into the DRI2PROTO pkg-config check so that the CFLAGS get pulled in correctly when building. As it is, we check for the correct glproto, but don't actually use the returned CFLAGS anywhere. I can make the change later, but I don't have access to my box that's actually set up right now. Oh yeah good point. I can try to make that change too unless you beat me to it (I won't have time until tomorrow). Thanks, -- Jesse Barnes, Intel Open Source Technology Center -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] [git] Support for new DRI2 protocol
On Tue, Jan 12, 2010 at 10:21 AM, Jesse Barnes jbar...@virtuousgeek.org wrote: On Fri, 8 Jan 2010 12:00:47 -0800 Jesse Barnes jbar...@virtuousgeek.org wrote: DRI2 now has support for swapbuffers, OML_sync_control and events. There's a git tree at git://people.freedesktop.org/~jbarnes/mesa with support for the new requests that I'd like to push into Mesa master. Can people take a look at make sure I don't have anything horribly wrong? I've tested it against both old and new X servers (that is, servers with and w/o support for the new requests) and things seem solid, so I think it's ready to go. Building does require current dri2proto bits (all of which are in dri2proto master); I should probably spin a release of that just to make things easy. I pushed into master after Jakob and Kristian had a look yesterday. I had to push a small fix afterward: mesa's autoconf wasn't checking for the glproto version, but now that we require 1.4.11 to build I added a check for it. The pull also included a check for dri2proto 2.2, which is required as well. Jesse, for the glproto check, I think it should be folded into the DRI2PROTO pkg-config check so that the CFLAGS get pulled in correctly when building. As it is, we check for the correct glproto, but don't actually use the returned CFLAGS anywhere. I can make the change later, but I don't have access to my box that's actually set up right now. -- Dan -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] Plans for EGL
Sorry, I pressed the wrong button and sent it prematurely. On Wed, Jan 13, 2010 at 8:41 AM, Chia-I Wu olva...@gmail.com wrote: On Wed, Jan 13, 2010 at 2:46 AM, Jakob Bornecrantz ja...@vmware.com wrote: On 12 jan 2010, at 16.16, Chia-I Wu wrote: On Tue, Jan 12, 2010 at 10:52 PM, Jakob Bornecrantz ja...@vmware.com wrote: On 12 jan 2010, at 04.23, Chia-I Wu wrote: * Write up documentation * Remove unused/non-working EGL drivers * Remove drivers that are deprecated by egl_g3d * Automatic driver selection (like DRI) * Re-organize EGL demos The drivers to be removed are * Unused * src/egl/drivers/demo/ * src/egl/drivers/xdri/ I think that at least demo should remain if for nothing more then to serve as a empty skeleton for anybody wishing to make their own driver. The idea is that src/egl/drivers/glx/ has already provided a simple EGL driver that works. The demo driver, though compiles, is outdated or may outdate over time since it is not a working driver that can be verified. Hmm, maybe you are right. But it doesn't cost anything to keep it around. The demo driver does not free resources at eglTerminate. It does not initialize surfaces with _eglInitSurface. There may be more, which makes it a bad demo driver. It may be updated, but since the driver won't run, it is hard to find if anything is missing there. * Non-working * src/egl/drivers/dri/ Having the dri driver working would be desirable since it allows you to use none gallium drivers standalone. The only problem with the dri driver is that no one is maintaining it. I agree that there might still interests in loading DRI drivers from EGL drivers. I wrote one for Android. How about we keep the xdri driver and leave dri driver in the git history? The xdri driver * dlopen()s DRI1/DRI2 drivers * talks with the X server using DRI1/DRI2 (the protocol) to implement functions like getBuffersWithFormat * works well The first point is the key idea shared by both dri and xdri drivers. The xdri driver is pretty much deprecated by the glx driver as it does pretty much the same thing. The dri is more interesting then the xdri driver since it is standalone from X. However, it lacks maintenance. Th I tried to fix it once, but I gave up soon. Because the fix to it is not trivial and even if that is done, the egl dri driver supports only DRI1, which is fading out. egl_xdri is doing what egl_glx is doing, but in an interesting and different way. With direct access to DRI drivers, it is capable of doing what egl_glx can't (e.g. eglBindTexImage requires pbuffer but GLX_EXT_texture_from_pixmap supports only pixmaps). My concern with keeping these drivers is that, when I first came to EGL in Mesa, there were 4 drivers under egl/drivers/. Three of them did not work, and two of them even didn't compile. It confused me. There are two EGL implementations I know of that load DRI(2) drivers and support non-X window system. One is egl_android. The other is libeagle for Wayland. egl_android works great but it uses a different build system (Android.mk). libeagle is a standalone library, but it is more promising. I do have some interests in porting it to egl_eagle and have Wayland use standard libEGL, but I haven't found the time. It would be great if someone is willing to help port libeagle. Otherwise, I prefer egl_xdri over egl_dri, or removing both. What do you think? * src/mesa/drivers/dri/fb/fb_egl.c * src/mesa/drivers/dri/radeon/server/radeon_egl.c * src/mesa/drivers/dri/r600/server/radeon_egl.c * src/mesa/drivers/dri/r300/server/radeon_egl.c * src/mesa/drivers/dri/r200/server/radeon_egl.c * Deprecated by egl_g3d * src/gallium/state_trackers/egl/ * src/gallium/winsys/egl_xlib/ If anyone has any concern or is actively using any of the driver listed above, please let me konw. The removal, especially of those in the last category, is still a plan, and is supposed to be several weeks away. If anyone has any trouble using/testing egl_g3d, please let me know too. I'm okay with removing s/g/st/egl and moving egl_g3d to s/g/st/egl. Actually I'm more then okay with the move since I'm not a big fan of the name name egl_g3d. Thanks. I will do the rename after the removal :P As for the re-organization, I want to move various demos using EGL to progs/egl/. The directory structure will be like progs/egl/opengl progs/egl/opengles1 progs/egl/opengles2 progs/egl/openvg Also progs/egl/interop once we get inter API communication working. Yes. Actually, inter API communication should be working with egl_g3d. It just lacks demos. Ah cool, I'm looking forwards to when we get EGLImage. There is working EGLImage support in egl_android, which uses DRI. st_public.h is not enough to support EGLImage and its family. I plan to add it to egl_g3d after reworking st_public.h. There will be simple window-system glue code that the demos may use. Simple demos who use
Re: [Mesa3d-dev] [PATCH 3/4] [egl_g3d] Revalidate based on sequence number
On Wed, Jan 13, 2010 at 2:52 AM, Luca Barbieri l...@luca-barbieri.com wrote: Doesn't this make two DRI2GetBuffers protocol calls, in case of a resize? I expect resizing happens rarely. Plus, I want to hook winsys-update_buffer. It is called when the user calls glViewport. It will set force_validate and avoid the first call. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] [PATCH 1/4] [egl_g3d] DRI2 support for depth/stencil and right buffers
On Tue, Jan 12, 2010 at 7:31 PM, Keith Whitwell kei...@vmware.com wrote: On Mon, 2010-01-11 at 22:30 -0800, Luca Barbieri wrote: I left out depth/stencil attachment because I could not think of a good reason for it. Do you have an example that it is better to ask the display server for a depth/stencil buffer than asking the pipe driver? I'm not sure about this. I mostly added it just because the old driver stack asks DRI2 for it. On second thought, it may be better to do it with the pipe driver. This would prevent sharing the depth buffer with other application, but I don't think any compositor/application uses this. Theoretically an application could create a direct and indirect context targetting the same window. Under those circumstances, there should be only a single depth buffer shared between the contexts. I guess I will leave out depth/stencil attachment for now. The interface does not imply direct or indirect rendering, but all native displays use direct rendering right now. It should be easy to add depth/stencil attachment if there is a new native display that needs it. (Actually, in my early work, there was a depth/stencil attachment. It was removed and there is a comment saying that only color attachments are included intentionally.) There are other ways to achieve the same result, basically sharing a depth buffer between processes. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
Re: [Mesa3d-dev] Gallium feature levels
On Tue, 2010-01-12 at 11:01 -0500, Younes Manton wrote: On Tue, Jan 12, 2010 at 9:44 AM, Keith Whitwell kei...@vmware.com wrote: On Tue, 2010-01-12 at 06:33 -0800, Roland Scheidegger wrote: Profile 7 (2009)6 (2008) 5 (2006)4 (2004)3 (2003)2 (2002) 1 (2000) Fragment Shader Yes Yes Yes Yes Yes Yes Yes DX 7 didn't have any shader model IIRC. DX8/8.1 introduced shader models 1.0-1.3/1.4. Yea, that level should be gone. Though thinking about this, maybe we should keep a level below lowest dx9 feature level, since gallium drivers exist which are pretty low on the feature scale (like the nv04/10/20). I don't know how well they'll ever going to work, since they'd need the fixed function fragment operations out of tgsi, but maybe we shouldn't prevent it by forcing them to announce support of fragment shaders. The base level of gallium functionality included fragment shaders from the start, these early nv drivers don't really change that. In my view these are a speculative bet that with a lot of effort it is possible to turn shaders back into fixed-function, but supporting that isn't a design goal for gallium as a whole. Keith Just my opinion, I wouldn't count on nv04-nv20 actually staying in gallium. At some point we wanted to experiment with shaders on fixed func, but I don't think anyone is really motivated or optimistic that it will turn out well. They're already rotting as it is. Francisco Jerez is working on a classic Mesa driver for these and if/when they're worth pushing to master I'd expect the gallium drivers to be axed. Agreed. IMO they could be removed now, I don't see them ever being done, and Francisco's drivers are shaping up quite nicely already. Ben. -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev ___ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev