I would be grateful if you would give r300 a whirl. I do have patches that are almost ready for the gallium media state trackers (just needs a little polish, and some testing). Clover will be the next thing on my list after the media stuff.
Dylan Quoting Aaron Watry (2017-10-30 20:47:21) > Hi Dylan, > > I took a crack at testing this one. My BARTS (Radeon 6850) seems to > be running through piglit with a reasonable pass-rate afterwards, a > restart of GDM/gnome went fine, and at least xonotic launched and is > running. > > I did attempt to build it with vdpau/va gallium-media api support (as > defined in meson_options.txt), but that doesn't seem to be getting > built (From the TODO's in src/gallium/meson.build, I see that's still > pending). I also noticed that there's still TODO items for the clover > state tracker. Once we add clover support, the r600g driver will need > an LLVM dependency when that state tracker is enabled, as well... > > I did end up having to do some mild rebasing of this patch on top of > current master, but it was pretty trivial. > > That being said, this patch seems to be working as intended, so you can add: > Tested-by: Aaron Watry <awa...@gmail.com> > > If you want, I can dig an r300-based card out of the closet and give > that a whirl as well, but I won't bother unless you need me to. > > --Aaron > > On Thu, Oct 26, 2017 at 6:57 PM, Dylan Baker <dy...@pnwbakers.com> wrote: > > This has been build tested only. > > > > Signed-off-by: Dylan Baker <dylanx.c.ba...@intel.com> > > --- > > meson.build | 20 ++++-- > > meson_options.txt | 2 +- > > src/gallium/drivers/r600/meson.build | 128 > > +++++++++++++++++++++++++++++++++++ > > src/gallium/meson.build | 4 +- > > src/gallium/targets/dri/meson.build | 7 +- > > 5 files changed, 153 insertions(+), 8 deletions(-) > > create mode 100644 src/gallium/drivers/r600/meson.build > > > > diff --git a/meson.build b/meson.build > > index a03da18659e..3aa4cbfddc4 100644 > > --- a/meson.build > > +++ b/meson.build > > @@ -107,6 +107,7 @@ with_gallium = false > > with_gallium_pl111 = false > > with_gallium_radeonsi = false > > with_gallium_r300 = false > > +with_gallium_r600 = false > > with_gallium_nouveau = false > > with_gallium_freedreno = false > > with_gallium_softpipe = false > > @@ -121,6 +122,7 @@ if _drivers != '' > > with_gallium_pl111 = _split.contains('pl111') > > with_gallium_radeonsi = _split.contains('radeonsi') > > with_gallium_r300 = _split.contains('r300') > > + with_gallium_r600 = _split.contains('r600') > > with_gallium_nouveau = _split.contains('nouveau') > > with_gallium_freedreno = _split.contains('freedreno') > > with_gallium_softpipe = _split.contains('swrast') > > @@ -623,9 +625,13 @@ dep_thread = dependency('threads') > > if dep_thread.found() and host_machine.system() == 'linux' > > pre_args += '-DHAVE_PTHREAD' > > endif > > -dep_elf = dependency('libelf', required : false) > > -if not dep_elf.found() and (with_amd_vk or with_gallium_radeonsi) # TODO: > > clover, r600 > > - dep_elf = cc.find_library('elf') > > +if with_amd_vk or with_gallium_radeonsi or with_gallium_r600 # TODO: clover > > + dep_elf = dependency('libelf', required : false) > > + if not dep_elf.found() > > + dep_elf = cc.find_library('elf') > > + endif > > +else > > + dep_elf = [] > > endif > > dep_expat = dependency('expat') > > # this only exists on linux so either this is linux and it will be found, > > or > > @@ -640,7 +646,8 @@ dep_libdrm_freedreno = [] > > if with_amd_vk or with_gallium_radeonsi > > dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.85') > > endif > > -if with_gallium_radeonsi or with_dri_r100 or with_dri_r200 or > > with_gallium_r300 > > +if (with_gallium_radeonsi or with_dri_r100 or with_dri_r200 or > > + with_gallium_r300 or with_gallium_r600) > > dep_libdrm_radeon = dependency('libdrm_radeon', version : '>= 2.4.71') > > endif > > if with_gallium_nouveau or with_dri_nouveau > > @@ -654,8 +661,11 @@ if with_gallium_freedreno > > endif > > > > llvm_modules = ['bitwriter', 'engine', 'mcdisassembler', 'mcjit'] > > -if with_amd_vk or with_gallium_radeonsi # TODO: r600 > > +if with_amd_vk or with_gallium_radeonsi or with_gallium_r600 > > llvm_modules += ['amdgpu', 'bitreader', 'ipo'] > > + if with_gallium_r600 > > + llvm_modules += 'asmparser' > > + endif > > endif > > dep_llvm = dependency( > > 'llvm', version : '>= 3.9.0', required : with_amd_vk, modules : > > llvm_modules, > > diff --git a/meson_options.txt b/meson_options.txt > > index 6ac22600ceb..b811fda0dc1 100644 > > --- a/meson_options.txt > > +++ b/meson_options.txt > > @@ -46,7 +46,7 @@ option( > > option( > > 'gallium-drivers', > > type : 'string', > > - value : 'pl111,radeonsi,nouveau,freedreno,swrast,vc4,etnaviv,imx,r300', > > + value : > > 'pl111,radeonsi,nouveau,freedreno,swrast,vc4,etnaviv,imx,r300,r600', > > description : 'comma separated list of gallium drivers to build.' > > ) > > option( > > diff --git a/src/gallium/drivers/r600/meson.build > > b/src/gallium/drivers/r600/meson.build > > new file mode 100644 > > index 00000000000..411b550331d > > --- /dev/null > > +++ b/src/gallium/drivers/r600/meson.build > > @@ -0,0 +1,128 @@ > > +# 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_r600 = files( > > + 'r600d_common.h', > > + 'compute_memory_pool.c', > > + 'compute_memory_pool.h', > > + 'eg_asm.c', > > + 'eg_debug.c', > > + 'eg_sq.h', > > + 'evergreen_compute.c', > > + 'evergreen_compute.h', > > + 'evergreen_compute_internal.h', > > + 'evergreend.h', > > + 'evergreen_hw_context.c', > > + 'evergreen_state.c', > > + 'r600_asm.c', > > + 'r600_asm.h', > > + 'r600_blit.c', > > + 'r600d.h', > > + 'r600_formats.h', > > + 'r600_hw_context.c', > > + 'r600_isa.c', > > + 'r600_isa.h', > > + 'r600_opcodes.h', > > + 'r600_pipe.c', > > + 'r600_pipe.h', > > + 'r600_public.h', > > + 'r600_shader.c', > > + 'r600_shader.h', > > + 'r600_sq.h', > > + 'r600_state.c', > > + 'r600_state_common.c', > > + 'r600_uvd.c', > > + 'r700_asm.c', > > + 'r700_sq.h', > > + 'cayman_msaa.c', > > + 'r600_buffer_common.c', > > + 'r600_cs.h', > > + 'r600_gpu_load.c', > > + 'r600_perfcounter.c', > > + 'r600_pipe_common.c', > > + 'r600_pipe_common.h', > > + 'r600_query.c', > > + 'r600_query.h', > > + 'r600_streamout.c', > > + 'r600_test_dma.c', > > + 'r600_texture.c', > > + 'r600_viewport.c', > > + 'radeon_uvd.c', > > + 'radeon_uvd.h', > > + 'radeon_vce.c', > > + 'radeon_vce.h', > > + 'radeon_video.c', > > + 'radeon_video.h', > > + 'sb/sb_bc_builder.cpp', > > + 'sb/sb_bc_decoder.cpp', > > + 'sb/sb_bc_dump.cpp', > > + 'sb/sb_bc_finalize.cpp', > > + 'sb/sb_bc.h', > > + 'sb/sb_bc_parser.cpp', > > + 'sb/sb_context.cpp', > > + 'sb/sb_core.cpp', > > + 'sb/sb_dce_cleanup.cpp', > > + 'sb/sb_def_use.cpp', > > + 'sb/sb_dump.cpp', > > + 'sb/sb_expr.cpp', > > + 'sb/sb_expr.h', > > + 'sb/sb_gcm.cpp', > > + 'sb/sb_gvn.cpp', > > + 'sb/sb_if_conversion.cpp', > > + 'sb/sb_ir.cpp', > > + 'sb/sb_ir.h', > > + 'sb/sb_liveness.cpp', > > + 'sb/sb_pass.cpp', > > + 'sb/sb_pass.h', > > + 'sb/sb_peephole.cpp', > > + 'sb/sb_psi_ops.cpp', > > + 'sb/sb_public.h', > > + 'sb/sb_ra_checker.cpp', > > + 'sb/sb_ra_coalesce.cpp', > > + 'sb/sb_ra_init.cpp', > > + 'sb/sb_sched.cpp', > > + 'sb/sb_sched.h', > > + 'sb/sb_shader.cpp', > > + 'sb/sb_shader.h', > > + 'sb/sb_ssa_builder.cpp', > > + 'sb/sb_valtable.cpp', > > +) > > + > > +egd_tables_h = custom_target( > > + 'egd_tables.h', > > + input : ['egd_tables.py', 'evergreend.h'], > > + output : 'egd_tables.h', > > + command : [prog_python2, '@INPUT@'], > > + capture : true, > > +) > > + > > +# TODO: compute defines > > + > > +libr600 = static_library( > > + 'r600', > > + [files_r600, egd_tables_h], > > + c_args : [c_vis_args], > > + cpp_args : [cpp_vis_args], > > + include_directories : [ > > + inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_amd_common, > > + inc_gallium_drivers, > > + ], > > + dependencies: [dep_libdrm_radeon, dep_elf, dep_llvm], > > +) > > diff --git a/src/gallium/meson.build b/src/gallium/meson.build > > index 05bffc19119..da8db5a36f2 100644 > > --- a/src/gallium/meson.build > > +++ b/src/gallium/meson.build > > @@ -48,6 +48,9 @@ endif > > if with_gallium_r300 > > subdir('drivers/r300') > > endif > > +if with_gallium_r600 > > + subdir('drivers/r600') > > +endif > > subdir('drivers/llvmpipe') > > subdir('winsys/sw/null') > > subdir('winsys/sw/dri') > > @@ -77,7 +80,6 @@ if with_gallium_i915 > > endif > > subdir('state_trackers/dri') > > # TODO: SVGA > > -# TODO: r600 > > # TODO: SWR > > # TODO: virgl > > # TODO: winsys/sw/xlib > > diff --git a/src/gallium/targets/dri/meson.build > > b/src/gallium/targets/dri/meson.build > > index 4fc1a841130..685995c1dcf 100644 > > --- a/src/gallium/targets/dri/meson.build > > +++ b/src/gallium/targets/dri/meson.build > > @@ -116,8 +116,13 @@ if with_gallium_r300 > > gallium_dri_link_with += libr300 > > gallium_dri_drivers += 'r300_dri.so' > > endif > > +if with_gallium_r600 > > + gallium_dri_c_args += '-DGALLIUM_R600' > > + gallium_dri_link_with += libr600 > > + gallium_dri_drivers += 'r600_dri.so' > > +endif > > > > -if with_gallium_radeonsi or with_gallium_r300 # TODO: r600 > > +if with_gallium_radeonsi or with_gallium_r300 or with_gallium_r600 > > gallium_dri_link_with += libradeonwinsys > > endif > > > > -- > > 2.14.2 > > > > > > _______________________________________________ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > >
signature.asc
Description: signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev