Author: jgardou Date: Sun Sep 15 22:25:43 2013 New Revision: 60155
URL: http://svn.reactos.org/svn/reactos?rev=60155&view=rev Log: [OSMESA] - enable x86 optimisations for GCC builds
Added: trunk/reactos/dll/opengl/mesa/src/mesa/x86/CMakeLists.txt (with props) trunk/reactos/dll/opengl/mesa/src/mesa/x86/matypes.h (with props) Modified: trunk/reactos/dll/opengl/mesa/src/mesa/CMakeLists.txt trunk/reactos/dll/opengl/mesa/src/mesa/drivers/osmesa/CMakeLists.txt
Modified: trunk/reactos/dll/opengl/mesa/src/mesa/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/src/mesa/CM... ============================================================================== --- trunk/reactos/dll/opengl/mesa/src/mesa/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/src/mesa/CMakeLists.txt [iso-8859-1] Sun Sep 15 22:25:43 2013 @@ -13,6 +13,19 @@ -DBUILD_GL32 # declare gl* as __declspec(dllexport) in Mesa headers -D_GLAPI_NO_EXPORTS # prevent _glapi_* from being declared __declspec(dllimport) ) + +if((ARCH STREQUAL "i386") AND (NOT MSVC)) + add_definitions( + -DUSE_X86_ASM + -DUSE_MMX_ASM + -DUSE_3DNOW_ASM + -DUSE_SSE_ASM + ) + add_subdirectory(x86) + set(mesa_asm_lib mesa_x86) +else() + set(mesa_asm_lib) +endif()
add_subdirectory(drivers/common) add_subdirectory(drivers/osmesa)
Modified: trunk/reactos/dll/opengl/mesa/src/mesa/drivers/osmesa/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/src/mesa/dr... ============================================================================== --- trunk/reactos/dll/opengl/mesa/src/mesa/drivers/osmesa/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/src/mesa/drivers/osmesa/CMakeLists.txt [iso-8859-1] Sun Sep 15 22:25:43 2013 @@ -15,7 +15,9 @@ mesa_vbo mesa_program mesa_math - mesa_glsl) + mesa_glsl + ${mesa_asm_lib} +)
set_module_type(osmesa win32dll) add_importlibs(osmesa msvcrt kernel32 ntdll)
Added: trunk/reactos/dll/opengl/mesa/src/mesa/x86/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/src/mesa/x8... ============================================================================== --- trunk/reactos/dll/opengl/mesa/src/mesa/x86/CMakeLists.txt (added) +++ trunk/reactos/dll/opengl/mesa/src/mesa/x86/CMakeLists.txt [iso-8859-1] Sun Sep 15 22:25:43 2013 @@ -0,0 +1,31 @@ + +list(APPEND SOURCE + common_x86.c + x86_xform.c + 3dnow.c + sse.c + common_x86_asm.S + x86_xform2.S + x86_xform3.S + x86_xform4.S + x86_cliptest.S + mmx_blend.S + 3dnow_xform1.S + 3dnow_xform2.S + 3dnow_xform3.S + 3dnow_xform4.S + 3dnow_normal.S + sse_xform1.S + sse_xform2.S + sse_xform3.S + sse_xform4.S + sse_normal.S + read_rgba_span_x86.S + rtasm/x86sse.c +) + +add_library(mesa_x86 STATIC ${SOURCE}) + +if(NOT MSVC) + add_compile_flags("-Wno-format") +endif()
Propchange: trunk/reactos/dll/opengl/mesa/src/mesa/x86/CMakeLists.txt ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/dll/opengl/mesa/src/mesa/x86/matypes.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/src/mesa/x8... ============================================================================== --- trunk/reactos/dll/opengl/mesa/src/mesa/x86/matypes.h (added) +++ trunk/reactos/dll/opengl/mesa/src/mesa/x86/matypes.h [iso-8859-1] Sun Sep 15 22:25:43 2013 @@ -0,0 +1,162 @@ +/* + * This file is automatically generated from the Mesa internal type + * definitions. Do not edit directly. + */ + +#ifndef __ASM_TYPES_H__ +#define __ASM_TYPES_H__ + + + +/* ============================================================= + * Offsets for struct gl_context + */ + +#define CTX_DRIVER_CTX 880 + +#define CTX_LIGHT_ENABLED 39952 +#define CTX_LIGHT_SHADE_MODEL 39956 +#define CTX_LIGHT_COLOR_MAT_FACE 39964 +#define CTX_LIGHT_COLOR_MAT_MODE 39968 +#define CTX_LIGHT_COLOR_MAT_MASK 39972 +#define CTX_LIGHT_COLOR_MAT_ENABLED 39976 +#define CTX_LIGHT_ENABLED_LIST 39988 +#define CTX_LIGHT_NEED_VERTS 44341 +#define CTX_LIGHT_FLAGS 44344 +#define CTX_LIGHT_BASE_COLOR 44348 + + +/* ============================================================= + * Offsets for struct vertex_buffer + */ + +#define VB_SIZE 0 +#define VB_COUNT 4 + +#define VB_ELTS 8 +#define VB_OBJ_PTR 60 +#define VB_EYE_PTR 12 +#define VB_CLIP_PTR 16 +#define VB_PROJ_CLIP_PTR 20 +#define VB_CLIP_OR_MASK 24 +#define VB_CLIP_MASK 28 +#define VB_NORMAL_PTR 68 +#define VB_EDGE_FLAG 36 +#define VB_TEX0_COORD_PTR 92 +#define VB_TEX1_COORD_PTR 96 +#define VB_TEX2_COORD_PTR 100 +#define VB_TEX3_COORD_PTR 104 +#define VB_INDEX_PTR 84 +#define VB_COLOR_PTR 72 +#define VB_SECONDARY_COLOR_PTR 76 +#define VB_FOG_COORD_PTR 80 +#define VB_PRIMITIVE 52 + + +/* + * Flags for struct vertex_buffer + */ + +#define VERT_BIT_OBJ 0x1 +#define VERT_BIT_NORM 0x4 +#define VERT_BIT_RGBA 0x8 +#define VERT_BIT_SPEC_RGB 0x10 +#define VERT_BIT_FOG_COORD 0x20 +#define VERT_BIT_TEX0 0x100 +#define VERT_BIT_TEX1 0x200 +#define VERT_BIT_TEX2 0x400 +#define VERT_BIT_TEX3 0x800 + + +/* ============================================================= + * Offsets for GLvector4f + */ + +#define V4F_DATA 0 +#define V4F_START 4 +#define V4F_COUNT 8 +#define V4F_STRIDE 12 +#define V4F_SIZE 16 +#define V4F_FLAGS 20 + +/* + * Flags for GLvector4f + */ + +#define VEC_MALLOC 0x10 +#define VEC_NOT_WRITEABLE 0x40 +#define VEC_BAD_STRIDE 0x100 + +#define VEC_SIZE_1 0x1 +#define VEC_SIZE_2 0x3 +#define VEC_SIZE_3 0x7 +#define VEC_SIZE_4 0xf + + +/* ============================================================= + * Offsets for GLmatrix + */ + +#define MATRIX_DATA 0 +#define MATRIX_INV 4 +#define MATRIX_FLAGS 8 +#define MATRIX_TYPE 12 + + +/* ============================================================= + * Offsets for struct gl_light + */ + +#define LIGHT_NEXT 0 +#define LIGHT_PREV 4 + +#define LIGHT_AMBIENT 8 +#define LIGHT_DIFFUSE 24 +#define LIGHT_SPECULAR 40 +#define LIGHT_EYE_POSITION 56 +#define LIGHT_SPOT_DIRECTION 72 +#define LIGHT_SPOT_EXPONENT 88 +#define LIGHT_SPOT_CUTOFF 92 +#define LIGHT_COS_CUTOFF 100 +#define LIGHT_CONST_ATTEN 104 +#define LIGHT_LINEAR_ATTEN 108 +#define LIGHT_QUADRATIC_ATTEN 112 +#define LIGHT_ENABLED 116 + +#define LIGHT_FLAGS 120 + +#define LIGHT_POSITION 124 +#define LIGHT_VP_INF_NORM 140 +#define LIGHT_H_INF_NORM 152 +#define LIGHT_NORM_DIRECTION 164 +#define LIGHT_VP_INF_SPOT_ATTEN 180 + +#define LIGHT_SPOT_EXP_TABLE 184 +#define LIGHT_MAT_AMBIENT 4280 +#define LIGHT_MAT_DIFFUSE 4304 +#define LIGHT_MAT_SPECULAR 4328 + +#define SIZEOF_GL_LIGHT 4352 + +/* + * Flags for struct gl_light + */ + +#define LIGHT_SPOT 0x1 +#define LIGHT_LOCAL_VIEWER 0x2 +#define LIGHT_POSITIONAL 0x4 + +#define LIGHT_NEED_VERTICES 0x6 + + +/* ============================================================= + * Offsets for struct gl_lightmodel + */ + +#define LIGHT_MODEL_AMBIENT 0 +#define LIGHT_MODEL_LOCAL_VIEWER 16 +#define LIGHT_MODEL_TWO_SIDE 17 +#define LIGHT_MODEL_COLOR_CONTROL 20 + + +#endif /* __ASM_TYPES_H__ */
Propchange: trunk/reactos/dll/opengl/mesa/src/mesa/x86/matypes.h ------------------------------------------------------------------------------ svn:eol-style = native