Merge remote branch 'origin/master' into nv50-compiler
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>
Thu, 2 Sep 2010 16:31:49 +0000 (18:31 +0200)
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>
Thu, 2 Sep 2010 16:31:49 +0000 (18:31 +0200)
Conflicts:
src/gallium/drivers/nv50/nv50_program.c

1079 files changed:
Makefile
SConstruct
bin/minstall
bin/mklib
configs/autoconf.in
configs/default
configs/linux-dri
configs/linux-llvm
configure.ac
docs/MESA_drm_image.spec [new file with mode: 0644]
docs/contents.html
docs/developers.html
docs/intro.html
docs/news.html
docs/relnotes-7.9.html
docs/shading.html
docs/subset-A.html
include/EGL/eglext.h
include/GL/internal/dri_interface.h
include/c99/inttypes.h [new file with mode: 0644]
include/c99/stdint.h
scons/gallium.py
src/SConscript
src/egl/docs/EGL_MESA_screen_surface
src/egl/drivers/dri2/egl_dri2.c
src/egl/main/Makefile
src/egl/main/SConscript
src/egl/main/egl.def [new file with mode: 0644]
src/egl/main/eglapi.c
src/egl/main/eglapi.h
src/egl/main/eglconfig.c
src/egl/main/eglcontext.c
src/egl/main/egldisplay.h
src/egl/main/egldriver.c
src/egl/main/eglmisc.c
src/egl/main/eglsync.c [new file with mode: 0644]
src/egl/main/eglsync.h [new file with mode: 0644]
src/egl/main/egltypedefs.h
src/gallium/auxiliary/Makefile
src/gallium/auxiliary/SConscript
src/gallium/auxiliary/draw/draw_cliptest_tmp.h [new file with mode: 0644]
src/gallium/auxiliary/draw/draw_context.c
src/gallium/auxiliary/draw/draw_context.h
src/gallium/auxiliary/draw/draw_decompose_tmp.h
src/gallium/auxiliary/draw/draw_gs.c
src/gallium/auxiliary/draw/draw_gs_tmp.h
src/gallium/auxiliary/draw/draw_llvm.c
src/gallium/auxiliary/draw/draw_llvm.h
src/gallium/auxiliary/draw/draw_pipe.c
src/gallium/auxiliary/draw/draw_pipe_validate.c
src/gallium/auxiliary/draw/draw_pipe_vbuf.c
src/gallium/auxiliary/draw/draw_private.h
src/gallium/auxiliary/draw/draw_pt.c
src/gallium/auxiliary/draw/draw_pt.h
src/gallium/auxiliary/draw/draw_pt_elts.c [deleted file]
src/gallium/auxiliary/draw/draw_pt_emit.c
src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
src/gallium/auxiliary/draw/draw_pt_fetch_shade_emit.c
src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c
src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
src/gallium/auxiliary/draw/draw_pt_post_vs.c
src/gallium/auxiliary/draw/draw_pt_so_emit.c
src/gallium/auxiliary/draw/draw_pt_util.c
src/gallium/auxiliary/draw/draw_pt_varray.c [deleted file]
src/gallium/auxiliary/draw/draw_pt_varray_tmp.h [deleted file]
src/gallium/auxiliary/draw/draw_pt_varray_tmp_linear.h [deleted file]
src/gallium/auxiliary/draw/draw_pt_vcache.c [deleted file]
src/gallium/auxiliary/draw/draw_pt_vcache_tmp.h [deleted file]
src/gallium/auxiliary/draw/draw_pt_vsplit.c [new file with mode: 0644]
src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h [new file with mode: 0644]
src/gallium/auxiliary/draw/draw_so_emit_tmp.h
src/gallium/auxiliary/draw/draw_split_tmp.h [new file with mode: 0644]
src/gallium/auxiliary/draw/draw_vs_llvm.c
src/gallium/auxiliary/gallivm/lp_bld_arit.c
src/gallium/auxiliary/gallivm/lp_bld_debug.c
src/gallium/auxiliary/gallivm/lp_bld_format_aos.c
src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
src/gallium/auxiliary/gallivm/lp_bld_pack.h
src/gallium/auxiliary/gallivm/lp_bld_sample.c
src/gallium/auxiliary/gallivm/lp_bld_sample.h
src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
src/gallium/auxiliary/gallivm/lp_bld_type.h
src/gallium/auxiliary/os/os_stream.c [new file with mode: 0644]
src/gallium/auxiliary/os/os_stream.h
src/gallium/auxiliary/os/os_stream_log.c
src/gallium/auxiliary/os/os_stream_null.c
src/gallium/auxiliary/os/os_stream_stdc.c
src/gallium/auxiliary/os/os_stream_str.c
src/gallium/auxiliary/pipebuffer/pb_bufmgr.h
src/gallium/auxiliary/rtasm/rtasm_cpu.c
src/gallium/auxiliary/rtasm/rtasm_x86sse.c
src/gallium/auxiliary/rtasm/rtasm_x86sse.h
src/gallium/auxiliary/tgsi/tgsi_dump.h
src/gallium/auxiliary/tgsi/tgsi_exec.c
src/gallium/auxiliary/tgsi/tgsi_info.h
src/gallium/auxiliary/tgsi/tgsi_parse.c
src/gallium/auxiliary/tgsi/tgsi_parse.h
src/gallium/auxiliary/tgsi/tgsi_sse2.h
src/gallium/auxiliary/translate/translate.c
src/gallium/auxiliary/translate/translate.h
src/gallium/auxiliary/translate/translate_generic.c
src/gallium/auxiliary/translate/translate_sse.c
src/gallium/auxiliary/util/u_bitmask.h
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_blit.h
src/gallium/auxiliary/util/u_blitter.c
src/gallium/auxiliary/util/u_blitter.h
src/gallium/auxiliary/util/u_cpu_detect.c
src/gallium/auxiliary/util/u_debug_describe.c [new file with mode: 0644]
src/gallium/auxiliary/util/u_debug_describe.h [new file with mode: 0644]
src/gallium/auxiliary/util/u_debug_refcnt.c [new file with mode: 0644]
src/gallium/auxiliary/util/u_debug_refcnt.h [new file with mode: 0644]
src/gallium/auxiliary/util/u_debug_symbol.c
src/gallium/auxiliary/util/u_debug_symbol.h
src/gallium/auxiliary/util/u_dirty_surfaces.h
src/gallium/auxiliary/util/u_draw.h
src/gallium/auxiliary/util/u_dynarray.h
src/gallium/auxiliary/util/u_gen_mipmap.c
src/gallium/auxiliary/util/u_inlines.h
src/gallium/auxiliary/util/u_linkage.c [new file with mode: 0644]
src/gallium/auxiliary/util/u_linkage.h [new file with mode: 0644]
src/gallium/auxiliary/util/u_math.h
src/gallium/auxiliary/util/u_pack_color.h
src/gallium/auxiliary/util/u_rect.c
src/gallium/auxiliary/util/u_rect.h
src/gallium/auxiliary/util/u_simple_shaders.c
src/gallium/auxiliary/util/u_split_prim.h
src/gallium/auxiliary/util/u_staging.c
src/gallium/auxiliary/util/u_staging.h
src/gallium/auxiliary/util/u_surface.c
src/gallium/auxiliary/util/u_surfaces.c
src/gallium/auxiliary/util/u_surfaces.h
src/gallium/auxiliary/util/u_tile.h
src/gallium/auxiliary/util/u_transfer.h
src/gallium/auxiliary/util/u_upload_mgr.h
src/gallium/docs/source/context.rst
src/gallium/docs/source/debugging.rst
src/gallium/docs/source/distro.rst
src/gallium/docs/source/index.rst
src/gallium/docs/source/resources.rst [new file with mode: 0644]
src/gallium/drivers/cell/ppu/cell_draw_arrays.c
src/gallium/drivers/cell/ppu/cell_state_vertex.c
src/gallium/drivers/galahad/glhd_context.c
src/gallium/drivers/galahad/glhd_screen.c
src/gallium/drivers/i915/i915_context.c
src/gallium/drivers/i915/i915_resource_texture.c
src/gallium/drivers/i915/i915_state.c
src/gallium/drivers/i965/brw_batchbuffer.c
src/gallium/drivers/i965/brw_resource_texture.c
src/gallium/drivers/i965/brw_wm_debug.c
src/gallium/drivers/llvmpipe/Makefile
src/gallium/drivers/llvmpipe/SConscript
src/gallium/drivers/llvmpipe/lp_context.c
src/gallium/drivers/llvmpipe/lp_context.h
src/gallium/drivers/llvmpipe/lp_debug.h
src/gallium/drivers/llvmpipe/lp_draw_arrays.c
src/gallium/drivers/llvmpipe/lp_fence.c
src/gallium/drivers/llvmpipe/lp_fence.h
src/gallium/drivers/llvmpipe/lp_flush.c
src/gallium/drivers/llvmpipe/lp_flush.h
src/gallium/drivers/llvmpipe/lp_perf.c
src/gallium/drivers/llvmpipe/lp_perf.h
src/gallium/drivers/llvmpipe/lp_query.c
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/llvmpipe/lp_rast.h
src/gallium/drivers/llvmpipe/lp_rast_tri.c
src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h
src/gallium/drivers/llvmpipe/lp_scene.c
src/gallium/drivers/llvmpipe/lp_screen.c
src/gallium/drivers/llvmpipe/lp_setup.c
src/gallium/drivers/llvmpipe/lp_setup.h
src/gallium/drivers/llvmpipe/lp_setup_coef.c [new file with mode: 0644]
src/gallium/drivers/llvmpipe/lp_setup_coef.h [new file with mode: 0644]
src/gallium/drivers/llvmpipe/lp_setup_coef_intrin.c [new file with mode: 0644]
src/gallium/drivers/llvmpipe/lp_setup_context.h
src/gallium/drivers/llvmpipe/lp_setup_line.c
src/gallium/drivers/llvmpipe/lp_setup_point.c
src/gallium/drivers/llvmpipe/lp_setup_tri.c
src/gallium/drivers/llvmpipe/lp_state_derived.c
src/gallium/drivers/llvmpipe/lp_state_fs.c
src/gallium/drivers/llvmpipe/lp_state_fs.h
src/gallium/drivers/llvmpipe/lp_state_rasterizer.c
src/gallium/drivers/llvmpipe/lp_state_vertex.c
src/gallium/drivers/llvmpipe/lp_surface.c
src/gallium/drivers/llvmpipe/lp_texture.c
src/gallium/drivers/nouveau/nouveau_class.h
src/gallium/drivers/nouveau/nouveau_screen.c
src/gallium/drivers/nouveau/nouveau_util.h [deleted file]
src/gallium/drivers/nv50/nv50_miptree.c
src/gallium/drivers/nv50/nv50_push.c
src/gallium/drivers/nv50/nv50_tex.c
src/gallium/drivers/nvfx/Makefile
src/gallium/drivers/nvfx/SConscript
src/gallium/drivers/nvfx/nv04_2d.c [new file with mode: 0644]
src/gallium/drivers/nvfx/nv04_2d.h [new file with mode: 0644]
src/gallium/drivers/nvfx/nv04_2d_loops.h [new file with mode: 0644]
src/gallium/drivers/nvfx/nv04_surface_2d.c [deleted file]
src/gallium/drivers/nvfx/nv04_surface_2d.h [deleted file]
src/gallium/drivers/nvfx/nv30_fragtex.c
src/gallium/drivers/nvfx/nv30_vertprog.h
src/gallium/drivers/nvfx/nv40_fragtex.c
src/gallium/drivers/nvfx/nv40_vertprog.h
src/gallium/drivers/nvfx/nvfx_buffer.c
src/gallium/drivers/nvfx/nvfx_context.c
src/gallium/drivers/nvfx/nvfx_context.h
src/gallium/drivers/nvfx/nvfx_draw.c
src/gallium/drivers/nvfx/nvfx_fragprog.c
src/gallium/drivers/nvfx/nvfx_fragtex.c
src/gallium/drivers/nvfx/nvfx_miptree.c
src/gallium/drivers/nvfx/nvfx_push.c [new file with mode: 0644]
src/gallium/drivers/nvfx/nvfx_resource.c
src/gallium/drivers/nvfx/nvfx_resource.h
src/gallium/drivers/nvfx/nvfx_screen.c
src/gallium/drivers/nvfx/nvfx_screen.h
src/gallium/drivers/nvfx/nvfx_shader.h
src/gallium/drivers/nvfx/nvfx_state.c
src/gallium/drivers/nvfx/nvfx_state.h
src/gallium/drivers/nvfx/nvfx_state_emit.c
src/gallium/drivers/nvfx/nvfx_state_fb.c
src/gallium/drivers/nvfx/nvfx_state_stipple.c
src/gallium/drivers/nvfx/nvfx_surface.c
src/gallium/drivers/nvfx/nvfx_tex.h
src/gallium/drivers/nvfx/nvfx_transfer.c
src/gallium/drivers/nvfx/nvfx_transfer.h
src/gallium/drivers/nvfx/nvfx_vbo.c
src/gallium/drivers/nvfx/nvfx_vertprog.c
src/gallium/drivers/r300/r300_context.c
src/gallium/drivers/r300/r300_context.h
src/gallium/drivers/r300/r300_emit.c
src/gallium/drivers/r300/r300_flush.c
src/gallium/drivers/r300/r300_fs.c
src/gallium/drivers/r300/r300_hyperz.c
src/gallium/drivers/r300/r300_hyperz.h
src/gallium/drivers/r300/r300_reg.h
src/gallium/drivers/r300/r300_render.c
src/gallium/drivers/r300/r300_state.c
src/gallium/drivers/r300/r300_state_derived.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r300/r300_texture.h
src/gallium/drivers/r300/r300_texture_desc.c
src/gallium/drivers/r300/r300_texture_desc.h
src/gallium/drivers/r300/r300_tgsi_to_rc.c
src/gallium/drivers/r300/r300_vs.c
src/gallium/drivers/r300/r300_winsys.h
src/gallium/drivers/r600/r600_asm.c
src/gallium/drivers/r600/r600_asm.h
src/gallium/drivers/r600/r600_blit.c
src/gallium/drivers/r600/r600_context.c
src/gallium/drivers/r600/r600_context.h
src/gallium/drivers/r600/r600_draw.c
src/gallium/drivers/r600/r600_query.c
src/gallium/drivers/r600/r600_resource.h
src/gallium/drivers/r600/r600_screen.c
src/gallium/drivers/r600/r600_screen.h
src/gallium/drivers/r600/r600_shader.c
src/gallium/drivers/r600/r600_shader.h
src/gallium/drivers/r600/r600_sq.h
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_state_inlines.h
src/gallium/drivers/r600/r600_texture.c
src/gallium/drivers/r600/r600d.h
src/gallium/drivers/r600/radeon.h
src/gallium/drivers/softpipe/sp_draw_arrays.c
src/gallium/drivers/softpipe/sp_flush.c
src/gallium/drivers/softpipe/sp_screen.c
src/gallium/drivers/softpipe/sp_state_vertex.c
src/gallium/drivers/softpipe/sp_tex_sample.c
src/gallium/drivers/svga/svga_cmd.c
src/gallium/drivers/svga/svga_context.c
src/gallium/drivers/svga/svga_context.h
src/gallium/drivers/svga/svga_pipe_draw.c
src/gallium/drivers/svga/svga_resource_texture.c
src/gallium/drivers/svga/svga_state_framebuffer.c
src/gallium/drivers/svga/svga_state_tss.c
src/gallium/drivers/svga/svga_swtnl.h
src/gallium/drivers/svga/svga_swtnl_draw.c
src/gallium/drivers/svga/svga_tgsi_emit.h
src/gallium/drivers/svga/svga_tgsi_insn.c
src/gallium/drivers/trace/tr_context.c
src/gallium/include/pipe/p_compiler.h
src/gallium/include/pipe/p_context.h
src/gallium/include/pipe/p_defines.h
src/gallium/include/pipe/p_format.h
src/gallium/include/pipe/p_shader_tokens.h
src/gallium/include/pipe/p_state.h
src/gallium/include/state_tracker/graw.h
src/gallium/state_trackers/dri/common/dri_context.h
src/gallium/state_trackers/dri/common/dri_screen.c
src/gallium/state_trackers/dri/common/dri_screen.h
src/gallium/state_trackers/dri/drm/dri2.c
src/gallium/state_trackers/dri/sw/drisw.c
src/gallium/state_trackers/egl/Makefile
src/gallium/state_trackers/egl/SConscript
src/gallium/state_trackers/egl/common/egl_g3d.c
src/gallium/state_trackers/egl/common/egl_g3d.h
src/gallium/state_trackers/egl/common/egl_g3d_api.c
src/gallium/state_trackers/egl/common/egl_g3d_image.c
src/gallium/state_trackers/egl/common/egl_g3d_image.h
src/gallium/state_trackers/egl/common/egl_g3d_sync.c [new file with mode: 0644]
src/gallium/state_trackers/egl/common/egl_g3d_sync.h [new file with mode: 0644]
src/gallium/state_trackers/egl/kms/native_kms.c
src/gallium/state_trackers/glx/xlib/glx_api.c
src/gallium/state_trackers/glx/xlib/glx_usefont.c
src/gallium/state_trackers/glx/xlib/xm_api.c
src/gallium/state_trackers/glx/xlib/xm_api.h
src/gallium/state_trackers/glx/xlib/xm_st.c
src/gallium/state_trackers/wgl/stw_context.c
src/gallium/state_trackers/wgl/stw_device.c
src/gallium/state_trackers/wgl/stw_pixelformat.c
src/gallium/state_trackers/wgl/stw_pixelformat.h
src/gallium/targets/Makefile.dri
src/gallium/targets/SConscript
src/gallium/targets/dri-r300/Makefile [new file with mode: 0644]
src/gallium/targets/dri-r300/SConscript [new file with mode: 0644]
src/gallium/targets/dri-r300/target.c [new file with mode: 0644]
src/gallium/targets/dri-r600/Makefile
src/gallium/targets/dri-radeong/Makefile [deleted file]
src/gallium/targets/dri-radeong/SConscript [deleted file]
src/gallium/targets/dri-radeong/target.c [deleted file]
src/gallium/targets/egl-gdi/egl-static.c
src/gallium/targets/egl/Makefile
src/gallium/targets/egl/egl.c
src/gallium/targets/egl/pipe_r300.c [new file with mode: 0644]
src/gallium/targets/egl/pipe_r600.c [new file with mode: 0644]
src/gallium/targets/egl/pipe_radeon.c [deleted file]
src/gallium/targets/graw-xlib/graw_util.c
src/gallium/targets/graw-xlib/graw_xlib.c
src/gallium/targets/libgl-gdi/SConscript
src/gallium/targets/libgl-xlib/Makefile
src/gallium/targets/libgl-xlib/SConscript
src/gallium/targets/libgl-xlib/xlib.c
src/gallium/tests/python/tests/texture_blit.py
src/gallium/tools/addr2line.sh [new file with mode: 0755]
src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
src/gallium/winsys/r600/drm/r600_state.c
src/gallium/winsys/r600/drm/r600_states.h
src/gallium/winsys/r600/drm/r600d.h
src/gallium/winsys/r600/drm/radeon.c
src/gallium/winsys/r600/drm/radeon_bo.c
src/gallium/winsys/r600/drm/radeon_ctx.c
src/gallium/winsys/r600/drm/radeon_draw.c
src/gallium/winsys/r600/drm/radeon_priv.h
src/gallium/winsys/r600/drm/radeon_state.c
src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c
src/glsl/.dir-locals.el [new file with mode: 0644]
src/glsl/.gitignore [new file with mode: 0644]
src/glsl/Makefile
src/glsl/Makefile.am [new file with mode: 0644]
src/glsl/README [new file with mode: 0644]
src/glsl/SConscript
src/glsl/TODO [new file with mode: 0644]
src/glsl/apps/.gitignore [deleted file]
src/glsl/apps/Makefile [deleted file]
src/glsl/apps/compile.c [deleted file]
src/glsl/apps/process.c [deleted file]
src/glsl/apps/purify.c [deleted file]
src/glsl/apps/tokenise.c [deleted file]
src/glsl/apps/version.c [deleted file]
src/glsl/ast.h [new file with mode: 0644]
src/glsl/ast_expr.cpp [new file with mode: 0644]
src/glsl/ast_function.cpp [new file with mode: 0644]
src/glsl/ast_to_hir.cpp [new file with mode: 0644]
src/glsl/ast_type.cpp [new file with mode: 0644]
src/glsl/autogen.sh [new file with mode: 0755]
src/glsl/builtin_function.cpp [new file with mode: 0644]
src/glsl/builtin_types.h [new file with mode: 0644]
src/glsl/builtin_variables.h [new file with mode: 0644]
src/glsl/builtins/ir/abs [new file with mode: 0644]
src/glsl/builtins/ir/acos [new file with mode: 0644]
src/glsl/builtins/ir/all [new file with mode: 0644]
src/glsl/builtins/ir/any [new file with mode: 0644]
src/glsl/builtins/ir/asin [new file with mode: 0644]
src/glsl/builtins/ir/atan [new file with mode: 0644]
src/glsl/builtins/ir/ceil [new file with mode: 0644]
src/glsl/builtins/ir/clamp [new file with mode: 0644]
src/glsl/builtins/ir/cos [new file with mode: 0644]
src/glsl/builtins/ir/cosh [new file with mode: 0644]
src/glsl/builtins/ir/cross [new file with mode: 0644]
src/glsl/builtins/ir/dFdx [new file with mode: 0644]
src/glsl/builtins/ir/dFdy [new file with mode: 0644]
src/glsl/builtins/ir/degrees [new file with mode: 0644]
src/glsl/builtins/ir/distance [new file with mode: 0644]
src/glsl/builtins/ir/dot [new file with mode: 0644]
src/glsl/builtins/ir/equal [new file with mode: 0644]
src/glsl/builtins/ir/exp [new file with mode: 0644]
src/glsl/builtins/ir/exp2 [new file with mode: 0644]
src/glsl/builtins/ir/faceforward [new file with mode: 0644]
src/glsl/builtins/ir/floor [new file with mode: 0644]
src/glsl/builtins/ir/fract [new file with mode: 0644]
src/glsl/builtins/ir/ftransform [new file with mode: 0644]
src/glsl/builtins/ir/fwidth [new file with mode: 0644]
src/glsl/builtins/ir/greaterThan [new file with mode: 0644]
src/glsl/builtins/ir/greaterThanEqual [new file with mode: 0644]
src/glsl/builtins/ir/inversesqrt [new file with mode: 0644]
src/glsl/builtins/ir/length [new file with mode: 0644]
src/glsl/builtins/ir/lessThan [new file with mode: 0644]
src/glsl/builtins/ir/lessThanEqual [new file with mode: 0644]
src/glsl/builtins/ir/log [new file with mode: 0644]
src/glsl/builtins/ir/log2 [new file with mode: 0644]
src/glsl/builtins/ir/matrixCompMult [new file with mode: 0644]
src/glsl/builtins/ir/max [new file with mode: 0644]
src/glsl/builtins/ir/min [new file with mode: 0644]
src/glsl/builtins/ir/mix [new file with mode: 0644]
src/glsl/builtins/ir/mod [new file with mode: 0644]
src/glsl/builtins/ir/noise1 [new file with mode: 0644]
src/glsl/builtins/ir/noise2 [new file with mode: 0644]
src/glsl/builtins/ir/noise3 [new file with mode: 0644]
src/glsl/builtins/ir/noise4 [new file with mode: 0644]
src/glsl/builtins/ir/normalize [new file with mode: 0644]
src/glsl/builtins/ir/not [new file with mode: 0644]
src/glsl/builtins/ir/notEqual [new file with mode: 0644]
src/glsl/builtins/ir/outerProduct [new file with mode: 0644]
src/glsl/builtins/ir/pow [new file with mode: 0644]
src/glsl/builtins/ir/radians [new file with mode: 0644]
src/glsl/builtins/ir/reflect [new file with mode: 0644]
src/glsl/builtins/ir/refract [new file with mode: 0644]
src/glsl/builtins/ir/sign [new file with mode: 0644]
src/glsl/builtins/ir/sin [new file with mode: 0644]
src/glsl/builtins/ir/sinh [new file with mode: 0644]
src/glsl/builtins/ir/smoothstep [new file with mode: 0644]
src/glsl/builtins/ir/sqrt [new file with mode: 0644]
src/glsl/builtins/ir/step [new file with mode: 0644]
src/glsl/builtins/ir/tan [new file with mode: 0644]
src/glsl/builtins/ir/tanh [new file with mode: 0644]
src/glsl/builtins/ir/transpose [new file with mode: 0644]
src/glsl/builtins/profiles/110.frag [new file with mode: 0644]
src/glsl/builtins/profiles/110.vert [new file with mode: 0644]
src/glsl/builtins/profiles/120.frag [new file with mode: 0644]
src/glsl/builtins/profiles/120.vert [new file with mode: 0644]
src/glsl/builtins/profiles/130.frag [new file with mode: 0644]
src/glsl/builtins/profiles/130.vert [new file with mode: 0644]
src/glsl/builtins/profiles/ARB_texture_rectangle.frag [new file with mode: 0644]
src/glsl/builtins/profiles/ARB_texture_rectangle.vert [new file with mode: 0644]
src/glsl/builtins/profiles/EXT_texture_array.frag [new file with mode: 0644]
src/glsl/builtins/profiles/EXT_texture_array.vert [new file with mode: 0644]
src/glsl/builtins/tools/builtin_function.cpp [new file with mode: 0644]
src/glsl/builtins/tools/generate_builtins.py [new file with mode: 0755]
src/glsl/builtins/tools/generate_matrixCompMultGLSL.py [new file with mode: 0755]
src/glsl/builtins/tools/generate_outerProductGLSL.py [new file with mode: 0755]
src/glsl/builtins/tools/generate_transposeGLSL.py [new file with mode: 0755]
src/glsl/builtins/tools/texture_builtins.py [new file with mode: 0755]
src/glsl/cl/Makefile [deleted file]
src/glsl/cl/sl_cl_parse.c [deleted file]
src/glsl/cl/sl_cl_parse.h [deleted file]
src/glsl/configure.ac [new file with mode: 0644]
src/glsl/glcpp/.gitignore [new file with mode: 0644]
src/glsl/glcpp/Makefile.am [new file with mode: 0644]
src/glsl/glcpp/README [new file with mode: 0644]
src/glsl/glcpp/glcpp-lex.c [new file with mode: 0644]
src/glsl/glcpp/glcpp-lex.l [new file with mode: 0644]
src/glsl/glcpp/glcpp-parse.c [new file with mode: 0644]
src/glsl/glcpp/glcpp-parse.h [new file with mode: 0644]
src/glsl/glcpp/glcpp-parse.y [new file with mode: 0644]
src/glsl/glcpp/glcpp.c [new file with mode: 0644]
src/glsl/glcpp/glcpp.h [new file with mode: 0644]
src/glsl/glcpp/pp.c [new file with mode: 0644]
src/glsl/glcpp/tests/000-content-with-spaces.c [new file with mode: 0644]
src/glsl/glcpp/tests/000-content-with-spaces.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/001-define.c [new file with mode: 0644]
src/glsl/glcpp/tests/001-define.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/002-define-chain.c [new file with mode: 0644]
src/glsl/glcpp/tests/002-define-chain.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/003-define-chain-reverse.c [new file with mode: 0644]
src/glsl/glcpp/tests/003-define-chain-reverse.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/004-define-recursive.c [new file with mode: 0644]
src/glsl/glcpp/tests/004-define-recursive.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/005-define-composite-chain.c [new file with mode: 0644]
src/glsl/glcpp/tests/005-define-composite-chain.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/006-define-composite-chain-reverse.c [new file with mode: 0644]
src/glsl/glcpp/tests/006-define-composite-chain-reverse.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/007-define-composite-recursive.c [new file with mode: 0644]
src/glsl/glcpp/tests/007-define-composite-recursive.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/008-define-empty.c [new file with mode: 0644]
src/glsl/glcpp/tests/008-define-empty.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/009-undef.c [new file with mode: 0644]
src/glsl/glcpp/tests/009-undef.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/010-undef-re-define.c [new file with mode: 0644]
src/glsl/glcpp/tests/010-undef-re-define.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/011-define-func-empty.c [new file with mode: 0644]
src/glsl/glcpp/tests/011-define-func-empty.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/012-define-func-no-args.c [new file with mode: 0644]
src/glsl/glcpp/tests/012-define-func-no-args.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/013-define-func-1-arg-unused.c [new file with mode: 0644]
src/glsl/glcpp/tests/013-define-func-1-arg-unused.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/014-define-func-2-arg-unused.c [new file with mode: 0644]
src/glsl/glcpp/tests/014-define-func-2-arg-unused.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/015-define-object-with-parens.c [new file with mode: 0644]
src/glsl/glcpp/tests/015-define-object-with-parens.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/016-define-func-1-arg.c [new file with mode: 0644]
src/glsl/glcpp/tests/016-define-func-1-arg.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/017-define-func-2-args.c [new file with mode: 0644]
src/glsl/glcpp/tests/017-define-func-2-args.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/018-define-func-macro-as-parameter.c [new file with mode: 0644]
src/glsl/glcpp/tests/018-define-func-macro-as-parameter.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/019-define-func-1-arg-multi.c [new file with mode: 0644]
src/glsl/glcpp/tests/019-define-func-1-arg-multi.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/020-define-func-2-arg-multi.c [new file with mode: 0644]
src/glsl/glcpp/tests/020-define-func-2-arg-multi.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/021-define-func-compose.c [new file with mode: 0644]
src/glsl/glcpp/tests/021-define-func-compose.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/022-define-func-arg-with-parens.c [new file with mode: 0644]
src/glsl/glcpp/tests/022-define-func-arg-with-parens.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/023-define-extra-whitespace.c [new file with mode: 0644]
src/glsl/glcpp/tests/023-define-extra-whitespace.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/024-define-chain-to-self-recursion.c [new file with mode: 0644]
src/glsl/glcpp/tests/024-define-chain-to-self-recursion.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/025-func-macro-as-non-macro.c [new file with mode: 0644]
src/glsl/glcpp/tests/025-func-macro-as-non-macro.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/026-define-func-extra-newlines.c [new file with mode: 0644]
src/glsl/glcpp/tests/026-define-func-extra-newlines.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/027-define-chain-obj-to-func.c [new file with mode: 0644]
src/glsl/glcpp/tests/027-define-chain-obj-to-func.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/028-define-chain-obj-to-non-func.c [new file with mode: 0644]
src/glsl/glcpp/tests/028-define-chain-obj-to-non-func.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/029-define-chain-obj-to-func-with-args.c [new file with mode: 0644]
src/glsl/glcpp/tests/029-define-chain-obj-to-func-with-args.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/030-define-chain-obj-to-func-compose.c [new file with mode: 0644]
src/glsl/glcpp/tests/030-define-chain-obj-to-func-compose.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/031-define-chain-func-to-func-compose.c [new file with mode: 0644]
src/glsl/glcpp/tests/031-define-chain-func-to-func-compose.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/032-define-func-self-recurse.c [new file with mode: 0644]
src/glsl/glcpp/tests/032-define-func-self-recurse.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/033-define-func-self-compose.c [new file with mode: 0644]
src/glsl/glcpp/tests/033-define-func-self-compose.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/034-define-func-self-compose-non-func.c [new file with mode: 0644]
src/glsl/glcpp/tests/034-define-func-self-compose-non-func.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/035-define-func-self-compose-non-func-multi-token-argument.c [new file with mode: 0644]
src/glsl/glcpp/tests/035-define-func-self-compose-non-func-multi-token-argument.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/036-define-func-non-macro-multi-token-argument.c [new file with mode: 0644]
src/glsl/glcpp/tests/036-define-func-non-macro-multi-token-argument.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/037-finalize-unexpanded-macro.c [new file with mode: 0644]
src/glsl/glcpp/tests/037-finalize-unexpanded-macro.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/038-func-arg-with-commas.c [new file with mode: 0644]
src/glsl/glcpp/tests/038-func-arg-with-commas.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/039-func-arg-obj-macro-with-comma.c [new file with mode: 0644]
src/glsl/glcpp/tests/039-func-arg-obj-macro-with-comma.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/040-token-pasting.c [new file with mode: 0644]
src/glsl/glcpp/tests/040-token-pasting.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/041-if-0.c [new file with mode: 0644]
src/glsl/glcpp/tests/041-if-0.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/042-if-1.c [new file with mode: 0644]
src/glsl/glcpp/tests/042-if-1.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/043-if-0-else.c [new file with mode: 0644]
src/glsl/glcpp/tests/043-if-0-else.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/044-if-1-else.c [new file with mode: 0644]
src/glsl/glcpp/tests/044-if-1-else.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/045-if-0-elif.c [new file with mode: 0644]
src/glsl/glcpp/tests/045-if-0-elif.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/046-if-1-elsif.c [new file with mode: 0644]
src/glsl/glcpp/tests/046-if-1-elsif.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/047-if-elif-else.c [new file with mode: 0644]
src/glsl/glcpp/tests/047-if-elif-else.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/048-if-nested.c [new file with mode: 0644]
src/glsl/glcpp/tests/048-if-nested.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/049-if-expression-precedence.c [new file with mode: 0644]
src/glsl/glcpp/tests/049-if-expression-precedence.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/050-if-defined.c [new file with mode: 0644]
src/glsl/glcpp/tests/050-if-defined.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/051-if-relational.c [new file with mode: 0644]
src/glsl/glcpp/tests/051-if-relational.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/052-if-bitwise.c [new file with mode: 0644]
src/glsl/glcpp/tests/052-if-bitwise.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/053-if-divide-and-shift.c [new file with mode: 0644]
src/glsl/glcpp/tests/053-if-divide-and-shift.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/054-if-with-macros.c [new file with mode: 0644]
src/glsl/glcpp/tests/054-if-with-macros.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/055-define-chain-obj-to-func-parens-in-text.c [new file with mode: 0644]
src/glsl/glcpp/tests/055-define-chain-obj-to-func-parens-in-text.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/056-macro-argument-with-comma.c [new file with mode: 0644]
src/glsl/glcpp/tests/056-macro-argument-with-comma.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/057-empty-arguments.c [new file with mode: 0644]
src/glsl/glcpp/tests/057-empty-arguments.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/058-token-pasting-empty-arguments.c [new file with mode: 0644]
src/glsl/glcpp/tests/058-token-pasting-empty-arguments.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/059-token-pasting-integer.c [new file with mode: 0644]
src/glsl/glcpp/tests/059-token-pasting-integer.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/060-left-paren-in-macro-right-paren-in-text.c [new file with mode: 0644]
src/glsl/glcpp/tests/060-left-paren-in-macro-right-paren-in-text.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/061-define-chain-obj-to-func-multi.c [new file with mode: 0644]
src/glsl/glcpp/tests/061-define-chain-obj-to-func-multi.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/062-if-0-skips-garbage.c [new file with mode: 0644]
src/glsl/glcpp/tests/062-if-0-skips-garbage.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/063-comments.c [new file with mode: 0644]
src/glsl/glcpp/tests/063-comments.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/064-version.c [new file with mode: 0644]
src/glsl/glcpp/tests/064-version.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/065-if-defined-parens.c [new file with mode: 0644]
src/glsl/glcpp/tests/065-if-defined-parens.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/066-if-nospace-expression.c [new file with mode: 0644]
src/glsl/glcpp/tests/066-if-nospace-expression.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c [new file with mode: 0644]
src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/068-accidental-pasting.c [new file with mode: 0644]
src/glsl/glcpp/tests/068-accidental-pasting.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/069-repeated-argument.c [new file with mode: 0644]
src/glsl/glcpp/tests/069-repeated-argument.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/070-undefined-macro-in-expression.c [new file with mode: 0644]
src/glsl/glcpp/tests/070-undefined-macro-in-expression.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/071-punctuator.c [new file with mode: 0644]
src/glsl/glcpp/tests/071-punctuator.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/072-token-pasting-same-line.c [new file with mode: 0644]
src/glsl/glcpp/tests/072-token-pasting-same-line.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/073-if-in-ifdef.c [new file with mode: 0644]
src/glsl/glcpp/tests/073-if-in-ifdef.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/074-elif-undef.c [new file with mode: 0644]
src/glsl/glcpp/tests/074-elif-undef.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/075-elif-elif-undef.c [new file with mode: 0644]
src/glsl/glcpp/tests/075-elif-elif-undef.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/076-elif-undef-nested.c [new file with mode: 0644]
src/glsl/glcpp/tests/076-elif-undef-nested.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/077-else-without-if.c [new file with mode: 0644]
src/glsl/glcpp/tests/077-else-without-if.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/078-elif-without-if.c [new file with mode: 0644]
src/glsl/glcpp/tests/078-elif-without-if.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/079-endif-without-if.c [new file with mode: 0644]
src/glsl/glcpp/tests/079-endif-without-if.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/080-if-without-expression.c [new file with mode: 0644]
src/glsl/glcpp/tests/080-if-without-expression.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/081-elif-without-expression.c [new file with mode: 0644]
src/glsl/glcpp/tests/081-elif-without-expression.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/082-invalid-paste.c [new file with mode: 0644]
src/glsl/glcpp/tests/082-invalid-paste.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/083-unterminated-if.c [new file with mode: 0644]
src/glsl/glcpp/tests/083-unterminated-if.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/084-unbalanced-parentheses.c [new file with mode: 0644]
src/glsl/glcpp/tests/085-incorrect-argument-count.c [new file with mode: 0644]
src/glsl/glcpp/tests/085-incorrect-argument-count.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/086-reserved-macro-names.c [new file with mode: 0644]
src/glsl/glcpp/tests/086-reserved-macro-names.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/087-if-comments.c [new file with mode: 0644]
src/glsl/glcpp/tests/087-if-comments.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/088-redefine-macro-legitimate.c [new file with mode: 0644]
src/glsl/glcpp/tests/088-redefine-macro-legitimate.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/089-redefine-macro-error.c [new file with mode: 0644]
src/glsl/glcpp/tests/089-redefine-macro-error.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/090-hash-error.c [new file with mode: 0644]
src/glsl/glcpp/tests/090-hash-error.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/091-hash-line.c [new file with mode: 0644]
src/glsl/glcpp/tests/091-hash-line.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/099-c99-example.c [new file with mode: 0644]
src/glsl/glcpp/tests/099-c99-example.c.expected [new file with mode: 0644]
src/glsl/glcpp/tests/glcpp-test [new file with mode: 0755]
src/glsl/glsl_lexer.cpp [new file with mode: 0644]
src/glsl/glsl_lexer.lpp [new file with mode: 0644]
src/glsl/glsl_parser.cpp [new file with mode: 0644]
src/glsl/glsl_parser.h [new file with mode: 0644]
src/glsl/glsl_parser.ypp [new file with mode: 0644]
src/glsl/glsl_parser_extras.cpp [new file with mode: 0644]
src/glsl/glsl_parser_extras.h [new file with mode: 0644]
src/glsl/glsl_symbol_table.cpp [new file with mode: 0644]
src/glsl/glsl_symbol_table.h [new file with mode: 0644]
src/glsl/glsl_types.cpp [new file with mode: 0644]
src/glsl/glsl_types.h [new file with mode: 0644]
src/glsl/hir_field_selection.cpp [new file with mode: 0644]
src/glsl/ir.cpp [new file with mode: 0644]
src/glsl/ir.h [new file with mode: 0644]
src/glsl/ir_algebraic.cpp [new file with mode: 0644]
src/glsl/ir_basic_block.cpp [new file with mode: 0644]
src/glsl/ir_basic_block.h [new file with mode: 0644]
src/glsl/ir_clone.cpp [new file with mode: 0644]
src/glsl/ir_constant_expression.cpp [new file with mode: 0644]
src/glsl/ir_constant_folding.cpp [new file with mode: 0644]
src/glsl/ir_constant_propagation.cpp [new file with mode: 0644]
src/glsl/ir_constant_variable.cpp [new file with mode: 0644]
src/glsl/ir_copy_propagation.cpp [new file with mode: 0644]
src/glsl/ir_dead_code.cpp [new file with mode: 0644]
src/glsl/ir_dead_code_local.cpp [new file with mode: 0644]
src/glsl/ir_dead_functions.cpp [new file with mode: 0644]
src/glsl/ir_div_to_mul_rcp.cpp [new file with mode: 0644]
src/glsl/ir_explog_to_explog2.cpp [new file with mode: 0644]
src/glsl/ir_expression_flattening.cpp [new file with mode: 0644]
src/glsl/ir_expression_flattening.h [new file with mode: 0644]
src/glsl/ir_function.cpp [new file with mode: 0644]
src/glsl/ir_function_can_inline.cpp [new file with mode: 0644]
src/glsl/ir_function_inlining.cpp [new file with mode: 0644]
src/glsl/ir_function_inlining.h [new file with mode: 0644]
src/glsl/ir_hierarchical_visitor.cpp [new file with mode: 0644]
src/glsl/ir_hierarchical_visitor.h [new file with mode: 0644]
src/glsl/ir_hv_accept.cpp [new file with mode: 0644]
src/glsl/ir_if_return.cpp [new file with mode: 0644]
src/glsl/ir_if_simplification.cpp [new file with mode: 0644]
src/glsl/ir_if_to_cond_assign.cpp [new file with mode: 0644]
src/glsl/ir_import_prototypes.cpp [new file with mode: 0644]
src/glsl/ir_mat_op_to_vec.cpp [new file with mode: 0644]
src/glsl/ir_mod_to_fract.cpp [new file with mode: 0644]
src/glsl/ir_noop_swizzle.cpp [new file with mode: 0644]
src/glsl/ir_optimization.h [new file with mode: 0644]
src/glsl/ir_print_visitor.cpp [new file with mode: 0644]
src/glsl/ir_print_visitor.h [new file with mode: 0644]
src/glsl/ir_reader.cpp [new file with mode: 0644]
src/glsl/ir_reader.h [new file with mode: 0644]
src/glsl/ir_rvalue_visitor.cpp [new file with mode: 0644]
src/glsl/ir_rvalue_visitor.h [new file with mode: 0644]
src/glsl/ir_set_program_inouts.cpp [new file with mode: 0644]
src/glsl/ir_structure_splitting.cpp [new file with mode: 0644]
src/glsl/ir_sub_to_add_neg.cpp [new file with mode: 0644]
src/glsl/ir_swizzle_swizzle.cpp [new file with mode: 0644]
src/glsl/ir_tree_grafting.cpp [new file with mode: 0644]
src/glsl/ir_validate.cpp [new file with mode: 0644]
src/glsl/ir_variable.cpp [new file with mode: 0644]
src/glsl/ir_variable_refcount.cpp [new file with mode: 0644]
src/glsl/ir_variable_refcount.h [new file with mode: 0644]
src/glsl/ir_vec_index_to_cond_assign.cpp [new file with mode: 0644]
src/glsl/ir_vec_index_to_swizzle.cpp [new file with mode: 0644]
src/glsl/ir_visitor.h [new file with mode: 0644]
src/glsl/link_functions.cpp [new file with mode: 0644]
src/glsl/linker.cpp [new file with mode: 0644]
src/glsl/linker.h [new file with mode: 0644]
src/glsl/list.h [new file with mode: 0644]
src/glsl/main.cpp [new file with mode: 0644]
src/glsl/pp/Makefile [deleted file]
src/glsl/pp/sl_pp_context.c [deleted file]
src/glsl/pp/sl_pp_context.h [deleted file]
src/glsl/pp/sl_pp_define.c [deleted file]
src/glsl/pp/sl_pp_dict.c [deleted file]
src/glsl/pp/sl_pp_dict.h [deleted file]
src/glsl/pp/sl_pp_error.c [deleted file]
src/glsl/pp/sl_pp_expression.c [deleted file]
src/glsl/pp/sl_pp_expression.h [deleted file]
src/glsl/pp/sl_pp_extension.c [deleted file]
src/glsl/pp/sl_pp_if.c [deleted file]
src/glsl/pp/sl_pp_line.c [deleted file]
src/glsl/pp/sl_pp_macro.c [deleted file]
src/glsl/pp/sl_pp_macro.h [deleted file]
src/glsl/pp/sl_pp_pragma.c [deleted file]
src/glsl/pp/sl_pp_process.c [deleted file]
src/glsl/pp/sl_pp_process.h [deleted file]
src/glsl/pp/sl_pp_public.h [deleted file]
src/glsl/pp/sl_pp_purify.c [deleted file]
src/glsl/pp/sl_pp_purify.h [deleted file]
src/glsl/pp/sl_pp_token.c [deleted file]
src/glsl/pp/sl_pp_token.h [deleted file]
src/glsl/pp/sl_pp_token_util.c [deleted file]
src/glsl/pp/sl_pp_token_util.h [deleted file]
src/glsl/pp/sl_pp_version.c [deleted file]
src/glsl/program.h [new file with mode: 0644]
src/glsl/s_expression.cpp [new file with mode: 0644]
src/glsl/s_expression.h [new file with mode: 0644]
src/glsl/tests/array-01.glsl [new file with mode: 0644]
src/glsl/tests/array-02.glsl [new file with mode: 0644]
src/glsl/tests/array-03.glsl [new file with mode: 0644]
src/glsl/tests/array-04.glsl [new file with mode: 0644]
src/glsl/tests/array-05.glsl [new file with mode: 0644]
src/glsl/tests/array-06.glsl [new file with mode: 0644]
src/glsl/tests/array-07.glsl [new file with mode: 0644]
src/glsl/tests/array-08.glsl [new file with mode: 0644]
src/glsl/tests/array-09.glsl [new file with mode: 0644]
src/glsl/tests/array-10.glsl [new file with mode: 0644]
src/glsl/tests/array-11.glsl [new file with mode: 0644]
src/glsl/tests/array-12.glsl [new file with mode: 0644]
src/glsl/tests/array-13.glsl [new file with mode: 0644]
src/glsl/tests/attribute-01.glsl [new file with mode: 0644]
src/glsl/tests/attribute-02.glsl [new file with mode: 0644]
src/glsl/tests/attribute-03.glsl [new file with mode: 0644]
src/glsl/tests/attribute-04.glsl [new file with mode: 0644]
src/glsl/tests/attribute-05.glsl [new file with mode: 0644]
src/glsl/tests/attribute-06.glsl [new file with mode: 0644]
src/glsl/tests/attribute-07.glsl [new file with mode: 0644]
src/glsl/tests/attribute-08.glsl [new file with mode: 0644]
src/glsl/tests/attribute-09.glsl [new file with mode: 0644]
src/glsl/tests/attribute-10.glsl [new file with mode: 0644]
src/glsl/tests/attribute-11.glsl [new file with mode: 0644]
src/glsl/tests/condition-01.glsl [new file with mode: 0644]
src/glsl/tests/condition-02.glsl [new file with mode: 0644]
src/glsl/tests/condition-03.glsl [new file with mode: 0644]
src/glsl/tests/condition-04.glsl [new file with mode: 0644]
src/glsl/tests/condition-05.glsl [new file with mode: 0644]
src/glsl/tests/constructor-01.glsl [new file with mode: 0644]
src/glsl/tests/constructor-02.glsl [new file with mode: 0644]
src/glsl/tests/constructor-03.glsl [new file with mode: 0644]
src/glsl/tests/constructor-04.glsl [new file with mode: 0644]
src/glsl/tests/constructor-05.glsl [new file with mode: 0644]
src/glsl/tests/constructor-06.glsl [new file with mode: 0644]
src/glsl/tests/constructor-07.glsl [new file with mode: 0644]
src/glsl/tests/constructor-08.glsl [new file with mode: 0644]
src/glsl/tests/constructor-09.glsl [new file with mode: 0644]
src/glsl/tests/function-01.glsl [new file with mode: 0644]
src/glsl/tests/function-02.glsl [new file with mode: 0644]
src/glsl/tests/function-03.glsl [new file with mode: 0644]
src/glsl/tests/function-04.glsl [new file with mode: 0644]
src/glsl/tests/function-05.glsl [new file with mode: 0644]
src/glsl/tests/if-01.glsl [new file with mode: 0644]
src/glsl/tests/if-02.glsl [new file with mode: 0644]
src/glsl/tests/if-03.glsl [new file with mode: 0644]
src/glsl/tests/if-04.glsl [new file with mode: 0644]
src/glsl/tests/matrix-01.glsl [new file with mode: 0644]
src/glsl/tests/matrix-02.glsl [new file with mode: 0644]
src/glsl/tests/matrix-03.glsl [new file with mode: 0644]
src/glsl/tests/matrix-04.glsl [new file with mode: 0644]
src/glsl/tests/matrix-05.glsl [new file with mode: 0644]
src/glsl/tests/matrix-06.glsl [new file with mode: 0644]
src/glsl/tests/matrix-07.glsl [new file with mode: 0644]
src/glsl/tests/matrix-08.glsl [new file with mode: 0644]
src/glsl/tests/matrix-09.glsl [new file with mode: 0644]
src/glsl/tests/matrix-10.glsl [new file with mode: 0644]
src/glsl/tests/parameters-01.glsl [new file with mode: 0644]
src/glsl/tests/parameters-02.glsl [new file with mode: 0644]
src/glsl/tests/parameters-03.glsl [new file with mode: 0644]
src/glsl/tests/qualifier-01.glsl [new file with mode: 0644]
src/glsl/tests/qualifier-02.glsl [new file with mode: 0644]
src/glsl/tests/qualifier-03.glsl [new file with mode: 0644]
src/glsl/tests/qualifier-04.glsl [new file with mode: 0644]
src/glsl/tests/qualifier-05.glsl [new file with mode: 0644]
src/glsl/tests/qualifier-06.glsl [new file with mode: 0644]
src/glsl/tests/qualifier-07.glsl [new file with mode: 0644]
src/glsl/tests/swiz-01.glsl [new file with mode: 0644]
src/glsl/tests/swiz-02.glsl [new file with mode: 0644]
src/glsl/tests/void-01.glsl [new file with mode: 0644]
src/glut/glx/glut_init.c
src/glx/Makefile
src/mapi/glapi/gen/glX_proto_send.py
src/mapi/glapi/glapi.h
src/mapi/glapi/glapi_dispatch.c
src/mapi/glapi/glapi_entrypoint.c
src/mapi/glapi/glapi_getproc.c
src/mapi/glapi/glapi_nop.c
src/mapi/glapi/glapi_priv.h
src/mapi/glapi/glthread.c
src/mapi/glapi/glthread.h
src/mapi/mapi/entry_x86-64_tls.h
src/mapi/mapi/entry_x86_tls.h
src/mapi/mapi/entry_x86_tsd.h
src/mapi/mapi/mapi.h
src/mapi/mapi/u_current.c
src/mapi/mapi/u_current.h
src/mapi/vgapi/SConscript
src/mesa/Makefile
src/mesa/SConscript
src/mesa/drivers/dri/Makefile.template
src/mesa/drivers/dri/common/dri_util.c
src/mesa/drivers/dri/common/dri_util.h
src/mesa/drivers/dri/i915/i830_context.c
src/mesa/drivers/dri/i915/i915_context.c
src/mesa/drivers/dri/i915/i915_fragprog.c
src/mesa/drivers/dri/i965/Makefile
src/mesa/drivers/dri/i965/brw_context.c
src/mesa/drivers/dri/i965/brw_context.h
src/mesa/drivers/dri/i965/brw_defines.h
src/mesa/drivers/dri/i965/brw_disasm.c
src/mesa/drivers/dri/i965/brw_draw_upload.c
src/mesa/drivers/dri/i965/brw_eu.c
src/mesa/drivers/dri/i965/brw_eu.h
src/mesa/drivers/dri/i965/brw_eu_emit.c
src/mesa/drivers/dri/i965/brw_fs.cpp [new file with mode: 0644]
src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp [new file with mode: 0644]
src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp [new file with mode: 0644]
src/mesa/drivers/dri/i965/brw_misc_state.c
src/mesa/drivers/dri/i965/brw_optimize.c
src/mesa/drivers/dri/i965/brw_program.c
src/mesa/drivers/dri/i965/brw_state.h
src/mesa/drivers/dri/i965/brw_state_upload.c
src/mesa/drivers/dri/i965/brw_structs.h
src/mesa/drivers/dri/i965/brw_vs.c
src/mesa/drivers/dri/i965/brw_vs_emit.c
src/mesa/drivers/dri/i965/brw_vtbl.c
src/mesa/drivers/dri/i965/brw_wm.c
src/mesa/drivers/dri/i965/brw_wm.h
src/mesa/drivers/dri/i965/brw_wm_debug.c
src/mesa/drivers/dri/i965/brw_wm_emit.c
src/mesa/drivers/dri/i965/brw_wm_fp.c
src/mesa/drivers/dri/i965/brw_wm_glsl.c
src/mesa/drivers/dri/i965/brw_wm_iz.c
src/mesa/drivers/dri/i965/brw_wm_pass0.c
src/mesa/drivers/dri/i965/brw_wm_pass1.c
src/mesa/drivers/dri/i965/brw_wm_pass2.c
src/mesa/drivers/dri/i965/brw_wm_state.c
src/mesa/drivers/dri/i965/gen6_cc.c
src/mesa/drivers/dri/i965/gen6_wm_state.c
src/mesa/drivers/dri/intel/intel_buffer_objects.c
src/mesa/drivers/dri/intel/intel_chipset.h
src/mesa/drivers/dri/intel/intel_context.c
src/mesa/drivers/dri/intel/intel_context.h
src/mesa/drivers/dri/intel/intel_extensions.c
src/mesa/drivers/dri/intel/intel_fbo.c
src/mesa/drivers/dri/intel/intel_mipmap_tree.c
src/mesa/drivers/dri/intel/intel_regions.c
src/mesa/drivers/dri/intel/intel_regions.h
src/mesa/drivers/dri/intel/intel_screen.c
src/mesa/drivers/dri/intel/intel_tex.h
src/mesa/drivers/dri/nouveau/nouveau_driver.c
src/mesa/drivers/dri/nouveau/nouveau_fbo.c
src/mesa/drivers/dri/r300/compiler/Makefile
src/mesa/drivers/dri/r300/compiler/SConscript
src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c
src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c
src/mesa/drivers/dri/r300/compiler/radeon_code.h
src/mesa/drivers/dri/r300/compiler/radeon_compiler.h
src/mesa/drivers/dri/r300/compiler/radeon_dataflow_deadcode.c
src/mesa/drivers/dri/r300/compiler/radeon_opcodes.c
src/mesa/drivers/dri/r300/compiler/radeon_opcodes.h
src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c
src/mesa/drivers/dri/r300/compiler/radeon_program_alu.c
src/mesa/drivers/dri/r300/compiler/radeon_program_tex.c
src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.c [new file with mode: 0644]
src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.h [new file with mode: 0644]
src/mesa/drivers/dri/r300/r300_fragprog_common.c
src/mesa/drivers/dri/r600/Makefile
src/mesa/drivers/dri/r600/evergreen_chip.c [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_chip.h [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_context.c [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_context.h [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_diff.h [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_fragprog.c [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_fragprog.h [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_ioctl.c [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_ioctl.h [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_off.h [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_oglprog.c [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_oglprog.h [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_render.c [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_sq.h [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_state.c [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_state.h [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_tex.c [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_tex.h [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_vertprog.c [new file with mode: 0644]
src/mesa/drivers/dri/r600/evergreen_vertprog.h [new file with mode: 0644]
src/mesa/drivers/dri/r600/r600_blit.c
src/mesa/drivers/dri/r600/r600_cmdbuf.c
src/mesa/drivers/dri/r600/r600_cmdbuf.h
src/mesa/drivers/dri/r600/r600_context.c
src/mesa/drivers/dri/r600/r600_context.h
src/mesa/drivers/dri/r600/r600_emit.c
src/mesa/drivers/dri/r600/r600_emit.h
src/mesa/drivers/dri/r600/r600_texstate.c
src/mesa/drivers/dri/r600/r700_assembler.c
src/mesa/drivers/dri/r600/r700_assembler.h
src/mesa/drivers/dri/r600/r700_chip.c
src/mesa/drivers/dri/r600/r700_chip.h
src/mesa/drivers/dri/r600/r700_fragprog.c
src/mesa/drivers/dri/r600/r700_fragprog.h
src/mesa/drivers/dri/r600/r700_oglprog.c
src/mesa/drivers/dri/r600/r700_render.c
src/mesa/drivers/dri/r600/r700_state.c
src/mesa/drivers/dri/r600/r700_vertprog.c
src/mesa/drivers/dri/r600/r700_vertprog.h
src/mesa/drivers/dri/radeon/radeon_chipset.h
src/mesa/drivers/dri/radeon/radeon_common_context.c
src/mesa/drivers/dri/radeon/radeon_common_context.h
src/mesa/drivers/dri/radeon/radeon_fbo.c
src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c
src/mesa/drivers/dri/radeon/radeon_screen.c
src/mesa/drivers/glslcompiler/Makefile [deleted file]
src/mesa/drivers/glslcompiler/glslcompiler.c [deleted file]
src/mesa/drivers/osmesa/Makefile
src/mesa/drivers/x11/Makefile
src/mesa/main/accum.h
src/mesa/main/attrib.h
src/mesa/main/bufferobj.c
src/mesa/main/colortab.h
src/mesa/main/compiler.h
src/mesa/main/context.c
src/mesa/main/convolve.h
src/mesa/main/core.h [new file with mode: 0644]
src/mesa/main/dd.h
src/mesa/main/depthstencil.c
src/mesa/main/dlist.c
src/mesa/main/dlist.h
src/mesa/main/es_generator.py
src/mesa/main/extensions.c
src/mesa/main/fbobject.c
src/mesa/main/feedback.h
src/mesa/main/formats.c
src/mesa/main/formats.h
src/mesa/main/framebuffer.c
src/mesa/main/get.c
src/mesa/main/getstring.c
src/mesa/main/imports.h
src/mesa/main/mipmap.c
src/mesa/main/mtypes.h
src/mesa/main/querymatrix.c
src/mesa/main/shaderapi.c
src/mesa/main/shaderobj.c
src/mesa/main/shaderobj.h
src/mesa/main/shared.c
src/mesa/main/texcompress_s3tc.c
src/mesa/main/transformfeedback.c
src/mesa/main/uniforms.c
src/mesa/main/uniforms.h
src/mesa/program/hash_table.c
src/mesa/program/hash_table.h
src/mesa/program/ir_to_mesa.cpp [new file with mode: 0644]
src/mesa/program/ir_to_mesa.h [new file with mode: 0644]
src/mesa/program/prog_execute.c
src/mesa/program/prog_instruction.h
src/mesa/program/prog_optimize.c
src/mesa/program/prog_parameter.c
src/mesa/program/prog_parameter.h
src/mesa/program/prog_print.c
src/mesa/program/prog_print.h
src/mesa/program/prog_uniform.c
src/mesa/program/prog_uniform.h
src/mesa/program/symbol_table.c
src/mesa/program/symbol_table.h
src/mesa/slang/descrip.mms [deleted file]
src/mesa/slang/library/.gitignore [deleted file]
src/mesa/slang/library/Makefile [deleted file]
src/mesa/slang/library/SConscript [deleted file]
src/mesa/slang/library/slang_120_core.gc [deleted file]
src/mesa/slang/library/slang_builtin_120_common.gc [deleted file]
src/mesa/slang/library/slang_builtin_120_fragment.gc [deleted file]
src/mesa/slang/library/slang_common_builtin.gc [deleted file]
src/mesa/slang/library/slang_core.gc [deleted file]
src/mesa/slang/library/slang_fragment_builtin.gc [deleted file]
src/mesa/slang/library/slang_geometry_builtin.gc [deleted file]
src/mesa/slang/library/slang_vertex_builtin.gc [deleted file]
src/mesa/slang/slang_builtin.c [deleted file]
src/mesa/slang/slang_builtin.h [deleted file]
src/mesa/slang/slang_codegen.c [deleted file]
src/mesa/slang/slang_codegen.h [deleted file]
src/mesa/slang/slang_compile.c [deleted file]
src/mesa/slang/slang_compile.h [deleted file]
src/mesa/slang/slang_compile_function.c [deleted file]
src/mesa/slang/slang_compile_function.h [deleted file]
src/mesa/slang/slang_compile_operation.c [deleted file]
src/mesa/slang/slang_compile_operation.h [deleted file]
src/mesa/slang/slang_compile_struct.c [deleted file]
src/mesa/slang/slang_compile_struct.h [deleted file]
src/mesa/slang/slang_compile_variable.c [deleted file]
src/mesa/slang/slang_compile_variable.h [deleted file]
src/mesa/slang/slang_emit.c [deleted file]
src/mesa/slang/slang_emit.h [deleted file]
src/mesa/slang/slang_ir.c [deleted file]
src/mesa/slang/slang_ir.h [deleted file]
src/mesa/slang/slang_label.c [deleted file]
src/mesa/slang/slang_label.h [deleted file]
src/mesa/slang/slang_link.c [deleted file]
src/mesa/slang/slang_link.h [deleted file]
src/mesa/slang/slang_log.c [deleted file]
src/mesa/slang/slang_log.h [deleted file]
src/mesa/slang/slang_mem.c [deleted file]
src/mesa/slang/slang_mem.h [deleted file]
src/mesa/slang/slang_print.c [deleted file]
src/mesa/slang/slang_print.h [deleted file]
src/mesa/slang/slang_simplify.c [deleted file]
src/mesa/slang/slang_simplify.h [deleted file]
src/mesa/slang/slang_storage.c [deleted file]
src/mesa/slang/slang_storage.h [deleted file]
src/mesa/slang/slang_typeinfo.c [deleted file]
src/mesa/slang/slang_typeinfo.h [deleted file]
src/mesa/slang/slang_utility.c [deleted file]
src/mesa/slang/slang_utility.h [deleted file]
src/mesa/slang/slang_vartable.c [deleted file]
src/mesa/slang/slang_vartable.h [deleted file]
src/mesa/sources.mak
src/mesa/state_tracker/st_cb_accum.h
src/mesa/state_tracker/st_cb_bitmap.c
src/mesa/state_tracker/st_cb_blit.c
src/mesa/state_tracker/st_cb_drawpixels.c
src/mesa/state_tracker/st_cb_eglimage.c
src/mesa/state_tracker/st_cb_fbo.c
src/mesa/state_tracker/st_cb_fbo.h
src/mesa/state_tracker/st_cb_readpixels.c
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_context.c
src/mesa/state_tracker/st_context.h
src/mesa/state_tracker/st_draw.c
src/mesa/state_tracker/st_draw_feedback.c
src/mesa/state_tracker/st_extensions.c
src/mesa/state_tracker/st_format.c
src/mesa/state_tracker/st_manager.c
src/mesa/state_tracker/st_mesa_to_tgsi.c
src/mesa/state_tracker/st_program.c
src/mesa/state_tracker/st_texture.c
src/mesa/swrast/s_context.c
src/mesa/vbo/vbo_exec_array.c
src/mesa/x86/3dnow.h
src/mesa/x86/common_x86.c
src/mesa/x86/mmx.h
src/mesa/x86/sse.h
src/mesa/x86/x86_xform.c
src/talloc/SConscript [new file with mode: 0644]
src/talloc/gpl-3.0.txt [new file with mode: 0644]
src/talloc/lgpl-3.0.txt [new file with mode: 0644]
src/talloc/talloc.c [new file with mode: 0644]
src/talloc/talloc.def [new file with mode: 0644]
src/talloc/talloc.h [new file with mode: 0644]
src/talloc/talloc_guide.txt [new file with mode: 0644]

index ca465047158f874fc094f31728cd76641a05ce9d..2c146272fbcd4a1da9eced5c4df2ca0234bdc21c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -187,8 +187,6 @@ GLUT_NAME = MesaGLUT-$(VERSION)
 
 # This is part of MAIN_FILES
 MAIN_ES_FILES = \
-       $(DIRECTORY)/src/mesa/es/Makefile                               \
-       $(DIRECTORY)/src/mesa/es/sources.mak                            \
        $(DIRECTORY)/src/mesa/main/*.xml                                \
        $(DIRECTORY)/src/mesa/main/*.py                                 \
        $(DIRECTORY)/src/mesa/main/*.dtd
@@ -229,8 +227,10 @@ MAIN_FILES = \
        $(DIRECTORY)/src/glsl/Makefile                                  \
        $(DIRECTORY)/src/glsl/Makefile.template                         \
        $(DIRECTORY)/src/glsl/SConscript                                \
-       $(DIRECTORY)/src/glsl/*/Makefile                                \
-       $(DIRECTORY)/src/glsl/*/*.[ch]                                  \
+       $(DIRECTORY)/src/glsl/*.[ch]                                    \
+       $(DIRECTORY)/src/glsl/*.[cly]pp                                 \
+       $(DIRECTORY)/src/glsl/README                                    \
+       $(DIRECTORY)/src/glsl/glcpp/README                              \
        $(DIRECTORY)/src/Makefile                                       \
        $(DIRECTORY)/src/mesa/Makefile*                                 \
        $(DIRECTORY)/src/mesa/sources.mak                               \
@@ -246,10 +246,6 @@ MAIN_FILES = \
        $(DIRECTORY)/src/mesa/program/*.[chly]                          \
        $(DIRECTORY)/src/mesa/program/Makefile                          \
        $(DIRECTORY)/src/mesa/program/descrip.mms                       \
-       $(DIRECTORY)/src/mesa/slang/*.[ch]                              \
-       $(DIRECTORY)/src/mesa/slang/descrip.mms                         \
-       $(DIRECTORY)/src/mesa/slang/library/*.gc                        \
-       $(DIRECTORY)/src/mesa/slang/library/Makefile                    \
        $(DIRECTORY)/src/mesa/swrast/*.[ch]                             \
        $(DIRECTORY)/src/mesa/swrast/descrip.mms                        \
        $(DIRECTORY)/src/mesa/swrast_setup/*.[ch]                       \
@@ -278,8 +274,6 @@ MAIN_FILES = \
        $(DIRECTORY)/src/mesa/drivers/x11/Makefile                      \
        $(DIRECTORY)/src/mesa/drivers/x11/descrip.mms                   \
        $(DIRECTORY)/src/mesa/drivers/x11/*.[ch]                        \
-       $(DIRECTORY)/src/mesa/drivers/glslcompiler/Makefile             \
-       $(DIRECTORY)/src/mesa/drivers/glslcompiler/glslcompiler.c       \
        $(DIRECTORY)/src/mesa/ppc/*.[ch]                                \
        $(DIRECTORY)/src/mesa/sparc/*.[chS]                             \
        $(DIRECTORY)/src/mesa/x86/Makefile                              \
@@ -331,7 +325,6 @@ GALLIUM_FILES = \
        $(DIRECTORY)/src/gallium/Makefile.template                      \
        $(DIRECTORY)/src/gallium/SConscript                             \
        $(DIRECTORY)/src/gallium/targets/Makefile.dri                   \
-       $(DIRECTORY)/src/gallium/targets/Makefile.egl                   \
        $(DIRECTORY)/src/gallium/*/Makefile                             \
        $(DIRECTORY)/src/gallium/*/SConscript                           \
        $(DIRECTORY)/src/gallium/*/*/Makefile                           \
index a187d8d1b6faba6e4cf77bb0a3f87880c1e73714..bb03e5055eadf1d73407c8d539cf78aaa2f08fc3 100644 (file)
@@ -206,28 +206,6 @@ Export('env')
 # TODO: Build several variants at the same time?
 # http://www.scons.org/wiki/SimultaneousVariantBuilds
 
-if env['platform'] != common.default_platform:
-    # GLSL code has to be built twice -- one for the host OS, another for the target OS...
-
-    host_env = Environment(
-        # options are ignored
-        # default tool is used
-        tools = ['default', 'custom'],
-        toolpath = ['#scons'], 
-        ENV = os.environ,
-    )
-
-    host_env['platform'] = common.default_platform
-    host_env['machine'] = common.default_machine
-    host_env['debug'] = env['debug']
-
-    SConscript(
-        'src/glsl/SConscript',
-        variant_dir = os.path.join(env['build'], 'host'),
-        duplicate = 0, # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
-        exports={'env':host_env},
-    )
-
 SConscript(
        'src/SConscript',
        variant_dir = env['build'],
index 130025829ba727210ab8eef55b15b8412eeb9879..094ec0c2b2af7f675db1f23e8efdffaf0e23de37 100755 (executable)
@@ -31,7 +31,7 @@ if [ $# -ge 2 ] ; then
 
        # Last cmd line arg is the dest dir
        for FILE in $@ ; do
-               DEST="$FILE"
+               DESTDIR="$FILE"
        done
 
        # Loop over args, moving them to DEST directory
@@ -42,6 +42,25 @@ if [ $# -ge 2 ] ; then
                        exit 0
                fi
 
+                DEST=$DESTDIR
+
+                # On CYGWIN, because DLLs are loaded by the native Win32 loader,
+                # they are installed in the executable path.  Stub libraries used
+                # only for linking are installed in the library path
+                case `uname` in
+                    CYGWIN*)
+                        case $FILE in
+                            *.dll)
+                                DEST="$DEST/../bin"
+                                ;;
+                            *)
+                                ;;
+                        esac
+                       ;;
+                    *)
+                        ;;
+                esac
+
                PWDSAVE=`pwd`
 
                # determine file's type
index c2760e5d892724b0c6a065695c1f3752605ab43f..2f9223ff3c1c94c6690baedc88e245b101acd03d 100755 (executable)
--- a/bin/mklib
+++ b/bin/mklib
@@ -930,6 +930,16 @@ case $ARCH in
 
      CYGWIN*)
        # GCC-based environment
+
+       if [ "x$LINK" = "x" ] ; then
+           # -linker was not specified so set default link command now
+            if [ $CPLUSPLUS = 1 ] ; then
+                LINK=g++
+            else
+                LINK=gcc
+            fi
+       fi
+
        if [ $NOPREFIX = 1 ] ; then
            # No "lib" or ".so" part
            echo "mklib: Making CYGWIN shared library: " ${LIBNAME}
@@ -938,7 +948,7 @@ case $ARCH in
                 OPTS=${ALTOPTS}
             fi
            rm -f ${LIBNAME}
-           ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
+           ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS} || exit $?
            FINAL_LIBS=${LIBNAME}
         else
        CYGNAME="cyg${LIBNAME}"     # prefix with "cyg"
@@ -946,7 +956,7 @@ case $ARCH in
 
         if [ $STATIC = 1 ] ; then
            LIBNAME=${LIBNAME}.a
-            echo "mklib: Making" $ARCH "static library: " ${LIBNAME}
+            echo "mklib: Making CYGWIN static library: " ${LIBNAME}
             OPTS="-ru"
             if [ "${ALTOPTS}" ] ; then
                 OPTS=${ALTOPTS}
@@ -964,13 +974,7 @@ case $ARCH in
             if [ "${ALTOPTS}" ] ; then
                 OPTS=${ALTOPTS}
             fi
-            echo "mklib: Making" $ARCH "shared library: " ${CYGNAME}-${MAJOR}.dll
-
-            if [ $CPLUSPLUS = 1 ] ; then
-                LINK="g++"
-            else
-                LINK="gcc"
-            fi
+            echo "mklib: Making CYGWIN shared library: " ${CYGNAME}-${MAJOR}.dll
 
             # rm any old libs
             rm -f ${CYGNAME}-${MAJOR}.dll
@@ -979,12 +983,7 @@ case $ARCH in
             rm -f ${LIBNAME}.a
 
             # make lib
-            ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS}
-            # make build fail if link failed
-            es=$?
-            if [ "$es" -ne "0" ]; then
-                exit $es
-            fi
+            ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS} || exit $?
             # make usual symlinks
             ln -s ${LIBNAME}-${MAJOR}.dll.a ${LIBNAME}.dll.a
             # finish up
@@ -1024,4 +1023,9 @@ if [ ${INSTALLDIR} != "." ] ; then
     echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR}
     test -d ${INSTALLDIR} || mkdir -p ${INSTALLDIR}
     mv ${FINAL_LIBS} ${INSTALLDIR}/
+
+    if [ "x${FINAL_BINS}" != "x" ] ; then
+        echo "mklib: Installing" ${FINAL_BINS} "in" ${INSTALLDIR}
+        mv ${FINAL_BINS} ${INSTALLDIR}/
+    fi
 fi
index c7611a6f7812105a7fe5f3da43b1288aa2fef7c8..10d311fa4d3de6a080af2320500d25df96a04685 100644 (file)
@@ -34,6 +34,9 @@ LLVM_LIBS = @LLVM_LIBS@
 GLW_CFLAGS = @GLW_CFLAGS@
 GLUT_CFLAGS = @GLUT_CFLAGS@
 
+TALLOC_LIBS = @TALLOC_LIBS@
+TALLOC_CFLAGS = @TALLOC_CFLAGS@
+
 # dlopen
 DLOPEN_LIBS = @DLOPEN_LIBS@
 
index 8711a382cc0807f0b11745b6012e2ef4bec72bf8..7c9cdf18aee0d55f22e8fba9bb1a942eda97e0f6 100644 (file)
@@ -82,6 +82,9 @@ GLESv1_CM_LIB_GLOB = $(GLESv1_CM_LIB_NAME)*
 GLESv2_LIB_GLOB = $(GLESv2_LIB_NAME)*
 VG_LIB_GLOB = $(VG_LIB_NAME)*
 
+TALLOC_LIBS = `pkg-config --libs talloc`
+TALLOC_CFLAGS = `pkg-config --cflags talloc`
+
 # Optional assembly language optimization files for libGL
 MESA_ASM_SOURCES = 
 
@@ -116,7 +119,7 @@ EGL_CLIENT_APIS = $(GL_LIB)
 
 # Library dependencies
 #EXTRA_LIB_PATH ?=
-GL_LIB_DEPS     = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
+GL_LIB_DEPS     = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread $(TALLOC_LIBS)
 EGL_LIB_DEPS    = $(EXTRA_LIB_PATH) -ldl -lpthread
 OSMESA_LIB_DEPS = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
 GLU_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
index de90f38cfe9192638333ac4e7c2d063b88eef26c..6f86277c4afa07afffce635f0f5e66df840501bc 100644 (file)
@@ -45,7 +45,7 @@ EXTRA_LIB_PATH=-L/usr/X11R6/lib
 
 LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm)
 LIBDRM_LIB = $(shell pkg-config --libs libdrm)
-DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
+DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl -ltalloc $(LIBDRM_LIB)
 GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
                -lm -lpthread -ldl $(LIBDRM_LIB)
 
index 83d2fc371760751b6e7115974652e9ae5b097e56..6aa434032dc46368a9069d784bcf2ae1f3bdb222 100644 (file)
@@ -41,4 +41,4 @@ else
 endif
 
 LD = g++
-GL_LIB_DEPS = $(LLVM_LDFLAGS) $(LLVM_LIBS) $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread -lstdc++ -ludis86
+GL_LIB_DEPS = $(LLVM_LDFLAGS) $(LLVM_LIBS) $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread -ltalloc -lstdc++ -ludis86
index 9f3006230eb54ed213dabcfd12cd55233d02d5ca..d3d74ac265a7064567964f360853eaccca16eafa 100644 (file)
@@ -48,9 +48,23 @@ solaris*)
     ;;
 esac
 
+dnl clang is mostly GCC-compatible, but its version is much lower,
+dnl so we have to check for it.
+AC_MSG_CHECKING([if compiling with clang])
+
+AC_COMPILE_IFELSE(
+[AC_LANG_PROGRAM([], [[
+#ifndef __clang__
+       not clang
+#endif
+]])],
+[CLANG=yes], [CLANG=no])
+
+AC_MSG_RESULT([$CLANG])
+
 dnl If we're using GCC, make sure that it is at least version 3.3.0.  Older
 dnl versions are explictly not supported.
-if test "x$GCC" = xyes; then
+if test "x$GCC" = xyes -a "x$CLANG" = xno; then
     AC_MSG_CHECKING([whether gcc version is sufficient])
     major=0
     minor=0
@@ -123,7 +137,10 @@ esac
 
 dnl Add flags for gcc and g++
 if test "x$GCC" = xyes; then
-    CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"
+    CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
+    if test "x$CLANG" = "xno"; then
+       CFLAGS="$CFLAGS -ffast-math"
+    fi
 
     # Enable -fvisibility=hidden if using a gcc that supports it
     save_CFLAGS="$CFLAGS"
@@ -258,6 +275,8 @@ fi
 dnl
 dnl library names
 dnl
+LIB_PREFIX_GLOB='lib'
+LIB_VERSION_SEPARATOR='.'
 if test "$enable_static" = yes; then
     LIB_EXTENSION='a'
 else
@@ -265,7 +284,10 @@ else
     darwin* )
         LIB_EXTENSION='dylib' ;;
     cygwin* )
-        LIB_EXTENSION='dll.a' ;;
+        dnl prefix can be 'cyg' or 'lib'
+        LIB_PREFIX_GLOB='???'
+        LIB_VERSION_SEPARATOR='-'
+        LIB_EXTENSION='dll' ;;
     aix* )
         LIB_EXTENSION='a' ;;
     * )
@@ -283,15 +305,16 @@ GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
 
-GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*'
-GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*'
-GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*'
-GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*'
-OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*'
-EGL_LIB_GLOB='lib$(EGL_LIB).*'${LIB_EXTENSION}'*'
-GLESv1_CM_LIB_GLOB='lib$(GLESv1_CM_LIB).*'${LIB_EXTENSION}'*'
-GLESv2_LIB_GLOB='lib$(GLESv2_LIB).*'${LIB_EXTENSION}'*'
-VG_LIB_GLOB='lib$(VG_LIB).*'${LIB_EXTENSION}'*'
+GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
+GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
+GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
+GLW_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLW_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
+OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
+EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
+EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
+GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
+GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
+VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
 
 AC_SUBST([GL_LIB_NAME])
 AC_SUBST([GLU_LIB_NAME])
@@ -463,6 +486,10 @@ xxlib|xdri|xosmesa)
     ;;
 esac
 
+PKG_CHECK_MODULES([TALLOC], [talloc])
+AC_SUBST([TALLOC_LIBS])
+AC_SUBST([TALLOC_CFLAGS])
+
 dnl
 dnl Driver specific build directories
 dnl
@@ -574,8 +601,8 @@ xlib)
         GL_PC_LIB_PRIV="$GL_LIB_DEPS"
         GL_PC_CFLAGS="$X11_INCLUDES"
     fi
-    GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
-    GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
+    GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $TALLOC_LIBS"
+    GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread $TALLOC_LIBS"
 
     # if static, move the external libraries to the programs
     # and empty the libraries for libGL
@@ -853,7 +880,7 @@ if test "$mesa_driver" = dri; then
         [AC_MSG_ERROR([Expat required for DRI.])])
 
     # put all the necessary libs together
-    DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
+    DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS $TALLOC_LIBS"
 fi
 AC_SUBST([DRI_DIRS])
 AC_SUBST([EXPAT_INCLUDES])
@@ -931,12 +958,12 @@ case "$DRIVER_DIRS" in
 *osmesa*)
     # only link libraries with osmesa if shared
     if test "$enable_static" = no; then
-        OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
+        OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS $TALLOC_LIBS"
     else
         OSMESA_LIB_DEPS=""
     fi
     OSMESA_MESA_DEPS=""
-    OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
+    OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS $TALLOC_LIBS"
     ;;
 esac
 AC_SUBST([OSMESA_LIB_DEPS])
@@ -1484,7 +1511,7 @@ AC_ARG_ENABLE([gallium-radeon],
     [enable_gallium_radeon=auto])
 if test "x$enable_gallium_radeon" = xyes; then
     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
-    gallium_check_st "radeon/drm" "dri-radeong" "xorg-radeon"
+    gallium_check_st "radeon/drm" "dri-r300" "xorg-radeon"
 elif test "x$enable_gallium_radeon" = xauto; then
     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
 fi
diff --git a/docs/MESA_drm_image.spec b/docs/MESA_drm_image.spec
new file mode 100644 (file)
index 0000000..118501c
--- /dev/null
@@ -0,0 +1,149 @@
+Name
+
+    MESA_drm_image
+
+Name Strings
+
+    EGL_MESA_drm_image
+
+Contact
+
+    Kristian Høgsberg <krh@bitplanet.net>
+
+Status
+
+    Proposal
+
+Version
+
+    Version 2, August 25, 2010
+
+Number
+
+    EGL Extension #not assigned
+
+Dependencies
+
+    Reguires EGL 1.4 or later.  This extension is written against the
+    wording of the EGL 1.4 specification.
+
+    EGL_KHR_base_image is required.
+
+Overview
+
+    This extension provides entry points for integrating EGLImage with the
+    Linux DRM mode setting and memory management drivers.  The extension
+    lets applications create EGLImages without a client API resource and
+    lets the application get the DRM buffer handles.
+
+IP Status
+
+    Open-source; freely implementable.
+
+New Procedures and Functions
+
+    EGLImageKHR eglCreateDRMImageMESA(EGLDisplay dpy,
+                                      const EGLint *attrib_list);
+
+    EGLBoolean eglExportDRMImageMESA(EGLDisplay dpy,
+                                     EGLImageKHR image,
+                                     EGLint *name,
+                                    EGLint *handle,
+                                    EGLint *stride);
+
+New Tokens
+
+    Accepted in the <attrib_list> parameter of eglCreateDRMImageMESA:
+
+        EGL_DRM_BUFFER_FORMAT_MESA             0x31D0
+        EGL_DRM_BUFFER_USE_MESA                        0x31D1
+
+    Accepted as values for the EGL_IMAGE_FORMAT_MESA attribute:
+
+        EGL_DRM_BUFFER_FORMAT_ARGB32_MESA      0x31D2
+
+    Bits accepted in EGL_DRM_BUFFER_USE_MESA:
+
+        EGL_DRM_BUFFER_USE_SCANOUT_MESA                0x0001
+        EGL_DRM_BUFFER_USE_SHARE_MESA          0x0002
+
+    Accepted in the <target> parameter of eglCreateImageKHR:
+
+        EGL_DRM_BUFFER_MESA                    0x31D3
+
+    Use when importing drm buffer:
+
+        EGL_DRM_BUFFER_STRIDE_MESA             0x31D4
+        EGL_DRM_BUFFER_FORMAT_MESA             0x31D0
+
+Additions to the EGL 1.4 Specification:
+
+    To create a DRM EGLImage, call
+
+        EGLImageKHR eglCreateDRMImageMESA(EGLDisplay dpy,
+                                          const EGLint *attrib_list);
+
+    In the attribute list, pass EGL_WIDTH, EGL_EIGHT and format and
+    use in the attrib list using EGL_DRM_BUFFER_FORMAT_MESA and
+    EGL_DRM_BUFFER_USE_MESA.  The only format specified by this
+    extension is EGL_DRM_BUFFER_FORMAT_ARGB32_MESA, where each pixel
+    is a CPU-endian, 32-bit quantity, with alpha in the upper 8 bits,
+    then red, then green, then blue.  The bit values accepted by
+    EGL_DRM_BUFFER_USE_MESA are EGL_DRM_BUFFER_USE_SCANOUT_MESA and
+    EGL_DRM_BUFFER_USE_SHARE_MESA.  EGL_DRM_BUFFER_USE_SCANOUT_MESA
+    requests that the created EGLImage should be usable as a scanout
+    buffer with the DRM kernel modesetting API.  The
+    EGL_DRM_BUFFER_USE_SHARE_MESA bit requests that the EGLImage can
+    be shared with other processes by passing the underlying DRM
+    buffer name.
+
+    To create a process local handle or a global DRM name for a
+    buffer, call
+
+        EGLBoolean eglExportDRMImageMESA(EGLDisplay dpy,
+                                         EGLImageKHR image,
+                                         EGLint *name,
+                                         EGLint *handle,
+                                         EGLint *stride);
+
+    If <name> is non-NULL, a global name is assigned to the image and
+    written to <name>, the handle (local to the DRM file descriptor,
+    for use with DRM kernel modesetting API) is written to <handle> if
+    non-NULL and the stride (in bytes) is written to <stride>, if
+    non-NULL.
+
+    Import a shared buffer by calling eglCreateImageKHR with
+    EGL_DRM_BUFFER_MESA as the target, using EGL_WIDTH, EGL_HEIGHT,
+    EGL_DRM_BUFFER_FORMAT_MESA, EGL_DRM_BUFFER_STRIDE_MESA
+    in the attrib list.
+
+Issues
+
+    1.  Why don't we use eglCreateImageKHR with a target that
+        indicates that we want to create an EGLImage from scratch?
+
+        RESOLVED: The eglCreateImageKHR entry point is reserved for
+        creating an EGLImage from an already existing client API
+        resource.  This is fine when we're creating the EGLImage from
+        an existing DRM buffer name, it doesn't seem right to overload
+        the function to also allocate the underlying resource.
+
+    2.  Why don't we use an eglQueryImageMESA type functions for
+        querying the DRM EGLImage attributes (name, handle, and stride)?
+
+        RESOLVED: The eglQueryImage function has been proposed often,
+        but it goes against the EGLImage design.  EGLImages are opaque
+        handles to a 2D array of pixels, which can be passed between
+        client APIs.  By referenceing an EGLImage in a client API, the
+        EGLImage target (a texture, a renderbuffer or such) can be
+        used to query the attributes of the EGLImage.  We don't have a
+        full client API for creating and querying DRM buffers, though,
+        so we use a new EGL extension entry point instead.
+
+Revision History
+
+    Version 1, June 3, 2010
+        Initial draft (Kristian Høgsberg)
+    Version 2, August 25, 2010
+        Flesh out the extension a bit, add final EGL tokens, capture
+        some of the original discussion in the issues section.
index cca20ecaae877805e6b3b3756ece26c3efd5e229..cf1661e4eac2e9d08273fcda83f954408d08ce8b 100644 (file)
@@ -69,7 +69,6 @@ a:visited {
 <li><a href="http://sourceforge.net/projects/mesa3d" target="_parent">SourceForge homepage</a>
 <li><a href="repository.html" target="MainFrame">Source Code Repository</a>
 <li><a href="sourcetree.html" target="MainFrame">Source Code Tree</a>
-<li><a href="memory.html" target="MainFrame">DRI Memory Management</a>
 <li><a href="glu.html" target="MainFrame">SGI's GLU</a>
 <li><a href="utilities.html" target="MainFrame">Utilities</a>
 <li><a href="helpwanted.html" target="MainFrame">Help Wanted</a>
index 410f1ac5e8e0a448b9cac658581bc0879e9eff47..8960e7cb48bd5d47a65a8f8c151ebda454dcf7af 100644 (file)
 Both professional and volunteer developers contribute to Mesa.
 </p>
 <p>
-<a href="http://www.tungstengraphics.com/" target="_parent">Tungsten Graphics</a>
+<a href="http://www.vmware.com/" target="_parent">VMware</a>
 employs several of the main Mesa developers including Brian Paul
 and Keith Whitwell.
-Much of the on-going work in Mesa is done through Tungsten Graphics engineering
-contracts.
-Prominent examples of this work includes:
+</p>
+
+<p>
+In the past, Tungsten Graphics contracts implemented many Mesa features
+including:
 </p>
 <ul>
 <li>DRI drivers for Intel i965, i945, i915 and other chips
@@ -29,23 +31,19 @@ Prominent examples of this work includes:
 <p>
 Other companies including
 <a href="http://www.intellinuxgraphics.org/index.html" target="_parent">Intel</a>
-and IBM also actively contribute to the project.
+and RedHat also actively contribute to the project.
+Intel has recently contributed the new GLSL compiler in Mesa 7.9.
 </p>
 
 <p>
-Volunteers have made significant contributions to all parts of Mesa, including
-complete device drivers.
+<a href="http://www.lunarg.com/" target="_parent">LunarG</a> can be contacted
+for custom Mesa / 3D graphics development.
 </p>
 
-
-<H1>Custom Development</H1>
 <p>
-Contact <a href="http://www.tungstengraphics.com/" target="_parent">
-Tungsten Graphics</a>
-for information about custom development in Mesa, OpenGL, X and other
-graphics technologies.
+Volunteers have made significant contributions to all parts of Mesa, including
+complete device drivers.
 </p>
 
-
 </body>
 </html>
index aae2e6e1928b2dde5302dc09752b6b81a63ea554..0806caf388e12a15041e502f8fd7d91669a641a0 100644 (file)
@@ -111,11 +111,9 @@ It implements the OpenGL 1.3 specification.
 
 
 <p>
-November 2001: I cofound <a href="http://www.tungstengraphics.com" target="_parent">
-Tungsten Graphics, Inc.</a> with Keith Whitwell, Jens Owen, David Dawes and
-Frank LaMonica.
-I continue to develop Mesa as part of my resposibilities with Tungsten
-Graphics and as a spare-time project.
+November 2001: I cofounded Tungsten Graphics, Inc. with Keith Whitwell,
+Jens Owen, David Dawes and Frank LaMonica.
+Tungsten Graphics was acquired by VMware in December 2008.
 </p>
 
 <p>
index b7731cdaf3fd3f541ba5991835f773a2a0cf01a3..09385ad35e147344420ae68da8f7e648173ef391 100644 (file)
 <H1>News</H1>
 
 
+<h2>June 16, 2010</h2>
+
+<p>
+<a href="relnotes-7.8.2.html">Mesa 7.8.2</a> is released.  This is a bug-fix
+release collecting fixes since the 7.8.1 release.
+</p>
+
+
 <h2>April 5, 2010</h2>
 
 <p>
@@ -157,9 +165,6 @@ Added a new page describing the <a href="cell.html">Mesa Cell driver</a>.
 <p>
 Gallium3D is the codename for the new Mesa device driver architecture
 which is currently under development.
-A <a href="http://wiki.freedesktop.org/wiki/Software/gallium"
-target="_parent"> summary</a> of the architecture can be found on the
-Tungsten Graphics website.
 </p>
 <p>
 Gallium3D development is taking place on the <em>gallium-0.1</em> branch
@@ -210,11 +215,8 @@ shading language and built-in functions.
 
 <h2>April 2007</h2>
 <p>
-Thomas Hellstr&ouml;m of
-<a href="http://www.tungstengraphics.com" target="_parent">
-Tungsten Graphics</a> has written a whitepaper describing the new
-<a href="http://www.tungstengraphics.com/mm.pdf">DRI memory management
-system</a>.
+Thomas Hellstr&ouml;m of Tungsten Graphics has written a whitepaper
+describing the new DRI memory management system</a>.
 </p>
 
 <h2>December 5, 2006</h2>
index 457dd8fd05d9ef864945ff2438984ee3782225a3..2cc7c4ec622361e949653b3e5cc6f2e2668d6526 100644 (file)
@@ -34,7 +34,11 @@ tbd
 
 <h2>New features</h2>
 <ul>
+<li>New, improved GLSL compiler written by Intel.
+    See the <a href="shading.html"> Shading Language</a> page for
+    more information.
 <li>GL_EXT_timer_query extension (i965 driver only)
+<li>GL_EXT_framebuffer_multisample extension (intel drivers, MAX_SAMPLES = 1)
 <li>GL_ARB_texture_swizzle extension (alias of GL_EXT_texture_swizzle)
 <li>GL_ARB_draw_elements_base_vertex, GL_ARB_fragment_program_shadow
     and GL_EXT_draw_buffers2 in Gallium drivers
index 750884cf36c448c8acfb7fd98edb0d0d70bfa5e7..c41d4a9be2b18e73bb6006774e5acc4d2e790782 100644 (file)
@@ -39,19 +39,19 @@ list of keywords to control some aspects of the GLSL compiler and shader
 execution.  These are generally used for debugging.
 </p>
 <ul>
-<li>dump - print GLSL shader code to stdout at link time
-<li>log - log all GLSL shaders to files.
+<li><b>dump</b> - print GLSL shader code to stdout at link time
+<li><b>log</b> - log all GLSL shaders to files.
     The filenames will be "shader_X.vert" or "shader_X.frag" where X
     the shader ID.
-<li>nopt - disable compiler optimizations
-<li>opt - force compiler optimizations
-<li>uniform - print message to stdout when glUniform is called
-<li>nopvert - force vertex shaders to be a simple shader that just transforms
+<li><b>nopt</b> - disable compiler optimizations
+<li><b>opt</b> - force compiler optimizations
+<li><b>uniform</b> - print message to stdout when glUniform is called
+<li><b>nopvert</b> - force vertex shaders to be a simple shader that just transforms
     the vertex position with ftransform() and passes through the color and
     texcoord[0] attributes.
-<li>nopfrag - force fragment shader to be a simple shader that passes
+<li><b>nopfrag</b> - force fragment shader to be a simple shader that passes
     through the color attribute.
-<li>useprog - log glUseProgram calls to stderr
+<li><b>useprog</b> - log glUseProgram calls to stderr
 </ul>
 <p>
 Example:  export MESA_GLSL=dump,nopt
@@ -59,30 +59,28 @@ Example:  export MESA_GLSL=dump,nopt
 
 
 <a name="120">
-<h2>GLSL 1.20 support</h2>
+<h2>GLSL Version</h2>
 
 <p>
-GLSL version 1.20 is supported in Mesa 7.3 and later.
-Among the features/differences of GLSL 1.20 are:
+The GLSL compiler currently supports version 1.20 of the shading language.
+</p>
+
+<p>
+Several GLSL extensions are also supported:
+</p>
 <ul>
-<li><code>mat2x3, mat2x4</code>, etc. types and functions
-<li><code>transpose(), outerProduct(), matrixCompMult()</code> functions
-(but untested)
-<li>precision qualifiers (lowp, mediump, highp)
-<li><code>invariant</code> qualifier
-<li><code>array.length()</code> method
-<li><code>float[5] a;</code> array syntax
-<li><code>centroid</code> qualifier
-<li>unsized array constructors
-<li>initializers for uniforms
-<li>const initializers calling built-in functions
+<li>GL_ARB_draw_buffers
+<li>GL_ARB_texture_rectangle
+<li>GL_ARB_fragment_coord_conventions
+<li>GL_EXT_texture_array
 </ul>
 
 
-
 <a name="unsup">
 <h2>Unsupported Features</h2>
 
+<p>XXX update this section</p>
+
 <p>
 The following features of the shading language are not yet fully supported
 in Mesa:
@@ -130,39 +128,6 @@ These issues will be addressed/resolved in the future.
 <h2>Programming Hints</h2>
 
 <ul>
-<li>Declare <em>in</em> function parameters as <em>const</em> whenever possible.
-    This improves the efficiency of function inlining.
-</li>
-<br>
-<li>To reduce register usage, declare variables within smaller scopes.
-    For example, the following code:
-<pre>
-    void main()
-    {
-       vec4 a1, a2, b1, b2;
-       gl_Position = expression using a1, a2.
-       gl_Color = expression using b1, b2;
-    }
-</pre>
-    Can be rewritten as follows to use half as many registers:
-<pre>
-    void main()
-    {
-       {
-          vec4 a1, a2;
-          gl_Position = expression using a1, a2.
-       }
-       {
-          vec4 b1, b2;
-          gl_Color = expression using b1, b2;
-       }
-    }
-</pre>
-    Alternately, rather than using several float variables, use
-    a vec4 instead.  Use swizzling and writemasks to access the
-    components of the vec4 as floats.
-</li>
-<br>
 <li>Use the built-in library functions whenever possible.
     For example, instead of writing this:
 <pre>
@@ -172,8 +137,6 @@ These issues will be addressed/resolved in the future.
 <pre>
         float x = inversesqrt(y);
 </pre>
-<li>
-   Use ++i when possible as it's more efficient than i++
 </li>
 </ul>
 
@@ -182,13 +145,8 @@ These issues will be addressed/resolved in the future.
 <h2>Stand-alone GLSL Compiler</h2>
 
 <p>
-A unique stand-alone GLSL compiler driver has been added to Mesa.
-<p>
-
-<p>
-The stand-alone compiler (like a conventional command-line compiler)
-is a tool that accepts Shading Language programs and emits low-level
-GPU programs.
+The stand-alone GLSL compiler program can be used to compile GLSL shaders
+into low-level GPU code.
 </p>
 
 <p>
@@ -201,59 +159,25 @@ This tool is useful for:
 </ul>
 
 <p>
-After building Mesa, the glslcompiler can be built by manually running:
+After building Mesa, the compiler can be found at src/glsl/glsl_compiler
 </p>
-<pre>
-    make realclean
-    make linux
-    cd src/mesa/drivers/glslcompiler
-    make
-</pre>
-
 
 <p>
 Here's an example of using the compiler to compile a vertex shader and
 emit GL_ARB_vertex_program-style instructions:
 </p>
 <pre>
-    bin/glslcompiler --debug --numbers --fs progs/glsl/CH06-brick.frag.txt
-</pre>
-<p>
-results in:
-</p>
-<pre>
-# Fragment Program/Shader
-  0: RCP TEMP[4].x, UNIFORM[2].xxxx;
-  1: RCP TEMP[4].y, UNIFORM[2].yyyy;
-  2: MUL TEMP[3].xy, VARYING[0], TEMP[4];
-  3: MOV TEMP[1], TEMP[3];
-  4: MUL TEMP[0].w, TEMP[1].yyyy, CONST[4].xxxx;
-  5: FRC TEMP[1].z, TEMP[0].wwww;
-  6: SGT.C TEMP[0].w, TEMP[1].zzzz, CONST[4].xxxx;
-  7: IF (NE.wwww); # (if false, goto 9);
-  8:    ADD TEMP[1].x, TEMP[1].xxxx, CONST[4].xxxx;
-  9: ENDIF;
- 10: FRC TEMP[1].xy, TEMP[1];
- 11: SGT TEMP[2].xy, UNIFORM[3], TEMP[1];
- 12: MUL TEMP[1].z, TEMP[2].xxxx, TEMP[2].yyyy;
- 13: LRP TEMP[0], TEMP[1].zzzz, UNIFORM[0], UNIFORM[1];
- 14: MUL TEMP[0].xyz, TEMP[0], VARYING[1].xxxx;
- 15: MOV OUTPUT[0].xyz, TEMP[0];
- 16: MOV OUTPUT[0].w, CONST[4].yyyy;
- 17: END
+    src/glsl/glslcompiler --dump-ast myshader.vert
 </pre>
 
-<p>
-Note that some shading language constructs (such as uniform and varying
-variables) aren't expressible in ARB or NV-style programs.
-Therefore, the resulting output is not always legal by definition of
-those program languages.
-</p>
-<p>
-Also note that this compiler driver is still under development.
-Over time, the correctness of the GPU programs, with respect to the ARB
-and NV languagues, should improve.
-</p>
+Options include
+<ul>
+<li><b>--dump-ast</b> - dump GPU code
+<li><b>--dump-hir</b> - dump high-level IR code
+<li><b>--dump-lir</b> - dump low-level IR code
+<li><b>--link</b> - ???
+</ul>
+
 
 
 
@@ -262,38 +186,12 @@ and NV languagues, should improve.
 
 <p>
 The source code for Mesa's shading language compiler is in the
-<code>src/mesa/shader/slang/</code> directory.
+<code>src/glsl/</code> directory.
 </p>
 
 <p>
-The compiler follows a fairly standard design and basically works as follows:
+XXX provide some info about the compiler....
 </p>
-<ul>
-<li>The input string is tokenized (see grammar.c) and parsed
-(see slang_compiler_*.c) to produce an Abstract Syntax Tree (AST).
-The nodes in this tree are slang_operation structures
-(see slang_compile_operation.h).
-The nodes are decorated with symbol table, scoping and datatype information.
-<li>The AST is converted into an Intermediate representation (IR) tree
-(see the slang_codegen.c file).
-The IR nodes represent basic GPU instructions, like add, dot product,
-move, etc. 
-The IR tree is mostly a binary tree, but a few nodes have three or four
-children.
-In principle, the IR tree could be executed by doing an in-order traversal.
-<li>The IR tree is traversed in-order to emit code (see slang_emit.c).
-This is also when registers are allocated to store variables and temps.
-<li>In the future, a pattern-matching code generator-generator may be
-used for code generation.
-Programs such as L-BURG (Bottom-Up Rewrite Generator) and Twig look for
-patterns in IR trees, compute weights for subtrees and use the weights
-to select the best instructions to represent the sub-tree.
-<li>The emitted GPU instructions (see prog_instruction.h) are stored in a
-gl_program object (see mtypes.h).
-<li>When a fragment shader and vertex shader are linked (see slang_link.c)
-the varying vars are matched up, uniforms are merged, and vertex
-attributes are resolved (rewriting instructions as needed).
-</ul>
 
 <p>
 The final vertex and fragment programs may be interpreted in software
@@ -351,20 +249,20 @@ Extra NOP instructions will also be inserted.
 <h2>Compiler Validation</h2>
 
 <p>
-A <a href="http://glean.sf.net" target="_parent">Glean</a> test has
-been create to exercise the GLSL compiler.
-</p>
-<p>
-The <em>glsl1</em> test runs over 170 sub-tests to check that the language
-features and built-in functions work properly.
-This test should be run frequently while working on the compiler to catch
+Developers working on the GLSL compiler should test frequently to avoid
 regressions.
 </p>
+
 <p>
-The test coverage is reasonably broad and complete but additional tests
-should be added.
+The <a href="http://people.freedesktop.org/~nh/piglit/">Piglit</a> project
+has many GLSL tests and the
+<a href="http://glean.sf.net" target="_parent">Glean</a> glsl1 test 
+tests GLSL features.
 </p>
 
+<p>
+The Mesa demos repository also has some good GLSL tests.
+</p>
 
 </BODY>
 </HTML>
index dac66a61bae3a4f4a891d3e20bf2f5052a4da48b..d576bb674400cf9d1718a5d5f170143ccc13c3e0 100644 (file)
@@ -16,8 +16,7 @@
 </h3>
 </center>
 </h2>
-<p> Copyright &copy; 2002-2003 by <a
- href="http://www.tungstengraphics.com/">Tungsten Graphics, Inc.</a>,
+<p> Copyright &copy; 2002-2003 by Tungsten Graphics, Inc.,
 Cedar Park, Texas. All Rights Reserved. <br>
 <br>
 Permission is granted to make and distribute verbatim copies of this
index 68591bdeb8c5adca5be59badadffd9d9cc24a155..04603931b3844a1fdb65fba824bfc4f9b034cbb9 100644 (file)
@@ -6,7 +6,7 @@ extern "C" {
 #endif
 
 /*
-** Copyright (c) 2007-2009 The Khronos Group Inc.
+** Copyright (c) 2007-2010 The Khronos Group Inc.
 **
 ** Permission is hereby granted, free of charge, to any person obtaining a
 ** copy of this software and/or associated documentation files (the
@@ -34,8 +34,8 @@ extern "C" {
 
 /* Header file version number */
 /* Current version at http://www.khronos.org/registry/egl/ */
-/* $Revision: 10185 $ on $Date: 2010-01-22 11:38:01 -0800 (Fri, 22 Jan 2010) $ */
-#define EGL_EGLEXT_VERSION 5
+/* $Revision: 12124 $ on $Date: 2010-07-27 20:12:35 -0700 (Tue, 27 Jul 2010) $ */
+#define EGL_EGLEXT_VERSION 7
 
 #ifndef EGL_KHR_config_attribs
 #define EGL_KHR_config_attribs 1
@@ -120,6 +120,30 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGL
 #define EGL_GL_RENDERBUFFER_KHR                        0x30B9  /* eglCreateImageKHR target */
 #endif
 
+#ifndef EGL_MESA_drm_image
+#define EGL_MESA_drm_image 1
+#define EGL_DRM_BUFFER_FORMAT_MESA             0x31D0  /* eglCreateImageKHR attribute */
+#define EGL_DRM_BUFFER_USE_MESA                        0x31D1
+
+/* EGL_DRM_BUFFER_FORMAT_MESA tokens */
+#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA      0x31D2
+
+/* EGL_DRM_BUFFER_USE_MESA bits */
+#define EGL_DRM_BUFFER_USE_SCANOUT_MESA                0x0001
+#define EGL_DRM_BUFFER_USE_SHARE_MESA          0x0002
+
+#define EGL_DRM_BUFFER_MESA                    0x31D3  /* eglCreateImageKHR target */
+#define EGL_DRM_BUFFER_STRIDE_MESA             0x31D4  /* eglCreateImageKHR attribute */
+
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA(EGLDisplay dpy, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA(EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
+#endif
+typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESA) (EGLDisplay dpy, const EGLint *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESA) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
+#endif
+
+#if KHRONOS_SUPPORT_INT64   /* EGLTimeKHR requires 64-bit uint support */
 #ifndef EGL_KHR_reusable_sync
 #define EGL_KHR_reusable_sync 1
 
@@ -149,6 +173,7 @@ typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSy
 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
 #endif
+#endif
 
 /* EGL_MESA_screen extension  >>> PRELIMINARY <<< */
 #ifndef EGL_MESA_screen_surface
@@ -238,6 +263,101 @@ typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETDRMDISPLAYMESA) (int fd);
 #define EGL_CONTEXT_PRIORITY_LOW_IMG           0x3103
 #endif
 
+#ifndef EGL_KHR_lock_surface2
+#define EGL_KHR_lock_surface2 1
+#define EGL_BITMAP_PIXEL_SIZE_KHR              0x3110
+#endif
+
+#ifndef EGL_NV_coverage_sample
+#define EGL_NV_coverage_sample 1
+#define EGL_COVERAGE_BUFFERS_NV 0x30E0
+#define EGL_COVERAGE_SAMPLES_NV 0x30E1
+#endif
+
+#ifndef EGL_NV_depth_nonlinear
+#define EGL_NV_depth_nonlinear 1
+#define EGL_DEPTH_ENCODING_NV 0x30E2
+#define EGL_DEPTH_ENCODING_NONE_NV 0
+#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
+#endif
+
+#if KHRONOS_SUPPORT_INT64   /* EGLTimeNV requires 64-bit uint support */
+#ifndef EGL_NV_sync
+#define EGL_NV_sync 1
+#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV    0x30E6
+#define EGL_SYNC_STATUS_NV                     0x30E7
+#define EGL_SIGNALED_NV                                0x30E8
+#define EGL_UNSIGNALED_NV                      0x30E9
+#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV         0x0001
+#define EGL_FOREVER_NV                         0xFFFFFFFFFFFFFFFFull
+#define EGL_ALREADY_SIGNALED_NV                        0x30EA
+#define EGL_TIMEOUT_EXPIRED_NV                 0x30EB
+#define EGL_CONDITION_SATISFIED_NV             0x30EC
+#define EGL_SYNC_TYPE_NV                       0x30ED
+#define EGL_SYNC_CONDITION_NV                  0x30EE
+#define EGL_SYNC_FENCE_NV                      0x30EF
+#define EGL_NO_SYNC_NV                         ((EGLSyncNV)0)
+typedef void* EGLSyncNV;
+typedef khronos_utime_nanoseconds_t EGLTimeNV;
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLSyncNV eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
+EGLBoolean eglDestroySyncNV (EGLSyncNV sync);
+EGLBoolean eglFenceNV (EGLSyncNV sync);
+EGLint eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
+EGLBoolean eglSignalSyncNV (EGLSyncNV sync, EGLenum mode);
+EGLBoolean eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value);
+#endif /* EGL_EGLEXT_PROTOTYPES */
+typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync);
+typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value);
+#endif
+#endif
+
+#if KHRONOS_SUPPORT_INT64   /* Dependent on EGL_KHR_reusable_sync which requires 64-bit uint support */
+#ifndef EGL_KHR_fence_sync
+#define EGL_KHR_fence_sync 1
+/* Reuses most tokens and entry points from EGL_KHR_reusable_sync */
+#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR   0x30F0
+#define EGL_SYNC_CONDITION_KHR                 0x30F8
+#define EGL_SYNC_FENCE_KHR                     0x30F9
+#endif
+#endif
+
+#ifndef EGL_HI_clientpixmap
+#define EGL_HI_clientpixmap 1
+
+/* Surface Attribute */
+#define EGL_CLIENT_PIXMAP_POINTER_HI           0x8F74
+/*
+ * Structure representing a client pixmap
+ * (pixmap's data is in client-space memory).
+ */
+struct EGLClientPixmapHI
+{
+       void*           pData;
+       EGLint          iWidth;
+       EGLint          iHeight;
+       EGLint          iStride;
+};
+
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI(EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
+#endif /* EGL_EGLEXT_PROTOTYPES */
+typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
+#endif /* EGL_HI_clientpixmap */
+
+#ifndef EGL_HI_colorformats
+#define EGL_HI_colorformats 1
+/* Config Attribute */
+#define EGL_COLOR_FORMAT_HI                    0x8F70
+/* Color Formats */
+#define EGL_COLOR_RGB_HI                       0x8F71
+#define EGL_COLOR_RGBA_HI                      0x8F72
+#define EGL_COLOR_ARGB_HI                      0x8F73
+#endif /* EGL_HI_colorformats */
 
 #ifndef EGL_NOK_swap_region
 #define EGL_NOK_swap_region 1
index 2c8546499c5dc8847794b43c540963645246a473..ff83ff145e7550f3f4789f16aa5e404e651b5954 100644 (file)
@@ -789,6 +789,17 @@ struct __DRIdri2ExtensionRec {
 #define __DRI_IMAGE_FORMAT_XRGB8888     0x1002
 #define __DRI_IMAGE_FORMAT_ARGB8888     0x1003
 
+#define __DRI_IMAGE_USE_SHARE          0x0001
+#define __DRI_IMAGE_USE_SCANOUT                0x0002
+
+/**
+ * queryImage attributes
+ */
+
+#define __DRI_IMAGE_ATTRIB_STRIDE      0x2000
+#define __DRI_IMAGE_ATTRIB_HANDLE      0x2001
+#define __DRI_IMAGE_ATTRIB_NAME                0x2002
+
 typedef struct __DRIimageRec          __DRIimage;
 typedef struct __DRIimageExtensionRec __DRIimageExtension;
 struct __DRIimageExtensionRec {
@@ -804,8 +815,16 @@ struct __DRIimageExtensionRec {
                                               void *loaderPrivate);
 
     void (*destroyImage)(__DRIimage *image);
+
+    __DRIimage *(*createImage)(__DRIscreen *screen,
+                              int width, int height, int format,
+                              unsigned int use,
+                              void *loaderPrivate);
+
+   GLboolean (*queryImage)(__DRIimage *image, int attrib, int *value);
 };
 
+
 /**
  * This extension must be implemented by the loader and passed to the
  * driver at screen creation time.  The EGLImage entry points in the
diff --git a/include/c99/inttypes.h b/include/c99/inttypes.h
new file mode 100644 (file)
index 0000000..4b3828a
--- /dev/null
@@ -0,0 +1,305 @@
+// ISO C9x  compliant inttypes.h for Microsoft Visual Studio
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 
+// 
+//  Copyright (c) 2006 Alexander Chemeris
+// 
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+// 
+//   1. Redistributions of source code must retain the above copyright notice,
+//      this list of conditions and the following disclaimer.
+// 
+//   2. Redistributions in binary form must reproduce the above copyright
+//      notice, this list of conditions and the following disclaimer in the
+//      documentation and/or other materials provided with the distribution.
+// 
+//   3. The name of the author may be used to endorse or promote products
+//      derived from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _MSC_VER // [
+#error "Use this header only with Microsoft Visual C++ compilers!"
+#endif // _MSC_VER ]
+
+#ifndef _MSC_INTTYPES_H_ // [
+#define _MSC_INTTYPES_H_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif
+
+#include "stdint.h"
+
+// 7.8 Format conversion of integer types
+
+typedef struct {
+   intmax_t quot;
+   intmax_t rem;
+} imaxdiv_t;
+
+// 7.8.1 Macros for format specifiers
+
+#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) // [   See footnote 185 at page 198
+
+// The fprintf macros for signed integers are:
+#define PRId8       "d"
+#define PRIi8       "i"
+#define PRIdLEAST8  "d"
+#define PRIiLEAST8  "i"
+#define PRIdFAST8   "d"
+#define PRIiFAST8   "i"
+
+#define PRId16       "hd"
+#define PRIi16       "hi"
+#define PRIdLEAST16  "hd"
+#define PRIiLEAST16  "hi"
+#define PRIdFAST16   "hd"
+#define PRIiFAST16   "hi"
+
+#define PRId32       "I32d"
+#define PRIi32       "I32i"
+#define PRIdLEAST32  "I32d"
+#define PRIiLEAST32  "I32i"
+#define PRIdFAST32   "I32d"
+#define PRIiFAST32   "I32i"
+
+#define PRId64       "I64d"
+#define PRIi64       "I64i"
+#define PRIdLEAST64  "I64d"
+#define PRIiLEAST64  "I64i"
+#define PRIdFAST64   "I64d"
+#define PRIiFAST64   "I64i"
+
+#define PRIdMAX     "I64d"
+#define PRIiMAX     "I64i"
+
+#define PRIdPTR     "Id"
+#define PRIiPTR     "Ii"
+
+// The fprintf macros for unsigned integers are:
+#define PRIo8       "o"
+#define PRIu8       "u"
+#define PRIx8       "x"
+#define PRIX8       "X"
+#define PRIoLEAST8  "o"
+#define PRIuLEAST8  "u"
+#define PRIxLEAST8  "x"
+#define PRIXLEAST8  "X"
+#define PRIoFAST8   "o"
+#define PRIuFAST8   "u"
+#define PRIxFAST8   "x"
+#define PRIXFAST8   "X"
+
+#define PRIo16       "ho"
+#define PRIu16       "hu"
+#define PRIx16       "hx"
+#define PRIX16       "hX"
+#define PRIoLEAST16  "ho"
+#define PRIuLEAST16  "hu"
+#define PRIxLEAST16  "hx"
+#define PRIXLEAST16  "hX"
+#define PRIoFAST16   "ho"
+#define PRIuFAST16   "hu"
+#define PRIxFAST16   "hx"
+#define PRIXFAST16   "hX"
+
+#define PRIo32       "I32o"
+#define PRIu32       "I32u"
+#define PRIx32       "I32x"
+#define PRIX32       "I32X"
+#define PRIoLEAST32  "I32o"
+#define PRIuLEAST32  "I32u"
+#define PRIxLEAST32  "I32x"
+#define PRIXLEAST32  "I32X"
+#define PRIoFAST32   "I32o"
+#define PRIuFAST32   "I32u"
+#define PRIxFAST32   "I32x"
+#define PRIXFAST32   "I32X"
+
+#define PRIo64       "I64o"
+#define PRIu64       "I64u"
+#define PRIx64       "I64x"
+#define PRIX64       "I64X"
+#define PRIoLEAST64  "I64o"
+#define PRIuLEAST64  "I64u"
+#define PRIxLEAST64  "I64x"
+#define PRIXLEAST64  "I64X"
+#define PRIoFAST64   "I64o"
+#define PRIuFAST64   "I64u"
+#define PRIxFAST64   "I64x"
+#define PRIXFAST64   "I64X"
+
+#define PRIoMAX     "I64o"
+#define PRIuMAX     "I64u"
+#define PRIxMAX     "I64x"
+#define PRIXMAX     "I64X"
+
+#define PRIoPTR     "Io"
+#define PRIuPTR     "Iu"
+#define PRIxPTR     "Ix"
+#define PRIXPTR     "IX"
+
+// The fscanf macros for signed integers are:
+#define SCNd8       "d"
+#define SCNi8       "i"
+#define SCNdLEAST8  "d"
+#define SCNiLEAST8  "i"
+#define SCNdFAST8   "d"
+#define SCNiFAST8   "i"
+
+#define SCNd16       "hd"
+#define SCNi16       "hi"
+#define SCNdLEAST16  "hd"
+#define SCNiLEAST16  "hi"
+#define SCNdFAST16   "hd"
+#define SCNiFAST16   "hi"
+
+#define SCNd32       "ld"
+#define SCNi32       "li"
+#define SCNdLEAST32  "ld"
+#define SCNiLEAST32  "li"
+#define SCNdFAST32   "ld"
+#define SCNiFAST32   "li"
+
+#define SCNd64       "I64d"
+#define SCNi64       "I64i"
+#define SCNdLEAST64  "I64d"
+#define SCNiLEAST64  "I64i"
+#define SCNdFAST64   "I64d"
+#define SCNiFAST64   "I64i"
+
+#define SCNdMAX     "I64d"
+#define SCNiMAX     "I64i"
+
+#ifdef _WIN64 // [
+#  define SCNdPTR     "I64d"
+#  define SCNiPTR     "I64i"
+#else  // _WIN64 ][
+#  define SCNdPTR     "ld"
+#  define SCNiPTR     "li"
+#endif  // _WIN64 ]
+
+// The fscanf macros for unsigned integers are:
+#define SCNo8       "o"
+#define SCNu8       "u"
+#define SCNx8       "x"
+#define SCNX8       "X"
+#define SCNoLEAST8  "o"
+#define SCNuLEAST8  "u"
+#define SCNxLEAST8  "x"
+#define SCNXLEAST8  "X"
+#define SCNoFAST8   "o"
+#define SCNuFAST8   "u"
+#define SCNxFAST8   "x"
+#define SCNXFAST8   "X"
+
+#define SCNo16       "ho"
+#define SCNu16       "hu"
+#define SCNx16       "hx"
+#define SCNX16       "hX"
+#define SCNoLEAST16  "ho"
+#define SCNuLEAST16  "hu"
+#define SCNxLEAST16  "hx"
+#define SCNXLEAST16  "hX"
+#define SCNoFAST16   "ho"
+#define SCNuFAST16   "hu"
+#define SCNxFAST16   "hx"
+#define SCNXFAST16   "hX"
+
+#define SCNo32       "lo"
+#define SCNu32       "lu"
+#define SCNx32       "lx"
+#define SCNX32       "lX"
+#define SCNoLEAST32  "lo"
+#define SCNuLEAST32  "lu"
+#define SCNxLEAST32  "lx"
+#define SCNXLEAST32  "lX"
+#define SCNoFAST32   "lo"
+#define SCNuFAST32   "lu"
+#define SCNxFAST32   "lx"
+#define SCNXFAST32   "lX"
+
+#define SCNo64       "I64o"
+#define SCNu64       "I64u"
+#define SCNx64       "I64x"
+#define SCNX64       "I64X"
+#define SCNoLEAST64  "I64o"
+#define SCNuLEAST64  "I64u"
+#define SCNxLEAST64  "I64x"
+#define SCNXLEAST64  "I64X"
+#define SCNoFAST64   "I64o"
+#define SCNuFAST64   "I64u"
+#define SCNxFAST64   "I64x"
+#define SCNXFAST64   "I64X"
+
+#define SCNoMAX     "I64o"
+#define SCNuMAX     "I64u"
+#define SCNxMAX     "I64x"
+#define SCNXMAX     "I64X"
+
+#ifdef _WIN64 // [
+#  define SCNoPTR     "I64o"
+#  define SCNuPTR     "I64u"
+#  define SCNxPTR     "I64x"
+#  define SCNXPTR     "I64X"
+#else  // _WIN64 ][
+#  define SCNoPTR     "lo"
+#  define SCNuPTR     "lu"
+#  define SCNxPTR     "lx"
+#  define SCNXPTR     "lX"
+#endif  // _WIN64 ]
+
+#endif // __STDC_FORMAT_MACROS ]
+
+// 7.8.2 Functions for greatest-width integer types
+
+// 7.8.2.1 The imaxabs function
+#define imaxabs _abs64
+
+// 7.8.2.2 The imaxdiv function
+
+// This is modified version of div() function from Microsoft's div.c found
+// in %MSVC.NET%\crt\src\div.c
+#ifdef STATIC_IMAXDIV // [
+static
+#else // STATIC_IMAXDIV ][
+_inline
+#endif // STATIC_IMAXDIV ]
+imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom)
+{
+   imaxdiv_t result;
+
+   result.quot = numer / denom;
+   result.rem = numer % denom;
+
+   if (numer < 0 && result.rem > 0) {
+      // did division wrong; must fix up
+      ++result.quot;
+      result.rem -= denom;
+   }
+
+   return result;
+}
+
+// 7.8.2.3 The strtoimax and strtoumax functions
+#define strtoimax _strtoi64
+#define strtoumax _strtoui64
+
+// 7.8.2.4 The wcstoimax and wcstoumax functions
+#define wcstoimax _wcstoi64
+#define wcstoumax _wcstoui64
+
+
+#endif // _MSC_INTTYPES_H_ ]
index fc6459d03d2b4ac0de7b112862b4bf5856938665..d02608a5972642c7b7a13b987f21e2502a5af3ea 100644 (file)
-/**************************************************************************
- *
- * Copyright 2007-2010 VMware, Inc.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- **************************************************************************/
-
-/*
- * stdint.h --
- *
- *    Portable subset of C99's stdint.h.
- *
- *    At the moment it only supports MSVC, given all other mainstream compilers
- *    already support C99. If this is necessary for other compilers then it
- *    might be worth to replace this with
- *    http://www.azillionmonkeys.com/qed/pstdint.h.
- */
-
-#ifndef _STDINT_H_
-#define _STDINT_H_
-
-
-#ifndef INT8_MAX
-#define INT8_MAX           127
-#endif
-#ifndef INT8_MIN
-#define INT8_MIN           -128
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX          255
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX          32767
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN          -32768
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX         65535
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX          2147483647
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN          -2147483648
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX         4294967295U
-#endif
+// ISO C9x  compliant stdint.h for Microsoft Visual Studio
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 
+// 
+//  Copyright (c) 2006-2008 Alexander Chemeris
+// 
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+// 
+//   1. Redistributions of source code must retain the above copyright notice,
+//      this list of conditions and the following disclaimer.
+// 
+//   2. Redistributions in binary form must reproduce the above copyright
+//      notice, this list of conditions and the following disclaimer in the
+//      documentation and/or other materials provided with the distribution.
+// 
+//   3. The name of the author may be used to endorse or promote products
+//      derived from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+///////////////////////////////////////////////////////////////////////////////
 
-#ifndef INT8_C
-#define INT8_C(__val)     __val
-#endif
-#ifndef UINT8_C
-#define UINT8_C(__val)    __val
-#endif
-#ifndef INT16_C
-#define INT16_C(__val)    __val
+#ifndef _MSC_VER // [
+#error "Use this header only with Microsoft Visual C++ compilers!"
+#endif // _MSC_VER ]
+
+#ifndef _MSC_STDINT_H_ // [
+#define _MSC_STDINT_H_
+
+#if _MSC_VER > 1000
+#pragma once
 #endif
-#ifndef UINT16_C
-#define UINT16_C(__val)   __val
+
+#include <limits.h>
+
+// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
+// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
+// or compiler give many errors like this:
+//   error C2733: second C linkage of overloaded function 'wmemchr' not allowed
+#ifdef __cplusplus
+extern "C" {
 #endif
-#ifndef INT32_C
-#define INT32_C(__val)    __val
+#  include <wchar.h>
+#ifdef __cplusplus
+}
 #endif
-#ifndef UINT32_C
-#define UINT32_C(__val)   __val##U
+
+// Define _W64 macros to mark types changing their size, like intptr_t.
+#ifndef _W64
+#  if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
+#     define _W64 __w64
+#  else
+#     define _W64
+#  endif
 #endif
 
 
-#if defined(_MSC_VER)
+// 7.18.1 Integer types
 
-typedef __int8             int8_t;
-typedef unsigned __int8    uint8_t;
-typedef __int16            int16_t;
-typedef unsigned __int16   uint16_t;
-typedef __int32            int32_t;
-typedef unsigned __int32   uint32_t;
-typedef __int64            int64_t;
-typedef unsigned __int64   uint64_t;
+// 7.18.1.1 Exact-width integer types
 
-#if defined(_WIN64)
-typedef __int64            intptr_t;
-typedef unsigned __int64   uintptr_t;
+// Visual Studio 6 and Embedded Visual C++ 4 doesn't
+// realize that, e.g. char has the same size as __int8
+// so we give up on __intX for them.
+#if (_MSC_VER < 1300)
+   typedef signed char       int8_t;
+   typedef signed short      int16_t;
+   typedef signed int        int32_t;
+   typedef unsigned char     uint8_t;
+   typedef unsigned short    uint16_t;
+   typedef unsigned int      uint32_t;
 #else
-typedef __int32            intptr_t;
-typedef unsigned __int32   uintptr_t;
-#endif
+   typedef signed __int8     int8_t;
+   typedef signed __int16    int16_t;
+   typedef signed __int32    int32_t;
+   typedef unsigned __int8   uint8_t;
+   typedef unsigned __int16  uint16_t;
+   typedef unsigned __int32  uint32_t;
+#endif
+typedef signed __int64       int64_t;
+typedef unsigned __int64     uint64_t;
 
-#define INT64_C(__val)    __val##i64
-#define UINT64_C(__val)   __val##ui64
 
-#else
-#error "Unsupported compiler"
-#endif
+// 7.18.1.2 Minimum-width integer types
+typedef int8_t    int_least8_t;
+typedef int16_t   int_least16_t;
+typedef int32_t   int_least32_t;
+typedef int64_t   int_least64_t;
+typedef uint8_t   uint_least8_t;
+typedef uint16_t  uint_least16_t;
+typedef uint32_t  uint_least32_t;
+typedef uint64_t  uint_least64_t;
+
+// 7.18.1.3 Fastest minimum-width integer types
+typedef int8_t    int_fast8_t;
+typedef int16_t   int_fast16_t;
+typedef int32_t   int_fast32_t;
+typedef int64_t   int_fast64_t;
+typedef uint8_t   uint_fast8_t;
+typedef uint16_t  uint_fast16_t;
+typedef uint32_t  uint_fast32_t;
+typedef uint64_t  uint_fast64_t;
+
+// 7.18.1.4 Integer types capable of holding object pointers
+#ifdef _WIN64 // [
+   typedef signed __int64    intptr_t;
+   typedef unsigned __int64  uintptr_t;
+#else // _WIN64 ][
+   typedef _W64 signed int   intptr_t;
+   typedef _W64 unsigned int uintptr_t;
+#endif // _WIN64 ]
+
+// 7.18.1.5 Greatest-width integer types
+typedef int64_t   intmax_t;
+typedef uint64_t  uintmax_t;
+
+
+// 7.18.2 Limits of specified-width integer types
+
+#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [   See footnote 220 at page 257 and footnote 221 at page 259
+
+// 7.18.2.1 Limits of exact-width integer types
+#define INT8_MIN     ((int8_t)_I8_MIN)
+#define INT8_MAX     _I8_MAX
+#define INT16_MIN    ((int16_t)_I16_MIN)
+#define INT16_MAX    _I16_MAX
+#define INT32_MIN    ((int32_t)_I32_MIN)
+#define INT32_MAX    _I32_MAX
+#define INT64_MIN    ((int64_t)_I64_MIN)
+#define INT64_MAX    _I64_MAX
+#define UINT8_MAX    _UI8_MAX
+#define UINT16_MAX   _UI16_MAX
+#define UINT32_MAX   _UI32_MAX
+#define UINT64_MAX   _UI64_MAX
+
+// 7.18.2.2 Limits of minimum-width integer types
+#define INT_LEAST8_MIN    INT8_MIN
+#define INT_LEAST8_MAX    INT8_MAX
+#define INT_LEAST16_MIN   INT16_MIN
+#define INT_LEAST16_MAX   INT16_MAX
+#define INT_LEAST32_MIN   INT32_MIN
+#define INT_LEAST32_MAX   INT32_MAX
+#define INT_LEAST64_MIN   INT64_MIN
+#define INT_LEAST64_MAX   INT64_MAX
+#define UINT_LEAST8_MAX   UINT8_MAX
+#define UINT_LEAST16_MAX  UINT16_MAX
+#define UINT_LEAST32_MAX  UINT32_MAX
+#define UINT_LEAST64_MAX  UINT64_MAX
+
+// 7.18.2.3 Limits of fastest minimum-width integer types
+#define INT_FAST8_MIN    INT8_MIN
+#define INT_FAST8_MAX    INT8_MAX
+#define INT_FAST16_MIN   INT16_MIN
+#define INT_FAST16_MAX   INT16_MAX
+#define INT_FAST32_MIN   INT32_MIN
+#define INT_FAST32_MAX   INT32_MAX
+#define INT_FAST64_MIN   INT64_MIN
+#define INT_FAST64_MAX   INT64_MAX
+#define UINT_FAST8_MAX   UINT8_MAX
+#define UINT_FAST16_MAX  UINT16_MAX
+#define UINT_FAST32_MAX  UINT32_MAX
+#define UINT_FAST64_MAX  UINT64_MAX
+
+// 7.18.2.4 Limits of integer types capable of holding object pointers
+#ifdef _WIN64 // [
+#  define INTPTR_MIN   INT64_MIN
+#  define INTPTR_MAX   INT64_MAX
+#  define UINTPTR_MAX  UINT64_MAX
+#else // _WIN64 ][
+#  define INTPTR_MIN   INT32_MIN
+#  define INTPTR_MAX   INT32_MAX
+#  define UINTPTR_MAX  UINT32_MAX
+#endif // _WIN64 ]
+
+// 7.18.2.5 Limits of greatest-width integer types
+#define INTMAX_MIN   INT64_MIN
+#define INTMAX_MAX   INT64_MAX
+#define UINTMAX_MAX  UINT64_MAX
+
+// 7.18.3 Limits of other integer types
+
+#ifdef _WIN64 // [
+#  define PTRDIFF_MIN  _I64_MIN
+#  define PTRDIFF_MAX  _I64_MAX
+#else  // _WIN64 ][
+#  define PTRDIFF_MIN  _I32_MIN
+#  define PTRDIFF_MAX  _I32_MAX
+#endif  // _WIN64 ]
+
+#define SIG_ATOMIC_MIN  INT_MIN
+#define SIG_ATOMIC_MAX  INT_MAX
+
+#ifndef SIZE_MAX // [
+#  ifdef _WIN64 // [
+#     define SIZE_MAX  _UI64_MAX
+#  else // _WIN64 ][
+#     define SIZE_MAX  _UI32_MAX
+#  endif // _WIN64 ]
+#endif // SIZE_MAX ]
+
+// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
+#ifndef WCHAR_MIN // [
+#  define WCHAR_MIN  0
+#endif  // WCHAR_MIN ]
+#ifndef WCHAR_MAX // [
+#  define WCHAR_MAX  _UI16_MAX
+#endif  // WCHAR_MAX ]
+
+#define WINT_MIN  0
+#define WINT_MAX  _UI16_MAX
+
+#endif // __STDC_LIMIT_MACROS ]
+
+
+// 7.18.4 Limits of other integer types
+
+#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [   See footnote 224 at page 260
+
+// 7.18.4.1 Macros for minimum-width integer constants
+
+#define INT8_C(val)  val##i8
+#define INT16_C(val) val##i16
+#define INT32_C(val) val##i32
+#define INT64_C(val) val##i64
+
+#define UINT8_C(val)  val##ui8
+#define UINT16_C(val) val##ui16
+#define UINT32_C(val) val##ui32
+#define UINT64_C(val) val##ui64
+
+// 7.18.4.2 Macros for greatest-width integer constants
+#define INTMAX_C   INT64_C
+#define UINTMAX_C  UINT64_C
+
+#endif // __STDC_CONSTANT_MACROS ]
+
 
-#endif /* _STDINT_H_ */
+#endif // _MSC_STDINT_H_ ]
index 03a4ef58815f1cf434ecaf9a40709f01fd93214c..d9a5fe0eeafc6d5e63163880f0aac83856b838ed 100644 (file)
@@ -291,6 +291,8 @@ def generate(env):
                 ]
         if env['machine'] == 'x86_64':
             ccflags += ['-m64']
+            if platform == 'darwin':
+                ccflags += ['-fno-common']
         # See also:
         # - http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
         ccflags += [
index 2b46186f986c6d8aaf5394b9205d483d011ddb24..c3e34be6f760f020ad2b797d6d937fcd98da21e4 100644 (file)
@@ -5,6 +5,9 @@ if 'egl' in env['statetrackers']:
     SConscript('egl/main/SConscript')
 
 if 'mesa' in env['statetrackers']:
+    if platform == 'windows':
+        SConscript('talloc/SConscript')
+
     SConscript('glsl/SConscript')
     SConscript('mapi/glapi/SConscript')
     SConscript('mesa/SConscript')
index 6beb4ce88e278eab8ce1f5ab906d705a9ee82755..698a2405781de4cfc338ef12c274bfe5cc34a9fd 100644 (file)
@@ -14,7 +14,7 @@ Contact
 
 Status
 
-    Preliminary - totally subject to change.
+    Obsolete.
 
 Version
 
index efb93bcf06b48d912dee116a1b5cb686342794ba..2b78bcc763dbc95ad8abb5cbdf4e3e32ad1ee501 100644 (file)
@@ -836,6 +836,7 @@ dri2_initialize_x11(_EGLDriver *drv, _EGLDisplay *disp,
         goto cleanup_configs;
    }
 
+   disp->Extensions.MESA_drm_image = EGL_TRUE;
    disp->Extensions.KHR_image_base = EGL_TRUE;
    disp->Extensions.KHR_image_pixmap = EGL_TRUE;
    disp->Extensions.KHR_gl_renderbuffer_image = EGL_TRUE;
@@ -994,6 +995,7 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp,
    for (i = 0; dri2_dpy->driver_configs[i]; i++)
       dri2_add_config(disp, dri2_dpy->driver_configs[i], i + 1, 0, 0);
 
+   disp->Extensions.MESA_drm_image = EGL_TRUE;
    disp->Extensions.KHR_image_base = EGL_TRUE;
    disp->Extensions.KHR_gl_renderbuffer_image = EGL_TRUE;
    disp->Extensions.KHR_gl_texture_2D_image = EGL_TRUE;
@@ -1620,6 +1622,96 @@ dri2_create_image_khr_renderbuffer(_EGLDisplay *disp, _EGLContext *ctx,
    return &dri2_img->base;
 }
 
+static _EGLImage *
+dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
+                                 EGLClientBuffer buffer, const EGLint *attr_list)
+{
+   struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
+   struct dri2_egl_context *dri2_ctx = dri2_egl_context(ctx);
+   struct dri2_egl_image *dri2_img;
+   EGLint width, height, format, name, stride, pitch, i, err;
+
+   name = (EGLint) buffer;
+
+   err = EGL_SUCCESS;
+   width = 0;
+   height = 0;
+   format = 0;
+   stride = 0;
+
+   for (i = 0; attr_list[i] != EGL_NONE; i++) {
+      EGLint attr = attr_list[i++];
+      EGLint val = attr_list[i];
+
+      switch (attr) {
+      case EGL_WIDTH:
+        width = val;
+         break;
+      case EGL_HEIGHT:
+        height = val;
+         break;
+      case EGL_DRM_BUFFER_FORMAT_MESA:
+        format = val;
+         break;
+      case EGL_DRM_BUFFER_STRIDE_MESA:
+        stride = val;
+         break;
+      default:
+         err = EGL_BAD_ATTRIBUTE;
+         break;
+      }
+
+      if (err != EGL_SUCCESS) {
+         _eglLog(_EGL_WARNING, "bad image attribute 0x%04x", attr);
+        return NULL;
+      }
+   }
+
+   if (width <= 0 || height <= 0 || stride <= 0) {
+      _eglError(EGL_BAD_PARAMETER,
+               "bad width, height or stride");
+      return NULL;
+   }
+
+   switch (format) {
+   case EGL_DRM_BUFFER_FORMAT_ARGB32_MESA:
+      format = __DRI_IMAGE_FORMAT_ARGB8888;
+      pitch = stride;
+      break;
+   default:
+      _eglError(EGL_BAD_PARAMETER,
+               "dri2_create_image_khr: unsupported pixmap depth");
+      return NULL;
+   }
+
+   dri2_img = malloc(sizeof *dri2_img);
+   if (!dri2_img) {
+      _eglError(EGL_BAD_ALLOC, "dri2_create_image_mesa_drm");
+      return NULL;
+   }
+
+   if (!_eglInitImage(&dri2_img->base, disp, attr_list)) {
+      free(dri2_img);
+      return NULL;
+   }
+
+   dri2_img->dri_image =
+      dri2_dpy->image->createImageFromName(dri2_ctx->dri_context,
+                                          width,
+                                          height,
+                                          format,
+                                          name,
+                                          pitch,
+                                          dri2_img);
+   if (dri2_img->dri_image == NULL) {
+      free(dri2_img);
+      _eglError(EGL_BAD_ALLOC, "dri2_create_image_mesa_drm");
+      return NULL;
+   }
+
+   return &dri2_img->base;
+}
+
 static _EGLImage *
 dri2_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
                      _EGLContext *ctx, EGLenum target,
@@ -1630,6 +1722,8 @@ dri2_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
       return dri2_create_image_khr_pixmap(disp, ctx, buffer, attr_list);
    case EGL_GL_RENDERBUFFER_KHR:
       return dri2_create_image_khr_renderbuffer(disp, ctx, buffer, attr_list);
+   case EGL_DRM_BUFFER_MESA:
+      return dri2_create_image_mesa_drm_buffer(disp, ctx, buffer, attr_list);
    default:
       _eglError(EGL_BAD_PARAMETER, "dri2_create_image_khr");
       return EGL_NO_IMAGE_KHR;
@@ -1648,6 +1742,133 @@ dri2_destroy_image_khr(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *image)
    return EGL_TRUE;
 }
 
+static _EGLImage *
+dri2_create_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp,
+                          const EGLint *attr_list)
+{
+   struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
+   struct dri2_egl_image *dri2_img;
+   int width, height, format, i;
+   unsigned int use, dri_use, valid_mask;
+   EGLint err = EGL_SUCCESS;
+
+   dri2_img = malloc(sizeof *dri2_img);
+   if (!dri2_img) {
+      _eglError(EGL_BAD_ALLOC, "dri2_create_image_khr");
+      return EGL_NO_IMAGE_KHR;
+   }
+
+   if (!attr_list) {
+      err = EGL_BAD_PARAMETER;
+      goto cleanup_img;
+   }
+
+   if (!_eglInitImage(&dri2_img->base, disp, attr_list)) {
+      err = EGL_BAD_PARAMETER;
+      goto cleanup_img;
+   }
+
+   width = 0;
+   height = 0;
+   format = 0;
+   use = 0;
+   for (i = 0; attr_list[i] != EGL_NONE; i++) {
+      EGLint attr = attr_list[i++];
+      EGLint val = attr_list[i];
+
+      switch (attr) {
+      case EGL_WIDTH:
+        width = val;
+         break;
+      case EGL_HEIGHT:
+        height = val;
+         break;
+      case EGL_DRM_BUFFER_FORMAT_MESA:
+        format = val;
+         break;
+      case EGL_DRM_BUFFER_USE_MESA:
+        use = val;
+         break;
+      default:
+         err = EGL_BAD_ATTRIBUTE;
+         break;
+      }
+
+      if (err != EGL_SUCCESS) {
+         _eglLog(_EGL_WARNING, "bad image attribute 0x%04x", attr);
+        goto cleanup_img;
+      }
+   }
+
+   if (width <= 0 || height <= 0) {
+      _eglLog(_EGL_WARNING, "bad width or height (%dx%d)", width, height);
+      goto cleanup_img;
+   }
+
+   switch (format) {
+   case EGL_DRM_BUFFER_FORMAT_ARGB32_MESA:
+      format = __DRI_IMAGE_FORMAT_ARGB8888;
+      break;
+   default:
+      _eglLog(_EGL_WARNING, "bad image format value 0x%04x", format);
+      goto cleanup_img;
+   }
+
+   valid_mask =
+      EGL_DRM_BUFFER_USE_SCANOUT_MESA |
+      EGL_DRM_BUFFER_USE_SHARE_MESA; 
+   if (use & ~valid_mask) {
+      _eglLog(_EGL_WARNING, "bad image use bit 0x%04x", use & ~valid_mask);
+      goto cleanup_img;
+   }
+
+   dri_use = 0;
+   if (use & EGL_DRM_BUFFER_USE_SHARE_MESA)
+      dri_use |= __DRI_IMAGE_USE_SHARE;
+   if (use & EGL_DRM_BUFFER_USE_SCANOUT_MESA)
+      dri_use |= __DRI_IMAGE_USE_SCANOUT;
+
+   dri2_img->dri_image = 
+      dri2_dpy->image->createImage(dri2_dpy->dri_screen,
+                                  width, height, format, dri_use, dri2_img);
+   if (dri2_img->dri_image == NULL) {
+      err = EGL_BAD_ALLOC;
+      goto cleanup_img;
+   }
+
+   return &dri2_img->base;
+
+ cleanup_img:
+   free(dri2_img);
+   _eglError(err, "dri2_create_drm_image_mesa");
+
+   return EGL_NO_IMAGE_KHR;
+}
+
+static EGLBoolean
+dri2_export_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *img,
+                         EGLint *name, EGLint *handle, EGLint *stride)
+{
+   struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
+   struct dri2_egl_image *dri2_img = dri2_egl_image(img);
+
+   if (name && !dri2_dpy->image->queryImage(dri2_img->dri_image,
+                                           __DRI_IMAGE_ATTRIB_NAME, name)) {
+      _eglError(EGL_BAD_ALLOC, "dri2_export_drm_image_mesa");
+      return EGL_FALSE;
+   }
+
+   if (handle)
+      dri2_dpy->image->queryImage(dri2_img->dri_image,
+                                 __DRI_IMAGE_ATTRIB_HANDLE, handle);
+
+   if (stride)
+      dri2_dpy->image->queryImage(dri2_img->dri_image,
+                                 __DRI_IMAGE_ATTRIB_STRIDE, stride);
+
+   return EGL_TRUE;
+}
+
 /**
  * This is the main entrypoint into the driver, called by libEGL.
  * Create a new _EGLDriver object and init its dispatch table.
@@ -1681,6 +1902,8 @@ _eglMain(const char *args)
    dri2_drv->base.API.CreateImageKHR = dri2_create_image_khr;
    dri2_drv->base.API.DestroyImageKHR = dri2_destroy_image_khr;
    dri2_drv->base.API.SwapBuffersRegionNOK = dri2_swap_buffers_region;
+   dri2_drv->base.API.CreateDRMImageMESA = dri2_create_drm_image_mesa;
+   dri2_drv->base.API.ExportDRMImageMESA = dri2_export_drm_image_mesa;
 
    dri2_drv->base.Name = "DRI2";
    dri2_drv->base.Unload = dri2_unload;
index 41d301fc14056b6b3a02f659b354308a1b0f060d..d92fbf6d9a7e854393b66e1bf1478b4523dbb3d8 100644 (file)
@@ -26,7 +26,8 @@ HEADERS = \
        eglmutex.h \
        eglscreen.h \
        eglstring.h \
-       eglsurface.h
+       eglsurface.h \
+       eglsync.h
 
 SOURCES = \
        eglapi.c \
@@ -44,7 +45,8 @@ SOURCES = \
        eglmode.c \
        eglscreen.c \
        eglstring.c \
-       eglsurface.c
+       eglsurface.c \
+       eglsync.c
 
 OBJECTS = $(SOURCES:.c=.o)
 
index 3d7ae3a8e4ebe8c355694538d5aa6cd25e205e8f..06846475baf6ddf082c9158854def68230359c18 100644 (file)
@@ -12,6 +12,7 @@ if env['platform'] != 'winddk':
                '_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_WINDOWS',
                '_EGL_DRIVER_SEARCH_DIR=\\"\\"',
                '_EGL_OS_WINDOWS',
+               '_EGL_GET_CORE_ADDRESSES',
                'KHRONOS_DLL_EXPORTS',
        ])
 
@@ -36,11 +37,12 @@ if env['platform'] != 'winddk':
                'eglscreen.c',
                'eglstring.c',
                'eglsurface.c',
+               'eglsync.c',
        ]
 
        egl = env.SharedLibrary(
                target = 'libEGL',
-               source = egl_sources,
+               source = egl_sources + ['egl.def'],
        )
 
        env.InstallSharedLibrary(egl, version=(1, 4, 0))
diff --git a/src/egl/main/egl.def b/src/egl/main/egl.def
new file mode 100644 (file)
index 0000000..0cfe920
--- /dev/null
@@ -0,0 +1,35 @@
+EXPORTS
+   eglBindAPI
+   eglBindTexImage
+   eglChooseConfig
+   eglCopyBuffers
+   eglCreateContext
+   eglCreatePbufferFromClientBuffer
+   eglCreatePbufferSurface
+   eglCreatePixmapSurface
+   eglCreateWindowSurface
+   eglDestroyContext
+   eglDestroySurface
+   eglGetConfigAttrib
+   eglGetConfigs
+   eglGetCurrentContext
+   eglGetCurrentDisplay
+   eglGetCurrentSurface
+   eglGetDisplay
+   eglGetError
+   eglGetProcAddress
+   eglInitialize
+   eglMakeCurrent
+   eglQueryAPI
+   eglQueryContext
+   eglQueryString
+   eglQuerySurface
+   eglReleaseTexImage
+   eglReleaseThread
+   eglSurfaceAttrib
+   eglSwapBuffers
+   eglSwapInterval
+   eglTerminate
+   eglWaitClient
+   eglWaitGL
+   eglWaitNative
index 4dc8707cfbc66afaaf30bf0862748065823b3491..31c5419bbc3f7b34e0dc9956cd6cadf41781a20b 100644 (file)
@@ -68,6 +68,7 @@
 #include "eglscreen.h"
 #include "eglmode.h"
 #include "eglimage.h"
+#include "eglsync.h"
 
 
 /**
 #define _EGL_CHECK_MODE(disp, m, ret, drv) \
    _EGL_CHECK_OBJECT(disp, Mode, m, ret, drv)
 
+#define _EGL_CHECK_SYNC(disp, s, ret, drv) \
+   _EGL_CHECK_OBJECT(disp, Sync, s, ret, drv)
 
 
 static INLINE _EGLDriver *
@@ -185,6 +188,26 @@ _eglCheckConfig(_EGLDisplay *disp, _EGLConfig *conf, const char *msg)
 }
 
 
+#ifdef EGL_KHR_reusable_sync
+
+
+static INLINE _EGLDriver *
+_eglCheckSync(_EGLDisplay *disp, _EGLSync *s, const char *msg)
+{
+   _EGLDriver *drv = _eglCheckDisplay(disp, msg);
+   if (!drv)
+      return NULL;
+   if (!s) {
+      _eglError(EGL_BAD_PARAMETER, msg);
+      return NULL;
+   }
+   return drv;
+}
+
+
+#endif /* EGL_KHR_reusable_sync */
+
+
 #ifdef EGL_MESA_screen_surface
 
 
