1 # $NetBSD: Makefile,v 1.29 2019/06/02 11:35:55 mrg Exp $ 2 3 # Link the gallium mega driver. 4 5 LIBISMODULE= yes 6 LIBISCXX= yes 7 8 .include <bsd.own.mk> 9 10 SHLIB_MAJOR= 0 11 12 LIB= gallium_dri 13 DRIDIR= ${X11USRLIBDIR}/modules/dri 14 DRIDEBUGDIR= ${DEBUGDIR}${X11USRLIBDIR}/modules/dri 15 16 LLVM_INCLUDE_OBJDIR!= cd ${NETBSDSRCDIR}/external/bsd/llvm/include && ${PRINTOBJDIR} 17 18 CWARNFLAGS.clang += -Wno-atomic-alignment -Wno-unknown-warning-option 19 20 CXXFLAGS+= -std=c++11 21 CFLAGS+= -std=gnu11 22 CPPFLAGS+= -I${DESTDIR}${X11INCDIR}/libdrm \ 23 -I${NETBSDSRCDIR}/external/bsd/llvm/dist/llvm/include \ 24 -I${LLVM_INCLUDE_OBJDIR} -I${NETBSDSRCDIR}/external/bsd/llvm/config 25 26 GALLIUM_SUBDIRS= \ 27 auxiliary \ 28 auxiliary/cso_cache \ 29 auxiliary/draw \ 30 auxiliary/driver_ddebug \ 31 auxiliary/driver_noop \ 32 auxiliary/driver_rbug \ 33 auxiliary/driver_trace \ 34 auxiliary/hud \ 35 auxiliary/indices \ 36 auxiliary/nir \ 37 auxiliary/os \ 38 auxiliary/pipebuffer \ 39 auxiliary/pipe-loader \ 40 auxiliary/postprocess \ 41 auxiliary/rbug \ 42 auxiliary/renderonly \ 43 auxiliary/rtasm \ 44 auxiliary/tgsi \ 45 auxiliary/translate \ 46 auxiliary/util \ 47 auxiliary/vl \ 48 drivers/noop \ 49 drivers/rbug \ 50 drivers/softpipe \ 51 winsys/sw/dri \ 52 winsys/sw/kms-dri \ 53 winsys/sw/null \ 54 winsys/sw/wrapper \ 55 state_trackers/dri 56 57 GALLIUM_SUBDIRS_VDPAU= \ 58 state_trackers/vdpau 59 60 GALLIUM_SUBDIRS_LLVMPIPE= \ 61 auxiliary/gallivm \ 62 drivers/llvmpipe 63 64 GALLIUM_SUBDIRS_ATI= \ 65 drivers/radeon \ 66 drivers/radeonsi \ 67 drivers/r300 \ 68 drivers/r300/compiler \ 69 drivers/r600 \ 70 drivers/r600/sb \ 71 winsys/radeon/drm \ 72 winsys/amdgpu/drm 73 74 GALLIUM_SUBDIRS_I915= \ 75 drivers/i915 \ 76 winsys/i915/drm 77 78 GALLIUM_SUBDIRS_NOUVEAU= \ 79 drivers/nouveau \ 80 drivers/nouveau/nv30 \ 81 drivers/nouveau/nv50 \ 82 drivers/nouveau/codegen \ 83 drivers/nouveau/nvc0 \ 84 winsys/nouveau/drm 85 86 BUILD_RADEON=0 87 BUILD_NOUVEAU=0 88 BUILD_VDPAU=0 89 BUILD_LLVMPIPE=0 90 BUILD_I915=0 91 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 92 BUILD_I915=1 93 .if ${MKLLVMRT} != "no" 94 BUILD_RADEON=1 95 BUILD_LLVMPIPE=1 96 .endif 97 .endif 98 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" || ${MACHINE} == "evbarm" 99 BUILD_NOUVEAU=1 100 BUILD_VDPAU=1 101 .endif 102 103 DRIVERS= kms_swrast swrast 104 .if ${BUILD_RADEON} == 1 105 DRIVERS+= r600 r300 106 GALLIUM_SUBDIRS+= ${GALLIUM_SUBDIRS_ATI} 107 .endif 108 .if ${BUILD_NOUVEAU} == 1 109 DRIVERS+= nouveau 110 GALLIUM_SUBDIRS+= ${GALLIUM_SUBDIRS_NOUVEAU} 111 .endif 112 .if ${BUILD_VDPAU} == 1 113 GALLIUM_SUBDIRS+= ${GALLIUM_SUBDIRS_VDPAU} 114 .endif 115 .if ${BUILD_I915} == 1 116 GALLIUM_SUBDIRS+= ${GALLIUM_SUBDIRS_I915} 117 .endif 118 .if ${BUILD_LLVMPIPE} == 1 119 GALLIUM_SUBDIRS+= ${GALLIUM_SUBDIRS_LLVMPIPE} 120 .endif 121 122 GALLIUM_SOURCES.auxiliary/cso_cache= \ 123 cso_cache.c \ 124 cso_context.c \ 125 cso_hash.c 126 127 GALLIUM_SOURCES.auxiliary/draw= \ 128 draw_context.c \ 129 draw_fs.c \ 130 draw_gs.c \ 131 draw_pipe_aaline.c \ 132 draw_pipe_aapoint.c \ 133 draw_pipe.c \ 134 draw_pipe_clip.c \ 135 draw_pipe_cull.c \ 136 draw_pipe_flatshade.c \ 137 draw_pipe_offset.c \ 138 draw_pipe_pstipple.c \ 139 draw_pipe_stipple.c \ 140 draw_pipe_twoside.c \ 141 draw_pipe_unfilled.c \ 142 draw_pipe_util.c \ 143 draw_pipe_validate.c \ 144 draw_pipe_vbuf.c \ 145 draw_pipe_wide_line.c \ 146 draw_pipe_wide_point.c \ 147 draw_prim_assembler.c \ 148 draw_pt.c \ 149 draw_pt_emit.c \ 150 draw_pt_fetch.c \ 151 draw_pt_fetch_emit.c \ 152 draw_pt_fetch_shade_emit.c \ 153 draw_pt_fetch_shade_pipeline.c \ 154 draw_pt_post_vs.c \ 155 draw_pt_so_emit.c \ 156 draw_pt_util.c \ 157 draw_pt_vsplit.c \ 158 draw_vertex.c \ 159 draw_vs.c \ 160 draw_vs_exec.c \ 161 draw_vs_variant.c 162 163 .if ${MKLLVMRT} != "no" 164 GALLIUM_SOURCES.auxiliary/draw+= \ 165 draw_llvm.c \ 166 draw_llvm_sample.c \ 167 draw_pt_fetch_shade_pipeline_llvm.c \ 168 draw_vs_llvm.c 169 .endif 170 171 GALLIUM_SOURCES.auxiliary/hud= \ 172 font.c \ 173 hud_context.c \ 174 hud_cpu.c \ 175 hud_nic.c \ 176 hud_cpufreq.c \ 177 hud_diskstat.c \ 178 hud_sensors_temp.c \ 179 hud_fps.c \ 180 hud_driver_query.c 181 GALLIUM_SOURCES.auxiliary/indices= \ 182 u_primconvert.c 183 GALLIUM_SOURCES.auxiliary/os= \ 184 os_process.c 185 GALLIUM_SOURCES.auxiliary/pipe-loader= \ 186 pipe_loader.c \ 187 pipe_loader_drm.c \ 188 pipe_loader_sw.c 189 190 .for _f in ${GALLIUM_SOURCES.auxiliary/pipe-loader} 191 CPPFLAGS.${_f} += -DHAVE_PIPE_LOADER_KMS=1 \ 192 -DHAVE_PIPE_LOADER_DRI=1 \ 193 -DGALLIUM_STATIC_TARGETS=1 \ 194 -I${X11SRCDIR.Mesa}/src/gallium/winsys \ 195 -I${X11SRCDIR.Mesa}/src/loader 196 .endfor 197 198 GALLIUM_SOURCES.auxiliary/pipebuffer= \ 199 pb_buffer_fenced.c \ 200 pb_buffer_malloc.c \ 201 pb_bufmgr_alt.c \ 202 pb_bufmgr_cache.c \ 203 pb_bufmgr_debug.c \ 204 pb_bufmgr_mm.c \ 205 pb_bufmgr_ondemand.c \ 206 pb_bufmgr_pool.c \ 207 pb_bufmgr_slab.c \ 208 pb_cache.c \ 209 pb_slab.c \ 210 pb_validate.c 211 GALLIUM_SOURCES.auxiliary/postprocess= \ 212 pp_celshade.c \ 213 pp_colors.c \ 214 pp_init.c \ 215 pp_mlaa.c \ 216 pp_run.c \ 217 pp_program.c 218 GALLIUM_SOURCES.auxiliary/rbug= \ 219 rbug_connection.c \ 220 RBUGrbug_context.c \ 221 RBUGrbug_core.c \ 222 rbug_demarshal.c \ 223 rbug_texture.c \ 224 rbug_shader.c 225 GALLIUM_SOURCES.auxiliary/rtasm= \ 226 rtasm_cpu.c \ 227 rtasm_execmem.c \ 228 rtasm_x86sse.c 229 GALLIUM_SOURCES.auxiliary/tgsi= \ 230 tgsi_aa_point.c \ 231 tgsi_build.c \ 232 tgsi_dump.c \ 233 tgsi_exec.c \ 234 tgsi_emulate.c \ 235 tgsi_from_mesa.c \ 236 tgsi_info.c \ 237 tgsi_iterate.c \ 238 tgsi_lowering.c \ 239 tgsi_parse.c \ 240 tgsi_point_sprite.c \ 241 tgsi_sanity.c \ 242 tgsi_scan.c \ 243 tgsi_strings.c \ 244 tgsi_text.c \ 245 tgsi_transform.c \ 246 tgsi_two_side.c \ 247 tgsi_ureg.c \ 248 tgsi_util.c 249 GALLIUM_SOURCES.auxiliary/translate= \ 250 translate.c \ 251 translate_cache.c \ 252 translate_generic.c \ 253 translate_sse.c 254 GALLIUM_SOURCES.auxiliary/util= \ 255 os_misc.c \ 256 u_async_debug.c \ 257 u_bitmask.c \ 258 u_blit.c \ 259 u_blitter.c \ 260 u_cache.c \ 261 u_debug.c \ 262 u_debug_describe.c \ 263 u_debug_flush.c \ 264 u_debug_gallium.c \ 265 u_debug_image.c \ 266 u_debug_memory.c \ 267 u_debug_refcnt.c \ 268 u_debug_stack.c \ 269 u_debug_symbol.c \ 270 u_dl.c \ 271 u_draw.c \ 272 u_draw_quad.c \ 273 u_dump_defines.c \ 274 u_dump_state.c \ 275 u_format.c \ 276 u_format_bptc.c \ 277 u_format_etc.c \ 278 u_format_latc.c \ 279 u_format_other.c \ 280 u_format_rgtc.c \ 281 u_format_s3tc.c \ 282 u_format_tests.c \ 283 u_format_yuv.c \ 284 u_format_zs.c \ 285 u_framebuffer.c \ 286 u_gen_mipmap.c \ 287 u_handle_table.c \ 288 u_hash_table.c \ 289 u_helpers.c \ 290 u_idalloc.c \ 291 u_index_modify.c \ 292 u_linear.c \ 293 u_log.c \ 294 u_mm.c \ 295 u_network.c \ 296 u_prim.c \ 297 u_prim_restart.c \ 298 u_pstipple.c \ 299 u_resource.c \ 300 u_ringbuffer.c \ 301 u_sampler.c \ 302 u_screen.c \ 303 u_simple_shaders.c \ 304 u_suballoc.c \ 305 u_surface.c \ 306 u_surfaces.c \ 307 u_tests.c \ 308 u_texture.c \ 309 u_tile.c \ 310 u_transfer.c \ 311 u_transfer_helper.c \ 312 u_threaded_context.c \ 313 u_upload_mgr.c \ 314 u_vbuf.c 315 GALLIUM_SOURCES.auxiliary/nir = \ 316 tgsi_to_nir.c 317 GALLIUM_SOURCES.auxiliary/vl= \ 318 vl_bicubic_filter.c \ 319 vl_compositor.c \ 320 vl_csc.c \ 321 vl_decoder.c \ 322 vl_deint_filter.c \ 323 vl_idct.c \ 324 vl_matrix_filter.c \ 325 vl_mc.c \ 326 vl_median_filter.c \ 327 vl_mpeg12_bitstream.c \ 328 vl_mpeg12_decoder.c \ 329 vl_vertex_buffers.c \ 330 vl_video_buffer.c \ 331 vl_winsys_dri.c \ 332 vl_zscan.c 333 334 # Generated 335 .PATH: ${X11SRCDIR.Mesa}/../src/gallium/auxiliary 336 GALLIUM_SOURCES.auxiliary= \ 337 u_indices_gen.c \ 338 u_unfilled_gen.c \ 339 u_format_table.c 340 .for _f in ${GALLIUM_SOURCES.auxiliary/vl} 341 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/loader 342 .endfor 343 .for _f in ${GALLIUM_SOURCES.auxiliary} 344 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/gallium/auxiliary/util 345 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/util 346 .endfor 347 348 GALLIUM_SOURCES.auxiliary/renderonly= \ 349 renderonly.c 350 351 GALLIUM_SOURCES.auxiliary/gallivm= \ 352 lp_bld_arit.c \ 353 lp_bld_arit_overflow.c \ 354 lp_bld_assert.c \ 355 lp_bld_bitarit.c \ 356 lp_bld_const.c \ 357 lp_bld_conv.c \ 358 lp_bld_flow.c \ 359 lp_bld_format_aos_array.c \ 360 lp_bld_format_aos.c \ 361 lp_bld_format_cached.c \ 362 lp_bld_format_float.c \ 363 lp_bld_format.c \ 364 lp_bld_format_soa.c \ 365 lp_bld_format_srgb.c \ 366 lp_bld_format_yuv.c \ 367 lp_bld_gather.c \ 368 lp_bld_init.c \ 369 lp_bld_intr.c \ 370 lp_bld_logic.c \ 371 lp_bld_misc.cpp \ 372 lp_bld_pack.c \ 373 lp_bld_printf.c \ 374 lp_bld_quad.c \ 375 lp_bld_sample_aos.c \ 376 lp_bld_sample.c \ 377 lp_bld_sample_soa.c \ 378 lp_bld_struct.c \ 379 lp_bld_swizzle.c \ 380 lp_bld_tgsi_action.c \ 381 lp_bld_tgsi_aos.c \ 382 lp_bld_tgsi.c \ 383 lp_bld_tgsi_info.c \ 384 lp_bld_tgsi_soa.c \ 385 lp_bld_type.c 386 #lp_bld_debug.cpp 387 388 .for _f in ${GALLIUM_SOURCES.auxiliary/gallivm} 389 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/gallium/auxiliary/util 390 .endfor 391 392 393 GALLIUM_SOURCES.auxiliary/driver_ddebug = \ 394 dd_context.c \ 395 dd_draw.c \ 396 dd_screen.c 397 398 GALLIUM_SOURCES.auxiliary/driver_noop = \ 399 noop_pipe.c \ 400 noop_state.c 401 402 GALLIUM_SOURCES.auxiliary/driver_trace = \ 403 tr_context.c \ 404 tr_dump.c \ 405 tr_dump_state.c \ 406 tr_screen.c \ 407 tr_texture.c 408 409 GALLIUM_SOURCES.auxiliary/driver_rbug = \ 410 DRIVERrbug_core.c \ 411 DRIVERrbug_context.c \ 412 rbug_objects.c \ 413 rbug_screen.c 414 # Conflicts with auxiliary/rbug/ files 415 BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/auxiliary/rbug/rbug_core.c RBUGrbug_core.c 416 BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/auxiliary/rbug/rbug_context.c RBUGrbug_context.c 417 BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/auxiliary/driver_rbug/rbug_core.c DRIVERrbug_core.c 418 BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/auxiliary/driver_rbug/rbug_context.c DRIVERrbug_context.c 419 CPPFLAGS.DRIVERrbug_core.c+= -I${X11SRCDIR.Mesa}/src/gallium/auxiliary 420 CPPFLAGS.DRIVERrbug_core.c+= -I${X11SRCDIR.Mesa}/src/gallium/auxiliary/driver_rbug 421 CPPFLAGS.DRIVERrbug_core.c+= -I${X11SRCDIR.Mesa}/src/gallium/drivers 422 CPPFLAGS.DRIVERrbug_context.c+= -I${X11SRCDIR.Mesa}/src/gallium/auxiliary 423 CPPFLAGS.DRIVERrbug_context.c+= -I${X11SRCDIR.Mesa}/src/gallium/auxiliary/driver_rbug 424 CPPFLAGS.DRIVERrbug_context.c+= -I${X11SRCDIR.Mesa}/src/gallium/drivers 425 426 GALLIUM_SOURCES.drivers/i915= \ 427 i915_blit.c \ 428 i915_clear.c \ 429 i915_context.c \ 430 i915_debug.c \ 431 i915_debug_fp.c \ 432 i915_flush.c \ 433 i915_fpc_emit.c \ 434 i915_fpc_optimize.c \ 435 i915_fpc_translate.c \ 436 i915_prim_emit.c \ 437 i915_prim_vbuf.c \ 438 i915_query.c \ 439 i915_resource_buffer.c \ 440 i915_resource.c \ 441 i915_resource_texture.c \ 442 i915_screen.c \ 443 i915_state.c \ 444 i915_state_derived.c \ 445 i915_state_dynamic.c \ 446 i915_state_emit.c \ 447 i915_state_fpc.c \ 448 i915_state_immediate.c \ 449 i915_state_sampler.c \ 450 i915_state_static.c \ 451 i915_surface.c 452 453 GALLIUM_SOURCES.winsys/i915/drm= \ 454 i915_drm_batchbuffer.c \ 455 i915_drm_buffer.c \ 456 i915_drm_fence.c \ 457 i915_drm_winsys.c 458 459 # Conflicts with r600/radeon_video.c and radeon/radeon_video.c 460 BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/drivers/r600/radeon_video.c r600_radeon_video.c 461 BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/drivers/radeon/radeon_video.c radeon_radeon_video.c 462 BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/drivers/r600/radeon_vce.c r600_radeon_vce.c 463 BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/drivers/radeon/radeon_vce.c radeon_radeon_vce.c 464 BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/drivers/r600/r600_perfcounter.c r600_r600_perfcounter.c 465 BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/drivers/radeon/r600_perfcounter.c radeon_r600_perfcounter.c 466 BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/drivers/r600/radeon_uvd.c r600_radeon_uvd.c 467 BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/drivers/radeon/radeon_uvd.c radeon_radeon_uvd.c 468 469 GALLIUM_SOURCES.drivers/radeon = \ 470 cayman_msaa.c \ 471 r600_buffer_common.c \ 472 r600_pipe_common.c \ 473 r600_query.c \ 474 r600_streamout.c \ 475 r600_texture.c \ 476 radeon_r600_perfcounter.c \ 477 radeon_radeon_uvd.c \ 478 radeon_uvd_enc.c \ 479 radeon_uvd_enc_1_1.c \ 480 radeon_vce_40_2_2.c \ 481 radeon_vce_50.c \ 482 radeon_vce_52.c \ 483 radeon_vcn_dec.c \ 484 radeon_vcn_dec_jpeg.c \ 485 radeon_vcn_enc.c \ 486 radeon_vcn_enc_1_2.c \ 487 radeon_radeon_vce.c \ 488 radeon_radeon_video.c \ 489 490 GALLIUM_SOURCES.drivers/r600 = \ 491 eg_debug.c \ 492 r600_gpu_load.c \ 493 r600_r600_perfcounter.c \ 494 r600_radeon_vce.c \ 495 r600_radeon_video.c \ 496 compute_memory_pool.c \ 497 r600_viewport.c \ 498 eg_asm.c \ 499 evergreen_compute.c \ 500 evergreen_hw_context.c \ 501 evergreen_state.c \ 502 r600_asm.c \ 503 r600_blit.c \ 504 r600_hw_context.c \ 505 r600_isa.c \ 506 r600_pipe.c \ 507 r600_shader.c \ 508 r600_state.c \ 509 r600_state_common.c \ 510 r600_uvd.c \ 511 r600_radeon_uvd.c \ 512 r600_test_dma.c \ 513 r700_asm.c 514 GALLIUM_SOURCES.drivers/r600/sb = \ 515 sb_bc_builder.cpp \ 516 sb_bc_decoder.cpp \ 517 sb_bc_dump.cpp \ 518 sb_bc_finalize.cpp \ 519 sb_bc_parser.cpp \ 520 sb_context.cpp \ 521 sb_core.cpp \ 522 sb_dce_cleanup.cpp \ 523 sb_def_use.cpp \ 524 sb_dump.cpp \ 525 sb_expr.cpp \ 526 sb_gcm.cpp \ 527 sb_gvn.cpp \ 528 sb_if_conversion.cpp \ 529 sb_ir.cpp \ 530 sb_liveness.cpp \ 531 sb_pass.cpp \ 532 sb_peephole.cpp \ 533 sb_psi_ops.cpp \ 534 sb_ra_checker.cpp \ 535 sb_ra_coalesce.cpp \ 536 sb_ra_init.cpp \ 537 sb_sched.cpp \ 538 sb_shader.cpp \ 539 sb_ssa_builder.cpp \ 540 sb_valtable.cpp 541 542 GALLIUM_SOURCES.drivers/r300 = \ 543 r300_blit.c \ 544 r300_chipset.c \ 545 r300_context.c \ 546 r300_debug.c \ 547 r300_emit.c \ 548 r300_flush.c \ 549 r300_fs.c \ 550 r300_hyperz.c \ 551 r300_query.c \ 552 r300_render.c \ 553 r300_render_stencilref.c \ 554 r300_render_translate.c \ 555 r300_resource.c \ 556 r300_screen_buffer.c \ 557 r300_screen.c \ 558 r300_state.c \ 559 r300_state_derived.c \ 560 r300_texture.c \ 561 r300_texture_desc.c \ 562 r300_tgsi_to_rc.c \ 563 r300_transfer.c \ 564 r300_vs.c \ 565 r300_vs_draw.c 566 567 GALLIUM_SOURCES.drivers/r300/compiler = \ 568 memory_pool.c \ 569 r300_fragprog.c \ 570 r300_fragprog_emit.c \ 571 r300_fragprog_swizzle.c \ 572 r3xx_fragprog.c \ 573 r3xx_vertprog.c \ 574 r3xx_vertprog_dump.c \ 575 r500_fragprog.c \ 576 r500_fragprog_emit.c \ 577 radeon_code.c \ 578 radeon_compiler.c \ 579 radeon_compiler_util.c \ 580 radeon_dataflow.c \ 581 radeon_dataflow_deadcode.c \ 582 radeon_dataflow_swizzles.c \ 583 radeon_emulate_branches.c \ 584 radeon_emulate_loops.c \ 585 radeon_inline_literals.c \ 586 radeon_list.c \ 587 radeon_opcodes.c \ 588 radeon_optimize.c \ 589 radeon_pair_dead_sources.c \ 590 radeon_pair_regalloc.c \ 591 radeon_pair_schedule.c \ 592 radeon_pair_translate.c \ 593 radeon_program_alu.c \ 594 radeon_program.c \ 595 radeon_program_pair.c \ 596 radeon_program_print.c \ 597 radeon_program_tex.c \ 598 radeon_remove_constants.c \ 599 radeon_rename_regs.c \ 600 radeon_variable.c \ 601 radeon_vert_fc.c 602 603 GALLIUM_SOURCES.drivers/radeonsi = \ 604 cik_sdma.c \ 605 si_blit.c \ 606 si_buffer.c \ 607 si_clear.c \ 608 si_compute.c \ 609 si_compute_blit.c \ 610 si_cp_dma.c \ 611 si_debug.c \ 612 si_descriptors.c \ 613 si_dma.c \ 614 si_dma_cs.c \ 615 si_fence.c \ 616 si_get.c \ 617 si_gfx_cs.c \ 618 si_gpu_load.c \ 619 si_pipe.c \ 620 si_pm4.c \ 621 si_perfcounter.c \ 622 si_query.c \ 623 si_shader.c \ 624 si_shader_nir.c \ 625 si_shader_tgsi_alu.c \ 626 si_shader_tgsi_mem.c \ 627 si_shader_tgsi_setup.c \ 628 si_shaderlib_tgsi.c \ 629 si_state.c \ 630 si_state_binning.c \ 631 si_state_draw.c \ 632 si_state_msaa.c \ 633 si_state_shaders.c \ 634 si_state_streamout.c \ 635 si_state_viewport.c \ 636 si_test_dma.c \ 637 si_test_dma_perf.c \ 638 si_texture.c \ 639 si_uvd.c 640 641 .for _f in ${GALLIUM_SOURCES.drivers/radeon} 642 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/gallium/drivers/radeon 643 .endfor 644 645 .for _f in ${GALLIUM_SOURCES.drivers/r300} ${GALLIUM_SOURCES.drivers/r300/compiler} 646 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/gallium/drivers/r300 \ 647 -I${X11SRCDIR.Mesa}/src/gallium/drivers/r300/compiler 648 .endfor 649 650 .for _f in ${GALLIUM_SOURCES.drivers/r600} ${GALLIUM_SOURCES.drivers/r600/sb} ${GALLIUM_SOURCES.drivers/radeonsi} 651 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/gallium/drivers/r600 652 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/../src/gallium/drivers/r600 653 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/amd/common 654 .endfor 655 656 .for _f in ${GALLIUM_SOURCES.drivers/radeon} 657 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/gallium/drivers/radeonsi 658 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/amd/common 659 .endfor 660 661 GALLIUM_SOURCES.drivers/nouveau = \ 662 nouveau_buffer.c \ 663 nouveau_fence.c \ 664 nouveau_heap.c \ 665 nouveau_mm.c \ 666 nouveau_screen.c \ 667 nouveau_video.c \ 668 nouveau_vp3_video_bsp.c \ 669 nouveau_vp3_video.c \ 670 nouveau_vp3_video_vp.c 671 672 GALLIUM_SOURCES.drivers/nouveau/nv30 = \ 673 nv30_clear.c \ 674 nv30_context.c \ 675 nv30_draw.c \ 676 nv30_format.c \ 677 nv30_fragprog.c \ 678 nv30_fragtex.c \ 679 nv30_miptree.c \ 680 nv30_push.c \ 681 nv30_query.c \ 682 nv30_resource.c \ 683 nv30_screen.c \ 684 nv30_state.c \ 685 nv30_state_validate.c \ 686 nv30_texture.c \ 687 nv30_transfer.c \ 688 nv30_vbo.c \ 689 nv30_vertprog.c \ 690 nv40_verttex.c \ 691 nvfx_fragprog.c \ 692 nvfx_vertprog.c 693 694 GALLIUM_SOURCES.drivers/nouveau/nv50 = \ 695 nv50_compute.c \ 696 nv50_context.c \ 697 nv50_formats.c \ 698 nv50_miptree.c \ 699 nv50_program.c \ 700 nv50_push.c \ 701 nv50_query.c \ 702 nv50_query_hw.c \ 703 nv50_query_hw_metric.c \ 704 nv50_query_hw_sm.c \ 705 nv50_resource.c \ 706 nv50_screen.c \ 707 nv50_shader_state.c \ 708 nv50_state.c \ 709 nv50_state_validate.c \ 710 nv50_surface.c \ 711 nv50_tex.c \ 712 nv50_transfer.c \ 713 nv50_vbo.c \ 714 nv84_video_bsp.c \ 715 nv84_video.c \ 716 nv84_video_vp.c \ 717 nv98_video_bsp.c \ 718 nv98_video.c \ 719 nv98_video_ppp.c \ 720 nv98_video_vp.c 721 722 GALLIUM_SOURCES.drivers/nouveau/codegen = \ 723 nv50_ir.cpp \ 724 nv50_ir_bb.cpp \ 725 nv50_ir_build_util.cpp \ 726 nv50_ir_emit_nv50.cpp \ 727 nv50_ir_from_tgsi.cpp \ 728 nv50_ir_graph.cpp \ 729 nv50_ir_lowering_nv50.cpp \ 730 nv50_ir_peephole.cpp \ 731 nv50_ir_print.cpp \ 732 nv50_ir_ra.cpp \ 733 nv50_ir_ssa.cpp \ 734 nv50_ir_target.cpp \ 735 nv50_ir_target_nv50.cpp \ 736 nv50_ir_util.cpp \ 737 nv50_ir_emit_gk110.cpp \ 738 nv50_ir_emit_gm107.cpp \ 739 nv50_ir_emit_nvc0.cpp \ 740 nv50_ir_lowering_gm107.cpp \ 741 nv50_ir_lowering_nvc0.cpp \ 742 nv50_ir_target_gm107.cpp \ 743 nv50_ir_target_nvc0.cpp 744 745 GALLIUM_SOURCES.drivers/nouveau/nvc0 = \ 746 nvc0_compute.c \ 747 nvc0_context.c \ 748 nvc0_formats.c \ 749 nvc0_miptree.c \ 750 nvc0_resource.c \ 751 nvc0_screen.c \ 752 nvc0_state.c \ 753 nvc0_state_validate.c \ 754 nvc0_surface.c \ 755 nvc0_tex.c \ 756 nvc0_transfer.c \ 757 nvc0_vbo.c \ 758 nvc0_vbo_translate.c \ 759 nvc0_program.c \ 760 nvc0_shader_state.c \ 761 nvc0_query.c \ 762 nvc0_query_hw.c \ 763 nvc0_query_hw_metric.c \ 764 nvc0_query_hw_sm.c \ 765 nvc0_query_sw.c \ 766 nve4_compute.c \ 767 nvc0_video.c \ 768 nvc0_video_bsp.c \ 769 nvc0_video_vp.c \ 770 nvc0_video_ppp.c 771 772 773 GALLIUM_SOURCES.winsys/nouveau/drm = \ 774 nouveau_drm_winsys.c 775 776 .for _f in ${GALLIUM_SOURCES.drivers/nouveau} \ 777 ${GALLIUM_SOURCES.drivers/nouveau/nv30} \ 778 ${GALLIUM_SOURCES.drivers/nouveau/nv50} \ 779 ${GALLIUM_SOURCES.drivers/nouveau/codegen} \ 780 ${GALLIUM_SOURCES.drivers/nouveau/nvc0} \ 781 ${GALLIUM_SOURCES.winsys/nouveau/drm} 782 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/gallium/drivers/nouveau \ 783 -I${DESTDIR}${X11INCDIR}/libdrm/nouveau 784 .endfor 785 786 GALLIUM_SOURCES.winsys/radeon/drm = \ 787 radeon_drm_bo.c \ 788 radeon_drm_cs.c \ 789 radeon_drm_surface.c \ 790 radeon_drm_winsys.c 791 792 GALLIUM_SOURCES.winsys/amdgpu/drm = \ 793 amdgpu_bo.c \ 794 amdgpu_cs.c \ 795 amdgpu_surface.c \ 796 amdgpu_winsys.c 797 798 .for _f in ${GALLIUM_SOURCES.winsys/amdgpu/drm} 799 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/amd 800 .endfor 801 802 GALLIUM_SOURCES.state_trackers/vdpau = \ 803 bitmap.c \ 804 decode.c \ 805 device.c \ 806 ftab.c \ 807 htab.c \ 808 mixer.c \ 809 output.c \ 810 preemption.c \ 811 presentation.c \ 812 query.c \ 813 surface.c 814 815 GALLIUM_SOURCES.drivers/llvmpipe = \ 816 lp_bld_alpha.c \ 817 lp_bld_blend_aos.c \ 818 lp_bld_blend.c \ 819 lp_bld_blend_logicop.c \ 820 lp_bld_depth.c \ 821 lp_bld_interp.c \ 822 lp_clear.c \ 823 lp_context.c \ 824 lp_draw_arrays.c \ 825 lp_fence.c \ 826 lp_flush.c \ 827 lp_jit.c \ 828 lp_memory.c \ 829 lp_perf.c \ 830 lp_query.c \ 831 lp_rast.c \ 832 lp_rast_debug.c \ 833 lp_rast_tri.c \ 834 lp_scene.c \ 835 lp_scene_queue.c \ 836 lp_screen.c \ 837 lp_setup.c \ 838 lp_setup_line.c \ 839 lp_setup_point.c \ 840 lp_setup_tri.c \ 841 lp_setup_vbuf.c \ 842 lp_state_blend.c \ 843 lp_state_clip.c \ 844 lp_state_derived.c \ 845 lp_state_fs.c \ 846 lp_state_gs.c \ 847 lp_state_rasterizer.c \ 848 lp_state_sampler.c \ 849 lp_state_setup.c \ 850 lp_state_so.c \ 851 lp_state_surface.c \ 852 lp_state_vertex.c \ 853 lp_state_vs.c \ 854 lp_surface.c \ 855 lp_tex_sample.c \ 856 lp_texture.c 857 858 GALLIUM_SOURCES.drivers/softpipe = \ 859 sp_buffer.c \ 860 sp_clear.c \ 861 sp_context.c \ 862 sp_compute.c \ 863 sp_draw_arrays.c \ 864 sp_fence.c \ 865 sp_flush.c \ 866 sp_fs_exec.c \ 867 sp_image.c \ 868 sp_prim_vbuf.c \ 869 sp_quad_blend.c \ 870 sp_quad_depth_test.c \ 871 sp_quad_fs.c \ 872 sp_quad_pipe.c \ 873 sp_quad_stipple.c \ 874 sp_query.c \ 875 sp_screen.c \ 876 sp_setup.c \ 877 sp_state_blend.c \ 878 sp_state_clip.c \ 879 sp_state_derived.c \ 880 sp_state_image.c \ 881 sp_state_rasterizer.c \ 882 sp_state_sampler.c \ 883 sp_state_shader.c \ 884 sp_state_so.c \ 885 sp_state_surface.c \ 886 sp_state_vertex.c \ 887 sp_surface.c \ 888 sp_tex_sample.c \ 889 sp_tex_tile_cache.c \ 890 sp_texture.c \ 891 sp_tile_cache.c 892 893 GALLIUM_SOURCES.winsys/sw/null = \ 894 null_sw_winsys.c 895 896 GALLIUM_SOURCES.winsys/sw/wrapper = \ 897 wrapper_sw_winsys.c 898 899 GALLIUM_SOURCES.winsys/sw/dri = \ 900 dri_sw_winsys.c 901 902 GALLIUM_SOURCES.winsys/sw/kms-dri = \ 903 kms_dri_sw_winsys.c 904 905 GALLIUM_SOURCES.state_trackers/dri = \ 906 dri_context.c \ 907 dri_drawable.c \ 908 dri_helpers.c \ 909 dri_query_renderer.c \ 910 dri_screen.c \ 911 drisw.c \ 912 dri2.c 913 .for _f in ${GALLIUM_SOURCES.state_trackers/dri} 914 CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/gallium/state_trackers/dri/common 915 .endfor 916 917 # missing 918 CPPFLAGS+= \ 919 -DGALLIUM_SOFTPIPE \ 920 -DGALLIUM_STATIC_TARGETS=1 \ 921 -DMESA_EGL_NO_X11_HEADERS 922 923 .for _d in ${GALLIUM_SUBDIRS} 924 SRCS+= ${GALLIUM_SOURCES.${_d}} 925 .PATH: ${X11SRCDIR.Mesa}/src/gallium/${_d} 926 . for _s in ${GALLIUM_SOURCES.${_d}} 927 CPPFLAGS.${_s}+= -I${X11SRCDIR.Mesa}/src/gallium/${_d} 928 . endfor 929 .endfor 930 931 #. if defined(${GALLIUM_SOURCES.${_d}}) 932 #SRCS+= ${GALLIUM_SOURCES.${_d}} 933 #. endif 934 935 .include "../libloader.mk" 936 937 .if ${BUILD_RADEON} == 1 938 CFLAGS+= -pthread 939 LDFLAGS+= -pthread 940 LIBDPLIBS+= pthread ${.CURDIR}/../../../../../lib/libpthread 941 .endif 942 943 LIBDPLIBS+= m ${.CURDIR}/../../../../../lib/libm 944 .if ${BUILD_RADEON} == 1 || ${BUILD_NOUVEAU} == 1 945 LIBDPLIBS+= drm ${.CURDIR}/../libdrm 946 .if ${BUILD_I915} == 1 947 LIBDPLIBS+= drm_intel ${.CURDIR}/../libdrm_intel 948 .endif 949 .if ${BUILD_RADEON} == 1 950 LIBDPLIBS+= drm_radeon ${.CURDIR}/../libdrm_radeon 951 LIBDPLIBS+= drm_amdgpu ${.CURDIR}/../libdrm_amdgpu 952 .endif # ${BUILD_RADEON} == 1 953 .if ${BUILD_NOUVEAU} == 1 954 LIBDPLIBS+= drm_nouveau ${.CURDIR}/../libdrm_nouveau 955 .endif # ${BUILD_NOUVEAU} == 1 956 .endif # ${BUILD_RADEON} == 1 || ${BUILD_NOUVEAU} == 1 957 LIBDPLIBS+= glapi ${.CURDIR}/../libglapi 958 LIBDPLIBS+= expat ${.CURDIR}/../../../../../external/mit/expat/lib/libexpat 959 LIBDPLIBS+= terminfo ${.CURDIR}/../../../../../lib/libterminfo 960 LIBDPLIBS+= z ${.CURDIR}/../../../../../lib/libz 961 LIBDPLIBS+= execinfo ${.CURDIR}/../../../../../lib/libexecinfo 962 LIBDPLIBS+= X11-xcb ${.CURDIR}/../libX11/libX11-xcb 963 LIBDPLIBS+= xcb-dri2 ${.CURDIR}/../libxcb/dri2 964 965 # gallium drivers requiring LLVM 966 .if ${BUILD_LLVMPIPE} == 1 || ${BUILD_RADEON} == 1 967 968 LLVMRT_LIBS= \ 969 TransformsCoroutines \ 970 Passes \ 971 MCJIT \ 972 ExecutionEngine \ 973 RuntimeDyld 974 975 .if ${BUILD_RADEON} == 1 976 LLVMRT_LIBS+= \ 977 AMDGPUCodeGen \ 978 AMDGPUMCTargetDesc \ 979 AMDGPUAsmPrinter \ 980 AMDGPUTargetInfo \ 981 AMDGPUAsmParser \ 982 AMDGPUUtils 983 .endif 984 985 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 986 # XXX duplicates 987 LLVMRT_LIBS+= \ 988 X86Disassembler \ 989 X86CodeGen \ 990 X86MCTargetDesc \ 991 X86Disassembler \ 992 X86MCTargetDesc \ 993 X86AsmPrinter \ 994 X86TargetInfo \ 995 X86Utils 996 .endif 997 LLVMRT_LIBS+= \ 998 GlobalISel \ 999 MCDisassembler \ 1000 SelectionDAG \ 1001 AsmPrinter \ 1002 CodeGen \ 1003 Target \ 1004 InstCombine \ 1005 ScalarOpts \ 1006 DebugInfoCodeView \ 1007 Object \ 1008 BitReader \ 1009 MCParser \ 1010 MC \ 1011 ipo \ 1012 Instrumentation \ 1013 IRReader \ 1014 AsmParser \ 1015 Vectorize \ 1016 TransformsAggressiveInstCombine \ 1017 ProfileData \ 1018 Analysis \ 1019 IR \ 1020 Linker \ 1021 BinaryFormat \ 1022 TransformsUtils \ 1023 Support 1024 1025 .include "${NETBSDSRCDIR}/external/bsd/llvm/link.mk" 1026 1027 .endif # ${BUILD_LLVM_PIPE} == 1 || ${BUILD_RADEON} == 1 1028 1029 LDFLAGS+= -Wl,--version-script=${X11SRCDIR.Mesa}/src/gallium/targets/dri/dri.sym 1030 1031 ## build mesagallium parts 1032 MESA_SRC_MODULES= main math vbo state_tracker program asm_s 1033 .if ${BUILD_RADEON} == 1 1034 MESA_SRC_MODULES+= amd 1035 .endif 1036 1037 .include "../libmesa.mk" 1038 .include "../libglsl.mk" 1039 1040 # Special addition for just gallium; it misses the rest of asm_c files. 1041 .PATH: ${X11SRCDIR.Mesa}/src/mesa/x86 1042 SRCS+= common_x86.c 1043 1044 .if ${MACHINE} == "amd64" || ${MACHINE} == "i386" 1045 SRCS+= streaming-load-memcpy.c 1046 CPPFLAGS.streaming-load-memcpy.c+= -msse4.1 1047 .endif 1048 1049 # Needs 64bit atomics 1050 CPPFLAGS.i386+= -march=i586 1051 CPPFLAGS+= ${CPPFLAGS.${XORG_MACHINE_ARCH:U${MACHINE_ARCH}}} 1052 1053 .include "../driver.mk" 1054 1055 1056 .PATH: ${X11SRCDIR.Mesa}/src/gallium/targets/dri 1057 SRCS+= target.c 1058 1059 CPPFLAGS+= \ 1060 -I${X11SRCDIR.Mesa}/src/gallium/include \ 1061 -I${X11SRCDIR.Mesa}/src/gallium/auxiliary \ 1062 -I${X11SRCDIR.Mesa}/src/gallium/drivers \ 1063 -I${X11SRCDIR.Mesa}/../src/mesa/drivers/dri/common 1064 1065 CPPFLAGS.target.c += \ 1066 -DDRI_TARGET \ 1067 -DGALLIUM_NOOP \ 1068 -DGALLIUM_RBUG \ 1069 -DGALLIUM_TRACE \ 1070 -DGALLIUM_SOFTPIPE \ 1071 -I${X11SRCDIR.Mesa}/src/gallium/state_trackers/dri \ 1072 -I${X11SRCDIR.Mesa}/src/loader \ 1073 -I${X11SRCDIR.Mesa}/src/gallium/winsys 1074 1075 .if ${BUILD_LLVMPIPE} == 1 1076 CPPFLAGS.target.c += \ 1077 -DGALLIUM_LLVMPIPE 1078 .endif #${BUILD_LLVMPIPE} == 1 1079 .if ${BUILD_I915} == 1 1080 CPPFLAGS.target.c += \ 1081 -DGALLIUM_I915 \ 1082 -DGALLIUM_ILO 1083 .endif 1084 .if ${BUILD_RADEON} == 1 1085 CPPFLAGS.target.c += \ 1086 -DGALLIUM_R200 \ 1087 -DGALLIUM_R300 \ 1088 -DGALLIUM_R600 \ 1089 -DGALLIUM_RADEONSI 1090 .endif # ${BUILD_RADEON} == 1 1091 1092 .if ${BUILD_NOUVEAU} == 1 1093 CPPFLAGS.target.c += \ 1094 -DGALLIUM_NOUVEAU 1095 .endif # ${BUILD_NOUVEAU} == 1 1096 1097 CWARNFLAGS.clang+= -Wno-error=constant-conversion \ 1098 -Wno-error=tautological-constant-out-of-range-compare \ 1099 -Wno-error=pointer-sign \ 1100 -Wno-error=switch \ 1101 -Wno-error=absolute-value \ 1102 -Wno-error=tautological-compare \ 1103 -Wno-error=static-in-inline \ 1104 -Wno-error=logical-not-parentheses \ 1105 -Wno-error=constant-logical-operand \ 1106 -Wno-error=unknown-warning-option \ 1107 -Wno-error=typedef-redefinition \ 1108 -Wno-error=enum-conversion # https://bugs.freedesktop.org/show_bug.cgi?id=109761 1109 1110 CWARNFLAGS+= -Wno-error=stack-protector 1111 1112 .include <bsd.x11.mk> 1113 LIBDIR= ${X11USRLIBDIR}/modules/dri 1114 1115 .for _d in ${DRIVERS} 1116 SYMLINKS+= gallium_dri.so ${DRIDIR}/${_d}_dri.so 1117 SYMLINKS+= gallium_dri.so.${SHLIB_MAJOR} ${DRIDIR}/${_d}_dri.so.${SHLIB_MAJOR} 1118 .if ${MKDEBUG} != "no" 1119 SYMLINKS+= gallium_dri.so.${SHLIB_MAJOR}.debug ${DRIDEBUGDIR}/${_d}_dri.so.${SHLIB_MAJOR}.debug 1120 .endif 1121 .endfor 1122 1123 .if ${MACHINE_ARCH} == "sparc" || ${COMMON_MACHINE_ARCH:U} == "sparc" 1124 COPTS+= ${${ACTIVE_CC} == "clang":? -Wa,-Av8plus :} 1125 .endif 1126 1127 1128 .include <bsd.lib.mk> 1129 # Don't regenerate c files 1130 .y.c: 1131