diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2f3614534a..b294100a46 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -315,8 +315,7 @@ jobs: brew install \ ccache \ coreutils \ - dylibbundler \ - ninja + dylibbundler pip install pyyaml requests - name: Initialize compiler, library cache id: cache diff --git a/configure b/configure index c660bcfbe4..61a8f2bebb 100755 --- a/configure +++ b/configure @@ -1191,17 +1191,6 @@ EOF fi fi -########################################## -# epoxy probe - -if $pkg_config --libs --silence-errors epoxy > /dev/null 2>&1 ; then - epoxy_libs=$($pkg_config --libs --silence-errors epoxy) - epoxy_cflags=$($pkg_config --cflags --silence-errors epoxy) -else - error_exit "epoxy not present." \ - "Please install the epoxy devel package." -fi - ########################################## # detect rust triple @@ -1807,10 +1796,6 @@ if test "$default_targets" = "yes"; then echo "CONFIG_DEFAULT_TARGETS=y" >> $config_host_mak fi -# FIXME: Use meson -echo "EPOXY_CFLAGS=$epoxy_cflags" >> $config_host_mak -echo "EPOXY_LIBS=$epoxy_libs" >> $config_host_mak - # tests/tcg configuration mkdir -p tests/tcg echo "# Automatically generated by configure - do not modify" > tests/tcg/$config_host_mak diff --git a/hw/xbox/nv2a/pgraph/vk/vertex.c b/hw/xbox/nv2a/pgraph/vk/vertex.c index b7bf97b38a..60154cf0d1 100644 --- a/hw/xbox/nv2a/pgraph/vk/vertex.c +++ b/hw/xbox/nv2a/pgraph/vk/vertex.c @@ -49,9 +49,12 @@ void pgraph_vk_update_vertex_ram_buffer(PGRAPHState *pg, hwaddr offset, pgraph_vk_download_surfaces_in_range_if_dirty(pg, offset, size); - size_t offset_bit = offset / 4096; - size_t nbits = size / 4096; - if (find_next_bit(r->uploaded_bitmap, nbits, offset_bit) < nbits) { + size_t start_bit = offset / TARGET_PAGE_SIZE; + size_t end_bit = TARGET_PAGE_ALIGN(offset + size) / TARGET_PAGE_SIZE; + size_t nbits = end_bit - start_bit; + + if (find_next_bit(r->uploaded_bitmap, start_bit + nbits, start_bit) < + end_bit) { // Vertex data changed while building the draw list. Finish drawing // before updating RAM buffer. pgraph_vk_finish(pg, VK_FINISH_REASON_VERTEX_BUFFER_DIRTY); @@ -60,7 +63,7 @@ void pgraph_vk_update_vertex_ram_buffer(PGRAPHState *pg, hwaddr offset, nv2a_profile_inc_counter(NV2A_PROF_GEOM_BUFFER_UPDATE_1); memcpy(r->storage_buffers[BUFFER_VERTEX_RAM].mapped + offset, data, size); - bitmap_set(r->uploaded_bitmap, offset_bit, nbits); + bitmap_set(r->uploaded_bitmap, start_bit, nbits); } static void update_memory_buffer(NV2AState *d, hwaddr addr, hwaddr size) diff --git a/meson.build b/meson.build index 906fbdb8f2..78c1f84fe4 100644 --- a/meson.build +++ b/meson.build @@ -1774,6 +1774,8 @@ if not get_option('coreaudio').auto() or (host_os == 'darwin' and have_system) required: get_option('coreaudio')) endif +epoxy = dependency('epoxy', required: true) + opengl = not_found if not get_option('opengl').auto() or have_system or have_vhost_user_gpu # FIXME: Use meson's 'gl' dep @@ -1787,8 +1789,7 @@ if not get_option('opengl').auto() or have_system or have_vhost_user_gpu error('Unknown GL platform') endif - opengl = declare_dependency(compile_args: config_host['EPOXY_CFLAGS'].split(), - link_args: config_host['EPOXY_LIBS'].split() + opengl_libs) + opengl = declare_dependency(link_args: opengl_libs, dependencies: epoxy) endif gbm = not_found diff --git a/scripts/download-macos-libs.py b/scripts/download-macos-libs.py index 02b1f16d51..c1b2adbd1b 100755 --- a/scripts/download-macos-libs.py +++ b/scripts/download-macos-libs.py @@ -149,7 +149,9 @@ class LibInstaller: if pkg_name.startswith('openssl'): # FIXME new_prefix = f'prefix={self._extract_path}/opt/local/libexec/openssl11\n' lines[i] = new_prefix - break + elif l.strip().startswith('Requires.private:'): + if pkg_name.startswith('libepoxy'): + lines[i] = '' with open(extracted_path, 'w') as f: f.write(''.join(lines))