@@ -809,7 +832,44 @@ eglGetProcAddress(const char *procname)
       const char *name;
       _EGLProc function;
    } egl_functions[] = {
-      /* extensions only */
+      /* core functions should not be queryable, but, well... */
+#ifdef _EGL_GET_CORE_ADDRESSES
+      /* alphabetical order */
+      { "eglBindAPI", (_EGLProc) eglBindAPI },
+      { "eglBindTexImage", (_EGLProc) eglBindTexImage },
+      { "eglChooseConfig", (_EGLProc) eglChooseConfig },
+      { "eglCopyBuffers", (_EGLProc) eglCopyBuffers },
+      { "eglCreateContext", (_EGLProc) eglCreateContext },
+      { "eglCreatePbufferFromClientBuffer", (_EGLProc) eglCreatePbufferFromClientBuffer },
+      { "eglCreatePbufferSurface", (_EGLProc) eglCreatePbufferSurface },
+      { "eglCreatePixmapSurface", (_EGLProc) eglCreatePixmapSurface },
+      { "eglCreateWindowSurface", (_EGLProc) eglCreateWindowSurface },
+      { "eglDestroyContext", (_EGLProc) eglDestroyContext },
+      { "eglDestroySurface", (_EGLProc) eglDestroySurface },
+      { "eglGetConfigAttrib", (_EGLProc) eglGetConfigAttrib },
+      { "eglGetConfigs", (_EGLProc) eglGetConfigs },
+      { "eglGetCurrentContext", (_EGLProc) eglGetCurrentContext },
+      { "eglGetCurrentDisplay", (_EGLProc) eglGetCurrentDisplay },
+      { "eglGetCurrentSurface", (_EGLProc) eglGetCurrentSurface },
+      { "eglGetDisplay", (_EGLProc) eglGetDisplay },
+      { "eglGetError", (_EGLProc) eglGetError },
+      { "eglGetProcAddress", (_EGLProc) eglGetProcAddress },
+      { "eglInitialize", (_EGLProc) eglInitialize },
+      { "eglMakeCurrent", (_EGLProc) eglMakeCurrent },
+      { "eglQueryAPI", (_EGLProc) eglQueryAPI },
+      { "eglQueryContext", (_EGLProc) eglQueryContext },
+      { "eglQueryString", (_EGLProc) eglQueryString },
+      { "eglQuerySurface", (_EGLProc) eglQuerySurface },
+      { "eglReleaseTexImage", (_EGLProc) eglReleaseTexImage },
+      { "eglReleaseThread", (_EGLProc) eglReleaseThread },
+      { "eglSurfaceAttrib", (_EGLProc) eglSurfaceAttrib },
+      { "eglSwapBuffers", (_EGLProc) eglSwapBuffers },
+      { "eglSwapInterval", (_EGLProc) eglSwapInterval },
+      { "eglTerminate", (_EGLProc) eglTerminate },
+      { "eglWaitClient", (_EGLProc) eglWaitClient },
+      { "eglWaitGL", (_EGLProc) eglWaitGL },
+      { "eglWaitNative", (_EGLProc) eglWaitNative },
+#endif /* _EGL_GET_CORE_ADDRESSES */
 #ifdef EGL_MESA_screen_surface
       { "eglChooseModeMESA", (_EGLProc) eglChooseModeMESA },
       { "eglGetModesMESA", (_EGLProc) eglGetModesMESA },
@@ -833,6 +893,10 @@ eglGetProcAddress(const char *procname)
 #endif /* EGL_KHR_image_base */
 #ifdef EGL_NOK_swap_region
       { "eglSwapBuffersRegionNOK", (_EGLProc) eglSwapBuffersRegionNOK },
+#endif
+#ifdef EGL_MESA_drm_image
+      { "eglCreateDRMImageMESA", (_EGLProc) eglCreateDRMImageMESA },
+      { "eglExportDRMImageMESA", (_EGLProc) eglExportDRMImageMESA },
 #endif
       { NULL, NULL }
    };
