Dosbox
Moderátor: Moderátoři
Právěže ne, když jsem chtěl provozovat 32bit appky na 64bit systému, musel jsem nejprve nainstalovat wine32, pak wine (64bit) a pak všechno fungovalo... Jenže já neprovozuju systémy založené na Debianu, tam byl vždycky dříve či později nějaký problém se závislostmi, chybějícími balícky apod aj. , nakonec jsem se vždy rád vrátil k osvědčenému.asdf píše:Tohle na 32-bitovém systému.
Mimochodem, mohli byste to nahlásit do Wine bugzilly.
Kód: Vybrat vše
static BOOL lock_display_devices( BOOL force )
{
static const WCHAR wine_service_station_name[] =
{'_','_','w','i','n','e','s','e','r','v','i','c','e','_','w','i','n','s','t','a','t','i','o','n',0};
struct device_manager_ctx ctx = {.vulkan_gpus = LIST_INIT(ctx.vulkan_gpus)};
UINT64 serial;
UINT status;
WCHAR name[MAX_PATH];
BOOL ret = TRUE;
init_display_driver(); /* make sure to load the driver before anything else */
pthread_mutex_lock( &display_lock );
serial = get_monitor_update_serial();
if (!force && monitor_update_serial >= serial) return TRUE;
/* services do not have any adapters, only a virtual monitor */
MESSAGE("pokus NtUserGetObjectInformation sysparams\n");
if (NtUserGetObjectInformation( NtUserGetProcessWindowStation(), UOI_NAME, name, sizeof(name), NULL )
&& !wcscmp( name, wine_service_station_name ))
{
MESSAGE("pokus sysparams lock_display_devices 1\n");
clear_display_devices();
MESSAGE("pokus sysparams lock_display_devices 2\n");
list_add_tail( &monitors, &virtual_monitor.entry );
MESSAGE("pokus sysparams lock_display_devices 3\n");
set_winstation_monitors( TRUE );
MESSAGE("pokus sysparams lock_display_devices 4\n");
return TRUE;
}
MESSAGE("pokus sysparams lock_display_devices 5\n");
if (!force && !update_display_cache_from_registry( serial )) force = TRUE;
MESSAGE("pokus sysparams lock_display_devices 6\n");
if (force)
{
MESSAGE("pokus sysparams lock_display_devices 7\n");
if (!get_vulkan_gpus( &ctx.vulkan_gpus )) WARN( "Failed to find any vulkan GPU\n" );
MESSAGE("pokus sysparams lock_display_devices 8\n");
if (!(status = update_display_devices( &ctx ))) commit_display_devices( &ctx );
else WARN( "Failed to update display devices, status %#x\n", status );
MESSAGE("pokus sysparams lock_display_devices 9\n");
release_display_manager_ctx( &ctx );
MESSAGE("pokus sysparams lock_display_devices 10\n");
ret = update_display_cache_from_registry( serial );
}
MESSAGE("pokus sysparams lock_display_devices 11\n");
if (!ret)
{
MESSAGE("pokus sysparams lock_display_devices 11\n");
ERR( "Failed to read display config.\n" );
MESSAGE("pokus sysparams lock_display_devices 12\n");
pthread_mutex_unlock( &display_lock );
}
MESSAGE("pokus sysparams lock_display_devices 13\n");
return ret;
}Kód: Vybrat vše
static BOOL d3dkmt_use_vulkan(void)
{
static pthread_once_t once = PTHREAD_ONCE_INIT;
/* pokus */ return 0;
pthread_once( &once, d3dkmt_init_vulkan );
return !!d3dkmt_vk_instance;
}Edit: Zkusila jsem vulkaninfo a:
Kód: Vybrat vše
$ vulkaninfo
Výjimka v pohyblivé řádové čárce (SIGFPE)Kód: Vybrat vše
BOOL get_vulkan_gpus( struct list *gpus )
{
VkPhysicalDevice *devices;
UINT i, j, count;
MESSAGE("pokus win3wu d3dkmt 1\n");
if (!d3dkmt_use_vulkan()) return FALSE;
MESSAGE("pokus win3wu d3dkmt 2\n");
if (!(count = get_vulkan_physical_devices( &devices ))) return FALSE;
MESSAGE("pokus win3wu d3dkmt 3\n");
for (i = 0; i < count; ++i)
{
VkPhysicalDeviceIDProperties id = {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES};
VkPhysicalDeviceProperties2 properties2 = {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, .pNext = &id};
VkPhysicalDeviceMemoryProperties mem_properties;
struct vulkan_gpu *gpu;
MESSAGE("pokus win3wu d3dkmt 4\n");
if (!(gpu = calloc( 1, sizeof(*gpu) ))) break;
MESSAGE("pokus win3wu d3dkmt 5\n");
pvkGetPhysicalDeviceProperties2KHR( devices[i], &properties2 );
MESSAGE("pokus win3wu d3dkmt 6\n");
memcpy( &gpu->uuid, id.deviceUUID, sizeof(gpu->uuid) );
gpu->name = strdup( properties2.properties.deviceName );
gpu->pci_id.vendor = properties2.properties.vendorID;
gpu->pci_id.device = properties2.properties.deviceID;
MESSAGE("pokus win3wu d3dkmt 7\n");
pvkGetPhysicalDeviceMemoryProperties( devices[i], &mem_properties );
MESSAGE("pokus win3wu d3dkmt 8\n");
for (j = 0; j < mem_properties.memoryHeapCount; j++)
{
MESSAGE("pokus win3wu d3dkmt 9\n");
if (mem_properties.memoryHeaps[j].flags & VK_MEMORY_HEAP_DEVICE_LOCAL_BIT)
gpu->memory += mem_properties.memoryHeaps[j].size;
}
MESSAGE("pokus win3wu d3dkmt 10\n");
list_add_tail( gpus, &gpu->entry );
MESSAGE("pokus win3wu d3dkmt 11\n");
}
MESSAGE("pokus win3wu d3dkmt 12\n");
free( devices );
MESSAGE("pokus win3wu d3dkmt 13\n");
return TRUE;
}Hmm, to s tím asi nehnem.lesana87 píše:Zkusila jsem vulkaninfo a:Kód: Vybrat vše
$ vulkaninfo Výjimka v pohyblivé řádové čárce (SIGFPE)