From 9169dde94149abe519cf1d1da7e388d0e200fa3f Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Wed, 25 Oct 2017 16:54:53 -0700 Subject: [PATCH] meson: build i915g driver Build tested only. Signed-off-by: Dylan Baker Reviewed-by: Eric Anholt --- meson.build | 7 ++- src/gallium/drivers/i915/meson.build | 70 +++++++++++++++++++++++++ src/gallium/meson.build | 7 +-- src/gallium/targets/dri/meson.build | 5 ++ src/gallium/winsys/i915/drm/meson.build | 31 +++++++++++ 5 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 src/gallium/drivers/i915/meson.build create mode 100644 src/gallium/winsys/i915/drm/meson.build diff --git a/meson.build b/meson.build index 53013e47ec4..b40b71c5e84 100644 --- a/meson.build +++ b/meson.build @@ -119,6 +119,7 @@ with_gallium_vc4 = false with_gallium_vc5 = false with_gallium_etnaviv = false with_gallium_imx = false +with_gallium_i915 = false _drivers = get_option('gallium-drivers') if _drivers == 'auto' if not ['darwin', 'windows'].contains(host_machine.system()) @@ -145,6 +146,7 @@ if _drivers != '' with_gallium_vc5 = _split.contains('vc5') with_gallium_etnaviv = _split.contains('etnaviv') with_gallium_imx = _split.contains('imx') + with_gallium_i915 = _split.contains('i915') with_gallium = true endif @@ -174,12 +176,15 @@ endif if with_dri_swrast and with_gallium_softpipe error('Only one swrast provider can be built') endif +if with_dri_i915 and with_gallium_i915 + error('Only one i915 provider can be built') +endif if with_gallium_imx and not with_gallium_etnaviv error('IMX driver requires etnaviv driver') endif dep_libdrm_intel = [] -if with_dri_i915 +if with_dri_i915 or with_gallium_i915 dep_libdrm_intel = dependency('libdrm_intel', version : '>= 2.4.75') endif diff --git a/src/gallium/drivers/i915/meson.build b/src/gallium/drivers/i915/meson.build new file mode 100644 index 00000000000..17f0f6adf8f --- /dev/null +++ b/src/gallium/drivers/i915/meson.build @@ -0,0 +1,70 @@ +# Copyright © 2017 Intel Corporation + +# 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, sublicense, 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 above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# 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 NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS 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. + +files_i915 = files( + 'i915_batchbuffer.h', + 'i915_batch.h', + 'i915_blit.c', + 'i915_blit.h', + 'i915_clear.c', + 'i915_context.c', + 'i915_context.h', + 'i915_debug.c', + 'i915_debug_fp.c', + 'i915_debug.h', + 'i915_debug_private.h', + 'i915_flush.c', + 'i915_fpc_emit.c', + 'i915_fpc.h', + 'i915_fpc_optimize.c', + 'i915_fpc_translate.c', + 'i915_prim_emit.c', + 'i915_prim_vbuf.c', + 'i915_public.h', + 'i915_query.c', + 'i915_query.h', + 'i915_reg.h', + 'i915_resource_buffer.c', + 'i915_resource.c', + 'i915_resource.h', + 'i915_resource_texture.c', + 'i915_screen.c', + 'i915_screen.h', + 'i915_state.c', + 'i915_state_derived.c', + 'i915_state_dynamic.c', + 'i915_state_emit.c', + 'i915_state_fpc.c', + 'i915_state.h', + 'i915_state_immediate.c', + 'i915_state_inlines.h', + 'i915_state_sampler.c', + 'i915_state_static.c', + 'i915_surface.c', + 'i915_surface.h', + 'i915_winsys.h', +) + +libi915 = static_library( + 'i915', + files_i915, + c_args : [c_vis_args], + include_directories : [inc_include, inc_src, inc_gallium, inc_gallium_aux], +) diff --git a/src/gallium/meson.build b/src/gallium/meson.build index 07a97f72490..581f701b30b 100644 --- a/src/gallium/meson.build +++ b/src/gallium/meson.build @@ -70,8 +70,9 @@ endif if with_gallium_imx subdir('winsys/imx/drm') endif -if with_glx == 'gallium-xlib' - subdir('winsys/sw/xlib') +if with_gallium_i915 + subdir('winsys/i915/drm') + subdir('drivers/i915') endif if with_dri subdir('state_trackers/dri') @@ -80,9 +81,9 @@ if with_osmesa == 'gallium' subdir('state_trackers/osmesa') endif if with_glx == 'gallium-xlib' + subdir('winsys/sw/xlib') subdir('state_trackers/glx/xlib') endif -# TODO: i915 # TODO: SVGA # TODO: r300 # TODO: r600 diff --git a/src/gallium/targets/dri/meson.build b/src/gallium/targets/dri/meson.build index 595fd0a1a54..4dbda07449a 100644 --- a/src/gallium/targets/dri/meson.build +++ b/src/gallium/targets/dri/meson.build @@ -108,6 +108,11 @@ if with_gallium_imx gallium_dri_link_with += libimxdrm gallium_dri_drivers += 'imx-drm_dri.so' endif +if with_gallium_i915 + gallium_dri_c_args += '-DGALLIUM_I915' + gallium_dri_link_with += [libi915, libi915drm] + gallium_dri_drivers += 'i915_dri.so' +endif if with_gallium_vc4 or with_gallium_vc5 gallium_dri_link_with += libbroadcom_cle diff --git a/src/gallium/winsys/i915/drm/meson.build b/src/gallium/winsys/i915/drm/meson.build new file mode 100644 index 00000000000..01300ad4c91 --- /dev/null +++ b/src/gallium/winsys/i915/drm/meson.build @@ -0,0 +1,31 @@ +# Copyright © 2017 Intel Corporation + +# 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, sublicense, 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 above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# 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 NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS 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. + +libi915drm = static_library( + 'i915drm', + files( + 'i915_drm_batchbuffer.c', 'i915_drm_buffer.c', 'i915_drm_fence.c', + 'i915_drm_winsys.c' + ), + include_directories : [ + inc_include, inc_src, inc_gallium, inc_gallium_aux, inc_gallium_drivers + ], + dependencies : [dep_libdrm, dep_libdrm_intel], +) -- 2.30.2