@@ -1245,6 +1309,90 @@ eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)
 #endif /* EGL_KHR_image_base */
 
 
+#ifdef EGL_KHR_reusable_sync
+
+
+EGLSyncKHR EGLAPIENTRY
+eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list)
+{
+   _EGLDisplay *disp = _eglLockDisplay(dpy);
+   _EGLDriver *drv;
+   _EGLSync *sync;
+   EGLSyncKHR ret;
+
+   _EGL_CHECK_DISPLAY(disp, EGL_NO_SYNC_KHR, drv);
+
+   sync = drv->API.CreateSyncKHR(drv, disp, type, attrib_list);
+   ret = (sync) ? _eglLinkSync(sync, disp) : EGL_NO_SYNC_KHR;
+
+   RETURN_EGL_EVAL(disp, ret);
+}
+
+
+EGLBoolean EGLAPIENTRY
+eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync)
+{
+   _EGLDisplay *disp = _eglLockDisplay(dpy);
+   _EGLSync *s = _eglLookupSync(sync, disp);
+   _EGLDriver *drv;
+   EGLBoolean ret;
+
+   _EGL_CHECK_SYNC(disp, s, EGL_FALSE, drv);
+   _eglUnlinkSync(s);
+   ret = drv->API.DestroySyncKHR(drv, disp, s);
+
+   RETURN_EGL_EVAL(disp, ret);
+}
+
+
+EGLint EGLAPIENTRY
+eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout)
+{
+   _EGLDisplay *disp = _eglLockDisplay(dpy);
+   _EGLSync *s = _eglLookupSync(sync, disp);
+   _EGLDriver *drv;
+   EGLint ret;
+
+   _EGL_CHECK_SYNC(disp, s, EGL_FALSE, drv);
+   ret = drv->API.ClientWaitSyncKHR(drv, disp, s, flags, timeout);
+
+   RETURN_EGL_EVAL(disp, ret);
+}
+
+
+EGLBoolean EGLAPIENTRY
+eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode)
+{
+   _EGLDisplay *disp = _eglLockDisplay(dpy);
+   _EGLSync *s = _eglLookupSync(sync, disp);
+   _EGLDriver *drv;
+   EGLBoolean ret;
+
+   _EGL_CHECK_SYNC(disp, s, EGL_FALSE, drv);
+   ret = drv->API.SignalSyncKHR(drv, disp, s, mode);
+
+   RETURN_EGL_EVAL(disp, ret);
+}
+
+
+EGLBoolean EGLAPIENTRY
+eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value)
+{
+   _EGLDisplay *disp = _eglLockDisplay(dpy);
+   _EGLSync *s = _eglLookupSync(sync, disp);
+   _EGLDriver *drv;
+   EGLBoolean ret;
+
+   _EGL_CHECK_SYNC(disp, s, EGL_FALSE, drv);
+   ret = drv->API.GetSyncAttribKHR(drv, disp, s, attribute, value);
+
+   RETURN_EGL_EVAL(disp, ret);
+}
+
+
+#endif /* EGL_KHR_reusable_sync */
+
+
 #ifdef EGL_NOK_swap_region
 
 EGLBoolean EGLAPIENTRY
