dhewg / nine Goto Github PK
View Code? Open in Web Editor NEWGallium Nine Standalone
Home Page: https://wiki.ixit.cz/d3d9
Gallium Nine Standalone
Home Page: https://wiki.ixit.cz/d3d9
Hi, can't compile with up to date padoka ppa ubuntu 18.04. Installed all the amd64 and i386 binaries in the readme. Any ideas?
found ubuntu compatible distro
The Meson build system
Version: 0.45.1
Source dir: /home/momo/Atsiuntimai/nine-master
Build dir: /tmp/tmp.Bq9DbZ8myz/build64
Build type: cross build
Program tools/get_version.sh found: YES (/home/momo/Atsiuntimai/nine-master/tools/get_version.sh)
Project name: Gallium Nine Standalone
Native C compiler: cc (gcc 7.3.0 "cc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0")
Cross C compiler: winegcc (gcc 7.3.0)
Host machine cpu family: x86_64
Host machine cpu: x86_64
Target machine cpu family: x86_64
Target machine cpu: x86_64
Build machine cpu family: x86_64
Build machine cpu: x86_64
Checking if "winelib check" compiles: YES
Library wine found: YES
Has header "wine/debug.h": YES
Program wrc found: YES (/usr/bin/wrc)
Checking for function "dlopen": NO
Library dl found: YES
Checking for function "dlopen": YES
Checking for function "dlclose": YES
Checking for function "dlsym": YES
Checking for function "dladdr": YES
Cross dependency d3d found: YES 1.0.0
Cross dependency x11 found: YES 1.6.4
Cross dependency xext found: YES 1.3.3
Cross dependency x11-xcb found: YES 1.6.4
Cross dependency xcb found: YES 1.13
Cross dependency xcb-dri3 found: YES 1.13
Cross dependency xcb-present found: YES 1.13
Cross dependency xcb-xfixes found: YES 1.13
Cross dependency gl found: YES 19.0.0-devel - padoka PPA
Cross dependency egl found: YES 19.0.0-devel - padoka PPA
Library dxguid found: YES
Library uuid found: YES
Library advapi32 found: YES
Library gdi32 found: YES
Library user32 found: YES
Library shell32 found: YES
Library comctl32 found: YES
Library ole32 found: YES
Library shlwapi found: YES
Message: default module path: /usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1
Build targets in project: 4
Found ninja-1.8.2 at /usr/bin/ninja
ninja: Entering directory `/tmp/tmp.Bq9DbZ8myz/build64'
[1/13] Generating version.res with a custom command.
FAILED: d3d9-nine/version.res
/usr/bin/wrc -DNINE_MAJOR=0 -DNINE_MINOR=2 -DNINE_BUILD=0 -DNINE_REVISION=0 '-DNINE_VERSION="v0.2.0.0-devel"' '-DNINE_PROJECT="Gallium Nine Standalone"' -i ../../../home/momo/Atsiuntimai/nine-master/d3d9-nine/version.rc -o d3d9-nine/version.res
../../../home/momo/Atsiuntimai/nine-master/d3d9-nine/version.rc:20:1: Error: Unable to open include file verrsrc.h
[2/13] Compiling C object 'd3d9-nine/d3d9-nine.dll@sha/d3d9_main.c.o'.
FAILED: d3d9-nine/d3d9-nine.dll@sha/d3d9_main.c.o
winegcc -m64 --no-gnu-unique -Id3d9-nine/d3d9-nine.dll@sha -Id3d9-nine -I../../../home/momo/Atsiuntimai/nine-master/d3d9-nine -I/usr/include/libdrm -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -U_WIN32 -U__WIN32 -U__WIN32__ -U__WINNT -U__WINNT__ -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN '-DDECLSPEC_HOTPATCH=attribute((ms_hook_prologue))' '-DNINE_VERSION="v0.2.0.0-devel"' '-DNINE_URL="https://github.com/dhewg/nine"' -DWINE_STAGING=0 -DD3D9NINE_DRI2=1 '-DD3D9NINE_MODULEPATH="/usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1"' -fPIC -MD -MQ 'd3d9-nine/d3d9-nine.dll@sha/d3d9_main.c.o' -MF 'd3d9-nine/d3d9-nine.dll@sha/d3d9_main.c.o.d' -o 'd3d9-nine/d3d9-nine.dll@sha/d3d9_main.c.o' -c ../../../home/momo/Atsiuntimai/nine-master/d3d9-nine/d3d9_main.c
../../../home/momo/Atsiuntimai/nine-master/d3d9-nine/d3d9_main.c:25:10: fatal error: d3d9.h: Toks failas ar aplankas neegzistuoja
#include <d3d9.h>
^~~~~~~~
compilation terminated.
winegcc: gcc failed
[3/13] Compiling C object 'd3d9-nine/d3d9-nine.dll@sha/dri3.c.o'.
FAILED: d3d9-nine/d3d9-nine.dll@sha/dri3.c.o
winegcc -m64 --no-gnu-unique -Id3d9-nine/d3d9-nine.dll@sha -Id3d9-nine -I../../../home/momo/Atsiuntimai/nine-master/d3d9-nine -I/usr/include/libdrm -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -U_WIN32 -U__WIN32 -U__WIN32__ -U__WINNT -U__WINNT__ -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN '-DDECLSPEC_HOTPATCH=attribute((ms_hook_prologue))' '-DNINE_VERSION="v0.2.0.0-devel"' '-DNINE_URL="https://github.com/dhewg/nine"' -DWINE_STAGING=0 -DD3D9NINE_DRI2=1 '-DD3D9NINE_MODULEPATH="/usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1"' -fPIC -MD -MQ 'd3d9-nine/d3d9-nine.dll@sha/dri3.c.o' -MF 'd3d9-nine/d3d9-nine.dll@sha/dri3.c.o.d' -o 'd3d9-nine/d3d9-nine.dll@sha/dri3.c.o' -c ../../../home/momo/Atsiuntimai/nine-master/d3d9-nine/dri3.c
../../../home/momo/Atsiuntimai/nine-master/d3d9-nine/dri3.c:22:10: fatal error: windows.h: Toks failas ar aplankas neegzistuoja
#include <windows.h>
^~~~~~~~~~~
compilation terminated.
winegcc: gcc failed
[4/13] Compiling C object 'd3d9-nine/d3d9-nine.dll@sha/device_wrap.c.o'.
FAILED: d3d9-nine/d3d9-nine.dll@sha/device_wrap.c.o
winegcc -m64 --no-gnu-unique -Id3d9-nine/d3d9-nine.dll@sha -Id3d9-nine -I../../../home/momo/Atsiuntimai/nine-master/d3d9-nine -I/usr/include/libdrm -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -U_WIN32 -U__WIN32 -U__WIN32__ -U__WINNT -U__WINNT__ -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN '-DDECLSPEC_HOTPATCH=attribute((ms_hook_prologue))' '-DNINE_VERSION="v0.2.0.0-devel"' '-DNINE_URL="https://github.com/dhewg/nine"' -DWINE_STAGING=0 -DD3D9NINE_DRI2=1 '-DD3D9NINE_MODULEPATH="/usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1"' -fPIC -MD -MQ 'd3d9-nine/d3d9-nine.dll@sha/device_wrap.c.o' -MF 'd3d9-nine/d3d9-nine.dll@sha/device_wrap.c.o.d' -o 'd3d9-nine/d3d9-nine.dll@sha/device_wrap.c.o' -c ../../../home/momo/Atsiuntimai/nine-master/d3d9-nine/device_wrap.c
../../../home/momo/Atsiuntimai/nine-master/d3d9-nine/device_wrap.c:19:10: fatal error: d3d9.h: Toks failas ar aplankas neegzistuoja
#include <d3d9.h>
^~~~~~~~
compilation terminated.
winegcc: gcc failed
[5/13] Compiling C object 'd3d9-nine/d3d9-nine.dll@sha/d3dadapter9.c.o'.
FAILED: d3d9-nine/d3d9-nine.dll@sha/d3dadapter9.c.o
winegcc -m64 --no-gnu-unique -Id3d9-nine/d3d9-nine.dll@sha -Id3d9-nine -I../../../home/momo/Atsiuntimai/nine-master/d3d9-nine -I/usr/include/libdrm -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -U_WIN32 -U__WIN32 -U__WIN32__ -U__WINNT -U__WINNT__ -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN '-DDECLSPEC_HOTPATCH=attribute((ms_hook_prologue))' '-DNINE_VERSION="v0.2.0.0-devel"' '-DNINE_URL="https://github.com/dhewg/nine"' -DWINE_STAGING=0 -DD3D9NINE_DRI2=1 '-DD3D9NINE_MODULEPATH="/usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1"' -fPIC -MD -MQ 'd3d9-nine/d3d9-nine.dll@sha/d3dadapter9.c.o' -MF 'd3d9-nine/d3d9-nine.dll@sha/d3dadapter9.c.o.d' -o 'd3d9-nine/d3d9-nine.dll@sha/d3dadapter9.c.o' -c ../../../home/momo/Atsiuntimai/nine-master/d3d9-nine/d3dadapter9.c
In file included from /usr/include/d3dadapter/d3dadapter9.h:26:0,
from ../../../home/momo/Atsiuntimai/nine-master/d3d9-nine/d3dadapter9.c:26:
/usr/include/d3dadapter/present.h:26:10: fatal error: d3d9.h: Toks failas ar aplankas neegzistuoja
#include <d3d9.h>
^~~~~~~~
compilation terminated.
winegcc: gcc failed
[6/13] Compiling C object 'd3d9-nine/d3d9-nine.dll@sha/present.c.o'.
FAILED: d3d9-nine/d3d9-nine.dll@sha/present.c.o
winegcc -m64 --no-gnu-unique -Id3d9-nine/d3d9-nine.dll@sha -Id3d9-nine -I../../../home/momo/Atsiuntimai/nine-master/d3d9-nine -I/usr/include/libdrm -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -U_WIN32 -U__WIN32 -U__WIN32__ -U__WINNT -U__WINNT__ -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN '-DDECLSPEC_HOTPATCH=attribute((ms_hook_prologue))' '-DNINE_VERSION="v0.2.0.0-devel"' '-DNINE_URL="https://github.com/dhewg/nine"' -DWINE_STAGING=0 -DD3D9NINE_DRI2=1 '-DD3D9NINE_MODULEPATH="/usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1"' -fPIC -MD -MQ 'd3d9-nine/d3d9-nine.dll@sha/present.c.o' -MF 'd3d9-nine/d3d9-nine.dll@sha/present.c.o.d' -o 'd3d9-nine/d3d9-nine.dll@sha/present.c.o' -c ../../../home/momo/Atsiuntimai/nine-master/d3d9-nine/present.c
In file included from /usr/include/d3dadapter/d3dadapter9.h:26:0,
from /usr/include/d3dadapter/drm.h:26,
from ../../../home/momo/Atsiuntimai/nine-master/d3d9-nine/present.c:26:
/usr/include/d3dadapter/present.h:26:10: fatal error: d3d9.h: Toks failas ar aplankas neegzistuoja
#include <d3d9.h>
^~~~~~~~
compilation terminated.
winegcc: gcc failed
ninja: build stopped: subcommand failed.
I notice the ninewinecfg.exe code has #if
conditionals on WINE_STAGING
. It's not clear to me why this is and I'd like to know whether you can build against staging and run against vanilla or vice-versa. If not, I think it would be possible to make this dynamic at runtime? I'm trying to package this up for Gentoo and we allow vanilla and staging to be installed simultaneously. This should be clarified in the README in any case.
Built on Arch Linux, using the gallium-nine and lib32-gallium-nine AUR packages version 0.1, installed into a Steam Proton prefix for Quantum Conundrum (200010), and running on a Gnome Wayland desktop at 3840x2160@60, the game's maximum resolution of 2560x1440 causes it to set a full screen video mode of exactly what XWayland indicates, the desktop resolution, while Nine renders a 2560x1440 picture in the upper left most region of the otherwise black window. This may also be an XWayland issue, as it doesn't report available video modes other than the current desktop resolution.
I think it would be great, like other d3d related project, to provide an archive containing the dlls for x86 and x64 as well as ninewinecfg.exe (maybe also the readme in that archive) in the release tab of github.
Hi,
I came here from the Phoronix article and am trying to compile Nine Standalone on Fedora 28.
meson.build:41:4: ERROR: Problem encountered: WINE headers not found
I discovered that this message comes from the fact that the headers are located in /usr/include/wine/wine
, and was able to workaround it by copying the contents of that directory to /usr/include/wine
.
After doing this, I was able to build the 64-bit version. I'm not sure, is this is a packaging bug in Fedora's Wine packages?
It can't find d3dadapter9
:
Dependency d3dadapter9 found: NO
Even though mesa-libd3d-devel
is installed (both 32 and 64-bit versions) and the file is present in /usr/lib64/d3d/d3dadapter9.so
, and the package config file /usr/lib64/pkgconfig/d3d.pc
correctly specifies its path.
It also complains it can't find dl
:
Checking for function "dlopen" : NO
meson.build:61:2: ERROR: C library 'dl' not found
The meson log says:
Running compile:
Working directory: /tmp/tmpzha44tre
Command line: winegcc /tmp/tmpzha44tre/testfile.c -pipe -D_FILE_OFFSET_BITS=64 -o /tmp/tmpzha44tre/output.exe -m32 --no-gnu-unique -m32 -mwindows -O0 -Wl,--start-group -ldl -Wl,--end-group -Wl,--allow-shlib-undefined
Code:
int main(int argc, char **argv) { return 0; }
Compiler stdout:
Compiler stderr:
ld: Relocatable linking with relocations from format elf64-x86-64 (/usr/lib64/wine/libwinecrt0.a(exe_entry.o)) to format elf32-i386 (output.4iiNJ4.o) is not supported
winebuild: ld failed with status 1
winegcc: winebuild failed
It looks like it tries to link the 32-bit output with 64-bit Wine libraries.
I found I needed a few more packages on Debian testing (buster),
sudo apt-get install libc6-dev wine64-tools libwine-dev libd3dadapter9-mesa-dev libx11-dev libx11-xcb-dev libxcb1-dev libxcb-dri3-dev libxcb-present-dev libxcb-xfixes0-dev libgl1-mesa-dev libegl1-mesa-dev
sudo apt-get install meson
sudo apt-get install wine-development
sudo apt-get install wine64-development-tools
sudo apt-get install wine-devel-dev
sudo apt-get install libwine-development-dev
sudo apt-get install libwine-dev
sudo apt-get install libc:i386
sudo apt-get install libc6-dev:i386
sudo apt-get install libc6-dev-i386
sudo apt-get install libc6-amd64-i386-cross
sudo apt-get install wine-devel-dev
sudo apt-get install libwine-development-dev:i386
sudo apt-get install libd3dadapter9-mesa-dev libd3dadapter9-mesa-dev:i386
sudo apt-get install libdrm-dev libdrm-dev:i386
sudo apt-get install libx11-xcb-dev:i386
sudo apt-get install libxcb-dri3-dev:i386
sudo apt-get install libxcb-present-dev:i386
sudo apt-get install libgl-dev:i386
sudo apt-get install libegl1-mesa-dev:i386 libegl1-mesa-dev
Some are not necessary, but I'm not sure which ones ;)
I'm using the winehq Debian builds, so I may have multiple sources for some dependencies. I've attached dpkg -l \*wine\*
if that's informative.
ii dxvk-wine32-development:i386 0.94+ds1-1 i386 Vulkan-based translation layer for Direct3D 10/11 - wine32 build
ii dxvk-wine64-development 0.94+ds1-1 amd64 Vulkan-based translation layer for Direct3D 10/11 - wine64 build
ii fonts-wine 4.0~rc4-2 all Windows API implementation - fonts
ii libkwineffects11 4:5.14.3-2+b1 amd64 KDE window manager effects library
ii libwine:amd64 4.0~rc4-2 amd64 Windows API implementation - library
ii libwine:i386 4.0~rc4-2 i386 Windows API implementation - library
ii libwine-dev:amd64 4.0~rc4-2 amd64 Windows API implementation - development files
ii libwine-development:amd64 3.21-2 amd64 Windows API implementation - library
ii libwine-development:i386 3.21-2 i386 Windows API implementation - library
ii libwine-development-dev:amd64 3.21-2 amd64 Windows API implementation - development files
ii libwine-development-dev:i386 3.21-2 i386 Windows API implementation - development files
ii wine-devel-amd64 4.0~rc5~buster amd64 WINE Is Not An Emulator - runs MS Windows programs
ii wine-devel-dev 4.0~rc5~buster amd64 WINE Is Not An Emulator - runs MS Windows programs
ii wine-devel-i386:i386 4.0~rc5~buster i386 WINE Is Not An Emulator - runs MS Windows programs
ii wine-development 3.21-2 all Windows API implementation - standard suite
ii wine-staging 4.0~rc5~buster amd64 WINE Is Not An Emulator - runs MS Windows programs
ii wine-staging-amd64 4.0~rc5~buster amd64 WINE Is Not An Emulator - runs MS Windows programs
ii wine-staging-i386:i386 4.0~rc5~buster i386 WINE Is Not An Emulator - runs MS Windows programs
ii wine32:i386 4.0~rc4-2 i386 Windows API implementation - 32-bit binary loader
ii wine32-development:i386 3.21-2 i386 Windows API implementation - 32-bit binary loader
ii wine64 4.0~rc4-2 amd64 Windows API implementation - 64-bit binary loader
ii wine64-development 3.21-2 amd64 Windows API implementation - 64-bit binary loader
ii wine64-development-tools 3.21-2 amd64 Windows API implementation - 64-bit developer tools
ii wine64-tools 4.0~rc4-2 amd64 Windows API implementation - 64-bit developer tools
ii winetricks 0.0+20181203-3 all simple tool to work around common problems in Wine
We cannot easily provide binaries for end users (see #4), but using Gallium Nine should still be as easy as possible.
Get this project packaged for various distros, so users can just use their well-known package manager.
Setting up a WINE
prefix could be unified and improved across distros. Currently there's the very basic nine-install.sh
, which is unlikely to satisfy the requirements for everyone. Feedback is very much welcome!
The above error happens if the HKCU\Software\Wine\DllOverrides key hasn't been created yet. It isn't there in a fresh Wine prefix.
On windows 32 bits, 32 bits dll's go to system32.
On windows 64 bits, 32 bits dll's go to syswow64, and 64 bits dll's to system32.
So it seems that nine-install.sh is wrong.
Wouldn't it make more sense to have a list of known paths given by people who want to use it and let users set a ENV variable for d3dadapter9.so
(which is why you want distro-dependent builds afaik) if that doesn't work rather than distro-specific builds?
Or offer a way to config it that way all distros can build it the same simply with a different config file (and also allows users to do the same if it's not actually available by their distro).
Why would we do this? If it's not available to people in their distros (or configurable to make it work), they'll be less likely to use it all because they'd need to compile it which goes against the goal of making nine easier to use.
(Option 1 being possibly more OOTB but less configurable by individual distros without forking)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.