@@ -1272,3 +1420,42 @@ eglSwapBuffersRegionNOK(EGLDisplay dpy, EGLSurface surface,
 }
 
 #endif /* EGL_NOK_swap_region */
+
+
+#ifdef EGL_MESA_drm_image
+
+EGLImageKHR EGLAPIENTRY
+eglCreateDRMImageMESA(EGLDisplay dpy, const EGLint *attr_list)
+{
+   _EGLDisplay *disp = _eglLockDisplay(dpy);
+   _EGLDriver *drv;
+   _EGLImage *img;
+   EGLImageKHR ret;
+
+   _EGL_CHECK_DISPLAY(disp, EGL_NO_IMAGE_KHR, drv);
+
+   img = drv->API.CreateDRMImageMESA(drv, disp, attr_list);
+   ret = (img) ? _eglLinkImage(img, disp) : EGL_NO_IMAGE_KHR;
+
+   RETURN_EGL_EVAL(disp, ret);
+}
+
+EGLBoolean EGLAPIENTRY
+eglExportDRMImageMESA(EGLDisplay dpy, EGLImageKHR image,
+                     EGLint *name, EGLint *handle, EGLint *stride)
+{
+   _EGLDisplay *disp = _eglLockDisplay(dpy);
+   _EGLImage *img = _eglLookupImage(image, disp);
+   _EGLDriver *drv;
+   EGLBoolean ret;
+
+   _EGL_CHECK_DISPLAY(disp, EGL_FALSE, drv);
+   if (!img)
+      RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
+
+   ret = drv->API.ExportDRMImageMESA(drv, disp, img, name, handle, stride);
+
+   RETURN_EGL_EVAL(disp, ret);
+}
+
+#endif
index d8c8b49a49deef0be9cd7be2531700dd32d17fe0..127becc9acdccebdeb2d22befb907483e5c1f9c0 100644 (file)
@@ -76,10 +76,25 @@ typedef _EGLImage *(*CreateImageKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLCo
 typedef EGLBoolean (*DestroyImageKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLImage *image);
 #endif /* EGL_KHR_image_base */
 
+
+#ifdef EGL_KHR_reusable_sync
+typedef _EGLSync *(*CreateSyncKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, EGLenum type, const EGLint *attrib_list);
+typedef EGLBoolean (*DestroySyncKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSync *sync);
+typedef EGLint (*ClientWaitSyncKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSync *sync, EGLint flags, EGLTimeKHR timeout);
+typedef EGLBoolean (*SignalSyncKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSync *sync, EGLenum mode);
+typedef EGLBoolean (*GetSyncAttribKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSync *sync, EGLint attribute, EGLint *value);
+#endif /* EGL_KHR_reusable_sync */
+
+
 #ifdef EGL_NOK_swap_region
 typedef EGLBoolean (*SwapBuffersRegionNOK_t)(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf, EGLint numRects, const EGLint *rects);
 #endif
 
+#ifdef EGL_MESA_drm_image
+typedef _EGLImage *(*CreateDRMImageMESA_t)(_EGLDriver *drv, _EGLDisplay *disp, const EGLint *attr_list);
+typedef EGLBoolean (*ExportDRMImageMESA_t)(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *img, EGLint *name, EGLint *handle, EGLint *stride);
+#endif
+
 /**
  * The API dispatcher jumps through these functions
  */
@@ -138,9 +153,22 @@ struct _egl_api
    DestroyImageKHR_t DestroyImageKHR;
 #endif /* EGL_KHR_image_base */
 
+#ifdef EGL_KHR_reusable_sync
+   CreateSyncKHR_t CreateSyncKHR;
+   DestroySyncKHR_t DestroySyncKHR;
+   ClientWaitSyncKHR_t ClientWaitSyncKHR;
+   SignalSyncKHR_t SignalSyncKHR;
+   GetSyncAttribKHR_t GetSyncAttribKHR;
+#endif /* EGL_KHR_reusable_sync */
+
 #ifdef EGL_NOK_swap_region
    SwapBuffersRegionNOK_t SwapBuffersRegionNOK;
 #endif
+
+#ifdef EGL_MESA_drm_image
+   CreateDRMImageMESA_t CreateDRMImageMESA;
+   ExportDRMImageMESA_t ExportDRMImageMESA;
+#endif
 };
 
 #endif /* EGLAPI_INCLUDED */
index ea8e47d02bbc4c105c299c275235bfa988301b4c..01e7144d40abd6c7a6701b578e1cbdb58aa408a2 100644 (file)
@@ -460,11 +460,14 @@ _eglMatchConfig(const _EGLConfig *conf, const _EGLConfig *criteria)
    &nbs