Giter VIP home page Giter VIP logo

dxup's Introduction

DXUP

A D3D9 and D3D10 -> D3D11 Translation Layer

What's the point?

  • The main reason is for DXVK, a D3D11->Vulkan translation layer. I'm sure where you can see where this is going... (linux, wine stuff.)
  • You can use this if you're a lazy gamedev and want to get access to some D3D11 features by querying the interfaces (and get some extensions, coming soon!)
  • You write a D3D9Ex game and don't want to deal with sync and other issues for VR.
  • You write a D3D9 game and don't want to deal with D3D9Ex's pool changes and therefore can't get shared resources.

D3D10 support is now deprecated on Linux platforms and won't be installed with the script or the verb as DXVK now implements this.

How do I use it?

In order to install DXUP, get a release from either the releases page (for versioned releases) or from the build server if you want one built against the latest or a specific commit then run

export WINEPREFIX=/path/to/.wine-prefix
winetricks --force setup_dxup_d3d9.verb

How do I build it?

Simple (Linux Only): Use ./package-release.sh master /your/target/directory --no-package to automagically.

Advanced (Windows & Linux):

You can use meson to build the DLLs:

Windows: meson --backend vs2017 --buildtype release build in a Visual Studio x86/x64 Command Prompt depending on the arch you wish to build.

Linux: meson --cross-file build-win64.txt --buildtype release --prefix /your/dxup/directory build.w64 and vice versa for each arch (change 64s to 32s.)

Screenshots

D3D10 (before DXVK got D3D10 support)

Crysis Warhead Menu Crysis Warhead Game Crysis Warhead Game Just Cause 2 Just Cause 2 Just Cause 2

Have fun! 🐸

dxup's People

Contributors

flyingwombat avatar joshua-ashton avatar scell555 avatar tk-glitch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dxup's Issues

can't compile

missing 🐸 :frogs:
can't fix help
thank you
me happy good project

Game list compatibility and Just Cause 2

Hello,
I would like to know is there is a games compatibility list for DXUP?
Then I did read on most forum that Just Cause 2 can be played on Wine with DXUP.
But for me the game just crash at start with DXUP last git version.
Thank you for your help.

Config:
Just Cause 2 Steam
Ubuntu 18.04
Nvidia

Arma 3 on Windows + dxvk + dxup hangs on logo

Arma3_x64_d3d11.log
warn: D3D11CreateDevice: Unsupported driver type info: D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_11_0 info: D3D11CoreCreateDevice: Using feature level D3D_FEATURE_LEVEL_11_0 info: D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_11_0 info: D3D11CoreCreateDevice: Using feature level D3D_FEATURE_LEVEL_11_0 info: D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_11_0 info: D3D11CoreCreateDevice: Using feature level D3D_FEATURE_LEVEL_11_0 info: D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_11_0 info: D3D11CoreCreateDevice: Using feature level D3D_FEATURE_LEVEL_11_0 warn: D3D11Device: No matching border color found for (-3.40282e+038,0,0,0) err: DxvkDevice: Command buffer submission failed: VK_ERROR_DEVICE_LOST err: DxvkDevice: Command buffer submission failed: VK_ERROR_DEVICE_LOST

Arma3_x64_dxgi.log
warn: OpenVR: Failed to locate module info: Enabled instance extensions: info: VK_KHR_win32_surface info: VK_KHR_surface info: GeForce GTX 970: info: Driver: 398.11.0 info: Vulkan: 1.1.70 info: Memory Heap[0]: info: Size: 4043 MiB info: Flags: 0x1 info: Memory Type[7]: Property Flags = 0x1 info: Memory Type[8]: Property Flags = 0x1 info: Memory Heap[1]: info: Size: 28639 MiB info: Flags: 0x0 info: Memory Type[0]: Property Flags = 0x0 info: Memory Type[1]: Property Flags = 0x0 info: Memory Type[2]: Property Flags = 0x0 info: Memory Type[3]: Property Flags = 0x0 info: Memory Type[4]: Property Flags = 0x0 info: Memory Type[5]: Property Flags = 0x0 info: Memory Type[6]: Property Flags = 0x0 info: Memory Type[9]: Property Flags = 0x6 info: Memory Type[10]: Property Flags = 0xe warn: Vulkan extension VK_EXT_vertex_attribute_divisor not supported info: Enabled device extensions: info: VK_KHR_swapchain info: VK_KHR_descriptor_update_template info: VK_KHR_maintenance2 info: VK_EXT_shader_viewport_index_layer info: VK_KHR_sampler_mirror_clamp_to_edge info: VK_KHR_maintenance1 info: VK_KHR_shader_draw_parameters warn: OpenVR: Failed to locate module info: Enabled instance extensions: info: VK_KHR_win32_surface info: VK_KHR_surface info: GeForce GTX 970: info: Driver: 398.11.0 info: Vulkan: 1.1.70 info: Memory Heap[0]: info: Size: 4043 MiB info: Flags: 0x1 info: Memory Type[7]: Property Flags = 0x1 info: Memory Type[8]: Property Flags = 0x1 info: Memory Heap[1]: info: Size: 28639 MiB info: Flags: 0x0 info: Memory Type[0]: Property Flags = 0x0 info: Memory Type[1]: Property Flags = 0x0 info: Memory Type[2]: Property Flags = 0x0 info: Memory Type[3]: Property Flags = 0x0 info: Memory Type[4]: Property Flags = 0x0 info: Memory Type[5]: Property Flags = 0x0 info: Memory Type[6]: Property Flags = 0x0 info: Memory Type[9]: Property Flags = 0x6 info: Memory Type[10]: Property Flags = 0xe warn: Vulkan extension VK_EXT_vertex_attribute_divisor not supported info: Enabled device extensions: info: VK_KHR_swapchain info: VK_KHR_descriptor_update_template info: VK_KHR_maintenance2 info: VK_EXT_shader_viewport_index_layer info: VK_KHR_sampler_mirror_clamp_to_edge info: VK_KHR_maintenance1 info: VK_KHR_shader_draw_parameters warn: DXGI: CheckInterfaceSupport: No D3D10 support warn: Vulkan extension VK_EXT_vertex_attribute_divisor not supported info: Enabled device extensions: info: VK_KHR_swapchain info: VK_KHR_descriptor_update_template info: VK_KHR_maintenance2 info: VK_EXT_shader_viewport_index_layer info: VK_KHR_sampler_mirror_clamp_to_edge info: VK_KHR_maintenance1 info: VK_KHR_shader_draw_parameters warn: Vulkan extension VK_EXT_vertex_attribute_divisor not supported info: Enabled device extensions: info: VK_KHR_swapchain info: VK_KHR_descriptor_update_template info: VK_KHR_maintenance2 info: VK_EXT_shader_viewport_index_layer info: VK_KHR_sampler_mirror_clamp_to_edge info: VK_KHR_maintenance1 info: VK_KHR_shader_draw_parameters warn: DXGI: MakeWindowAssociation: Ignoring flags info: DxgiVkPresenter: Recreating swap chain: Format: VK_FORMAT_B8G8R8A8_UNORM Present mode: VK_PRESENT_MODE_FIFO_KHR Buffer size: 1920x1080

doitsujin/dxvk#349 (comment)

@Joshua-Ashton

bash: ./setup_dxup.sh: can't execute binary file

I got DXUP 32-bit build from Appveyor, copied DXVK's files according to readme, and that's what i get when i try to run setup_dxup.sh from terminal:
[redneck@pylesos dxup-32bit]$ ./setup_dxup.sh
bash: ./setup_dxup.sh: не удаётся запустить бинарный файл: Ошибка формата выполняемого файла
(translates as "can't execute binary file: executable file format error")
Maybe i use this script wrong way?

Conflict with existing WINEPREFIX DXVK setup

If you install DXVK to a WINEPREFIX.
Then install DXUP to same WINEPREFIX.

You end up with:

./d3d10.dll:          symbolic link to /mnt/robs-rog-laptop/linux_shared/robert/wineprefixes/dxvk_steam_64/drive_c/dxup/dxup-x64/d3d10.dll
./d3d10_original.dll: symbolic link to /mnt/robs-rog-laptop/linux_shared/robert/wineprefixes/dxvk_steam_64/drive_c/dxup/dxup-x64/d3d10_original.dll
./d3d10_1.dll:        symbolic link to /mnt/robs-rog-laptop/linux_shared/robert/wineprefixes/dxvk_steam_64/drive_c/dxup/dxup-x64/d3d10_1.dll
./dxgi.dll:           symbolic link to /mnt/robs-rog-laptop/linux_shared/robert/wineprefixes/dxvk_steam_64/drive_c/dxup/dxup-x64/dxgi.dll
./dxgi_original.dll:  broken symbolic link to /mnt/robs-rog-laptop/linux_shared/robert/wineprefixes/dxvk_steam_64/drive_c/dxup/dxup-x64/dxgi_original.dll
./d3dx10_43.dll:      symbolic link to /mnt/robs-rog-laptop/linux_shared/robert/wineprefixes/dxvk_steam_64/drive_c/dxup/dxup-x64/d3dx10_43.dll
./d3d11.dll:          broken symbolic link to /mnt/robs-rog-laptop/linux_shared/robert/wineprefixes/dxvk_steam_64/drive_c/dxup/dxup-x64/d3d11.dll

A little bit of symbolic link mangling would avoid stepping on the DXVK symbolic links. In fact you should be able to easily move the dxgi.dll link origin, DXVK, creates to be a dxgi_original.dll link origin.

Would a pull request for this be useful?

Is it possible do the revert operation 'dxdown' d3d11 to d3d10 translation?

Hi,Ashton.
First thank you very much for developing such useful tool to improve the performance of DX10 games but as you know DX10 is even not popular as DX9.0c when still many games on steam support 9.0c only like the Source engine-based games.So DX10 games was quite minor due to the failure of Vista,when I noticed that many Unreal Engine 4 games (UE4 is almost a native D3D11 engine) like PUBG F13games Fernbus are cooked only with SM5 content but if you search 'GlobalShaderCache-PCD3D_SM4.bin' on google you will find A LOT of people still using the classical ATI HD3/4 & NVIDIA G92/Tesla even the a bit newer 2011's Sandybridge iGPUs.
Accroding to the NVIDIA's advertisment ,the DX11 was 'compat' with DX10 GPUs and they showed us with the "Ocean‘ compute shader demo many years ago,and M$ said DX11 is only a hyperset of DX10 but digging into the UE4's code I found that still a lot API names difference and possible the HLSL assembly code produced by the fxc compiler for DX11&DX10 was different.Neverthess,I had tried the classical DX to OGL wined3d solution but it require equal level of DX11=OGL4 which is not suppport by the DX10 GPUs.
So,is it possible to make some 'dxdown' d3d11 to d3d10 translation layer for games like PUBG and so many UE4 games?I know some guys will say 'DX11 GPU is cheap just replace your crappiest card', but they don't know people are not always wealthy like them and even have the access to a bit newer hardware,i don't want some kids have a disappointed childhood like me just beacuse of the worst compability of Games or GPU.
From my view i found that DX11 may just add several shaders and Tessellation and ShaderUAV??? ,I have a idea that transpond the DX11 drawcall to CPU for emulated and DX10 compact drawcall passthrough to the GPU driver fo redering,Based on the display schematic i think just filter DX11 calls and convert PS_5_0 VS_5_0 to PS_4_0 VS_4_0 will be a better approach,and ignore the HS_5_0 stuff.After such operation the output image may possible deform but it's better than just reported some hard-understanding error.

Add '--always' to vcs_tag in meson.build

Without it there is a chance that the build will fail because git couldn't generate a full version name.

change

> ['git', 'describe' '--dirty=+']

to

> ['git', 'describe', '--always', '--dirty=+']

Debugging

In case someone interested in.

VS Code example (dxup/.vscode/launch.json):

{
    "version": "0.2.0",
    "configurations": [

        {
            "name": "Debug",
            "type": "gdb",
            "request": "attach",
            "executable": "/usr/lib/wine-vanilla-3.21/bin/wine",
            "cwd": "${workspaceRoot}",
            "target": ":2345",
            "remote": true,
            "valuesFormatting": "prettyPrinters"
        }
    ]
}
  • In terminal: $ winedbg --gdb --no-start --port 2345 Test.exe
  • In VS Code: set breakpoints
  • Run debug

Note:

  • I'm using winedbg from wine-staging, cause wine-vanilla's one refuse to launch for me
  • With a test program built as winelib, and dxup winelib build I can walk through both sources during debug (will probably try to install WINE sources as well)

AppVeyor Badge isn't a URL link

Hi Joshua,

Shouldn't your AppVeyor badge in the DXUP README link to your actual AppVeyor CI page?
That's what I do, with the Travis CI badges I have on my Github repositories.

Robert

Binaries upload

Personally, I couldn't build binaries myself. Meson on Windows doesn't build any dlls for me, I use VS2010.
On Linux I have too many strange errors. Why not just add binaries?

Need better documentation

You need better documentation about what you want to say with "/your/target/directory" and what exactly it uses with dxvk in linux. Because I tried to compile but a meson file it has 1 wrong thing, the file is "wine_utils/meson.build".

It indicates an entry of 'setup_dx10to11.sh.in' and does not exist, but there is "setup_dxup.in". And I changed this, now it compiles, but in Linux at least it does not create the .dll in the directories. And the DLLs that we must copy to wine_utils from dxvk, it is not specified if it should be x86 or x64. Because the Linux script does both and none works.

I hope you can find the best way to make it work.

Sorry if something is bad translated.

Cube World

using latest(pipeline 63), Cube world launches but nothing except the background renders, no textures, just the background color.
image
Shortened log since it was an endless repeat of the same 2 messages(unhandled render state and invalid internal render state)
Cube_d3d9.log

Edit: pipeline 64 same thing

Can't build

[xdshot@lenovo-pc dxup]$ export WINEARCH=win64
[xdshot@lenovo-pc dxup]$ export WINEPREFIX=~/.wine64/
[xdshot@lenovo-pc dxup]$ meson --cross-file build-win64.txt -Denable_tests=false bbbuild
The Meson build system
Version: 0.46.0
Source dir: /home/xdshot/dxup
Build dir: /home/xdshot/dxup/bbbuild
Build type: cross build
Project name: dxup
000b:fixme:winediag:start_process Wine Staging 3.8 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
wine: cannot find L"C:\windows\system32\winemenubuilder.exe"
000b:err:wineboot:ProcessRunKeys Error running cmd L"C:\windows\system32\winemenubuilder.exe -a -r" (2)
Native C compiler: ccache cc (gcc 8.1.0 "cc (GCC) 8.1.0")
Cross C compiler: /usr/bin/x86_64-w64-mingw32-gcc (gcc 8.1.0)
Native C++ compiler: ccache c++ (gcc 8.1.0 "c++ (GCC) 8.1.0")
Cross C++ compiler: /usr/bin/x86_64-w64-mingw32-g++ (gcc 8.1.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
Library d3d11 found: YES

wine_utils/meson.build:4:0: ERROR: File setup_dx10to11.sh.in does not exist.

A full log can be found at /home/xdshot/dxup/bbbuild/meson-logs/meson-log.txt

project license?

I was looking over the code in the project and noticed no license is mentioned. This is important since it provides a general idea on how the source code is used. Also, Since the goal of this project is similar to what VK9 does for Direct3D 9, and DXVK does for Direct 3D 11, I would like to suggest using the license both of the projects use which is the zlib license.

ETS1, ETS2, VVVVVV and SimplePlanes API traces + issues

Euro Truck Simulator

  • Missing textures
  • Shrinked viewport

Euro Truck Simulator 2

  • Heavy graphical glitches
  • Missing textures
  • Heavy lag

VVVVVV

  • Black screen

SimplePlanes

  • Crafts go in and out of existence at their own will
  • The ground is missing
  • The water is missing
  • The parts in editor can go missing

API TRACES:
ETS 1 700 MB compressed, 2.3GB after decompressing
ETS 2 1.1 GB without compression
VVVVVV 74 MB without compression
SimplePlanes 1.1GB compresed, 3+ GB after decompressing

In case any more files are needed (logs etc) just tell me here

IMPORTANT NOTICE
All API traces have been recorded using Wine's own Direct3D emulation, however there were no visible rendering glitches with that, so I think it will be safe to assume that the API traces are accurate.

Cannot be compiled on Linux

There are a few issues that affect the ability of a linux host to cross-compile DXUP for Windows/Wine

  1. MSVCisms in source code

  2. Missing headers (dxgi1_3.h)

  3. References to nonexistant files in the Meson build

It would be advisable to clarify this in the README until such a time where these are fixed. I strongly dislike MSVC and Win32 C++ so I may or may not make an effort to repair the issue myself.

no dx10 support?

I think I did something wrong to be getting this. (obviously)
so wine 3.9 dxvk dlls 0.54 and the version of dxup that was on here today 06/08/2018.
download the dxup-x64.zip, extract, read readme file.
download dxvk-0.54 in the x64 sub folder rename dxgi.dll -> dxgi_original.dll.
copy both d3d11.dll and dxgi_original.dll to dxup-x64 folder.
dos2unix fix the setup script, do the export WINEPREFIX variable.
run setup script.
try to run game, complains dx10 not supported? what what did I do wrong here?
fyi, the game is original crysis x64 version.

Build troubles

Interesting project, so i thought i would give it a test... Used the same machine i build dxvk with (just built dxvk without errors prior to testing this).
Ubuntu 18.04 w/mostly ubuntu release packages.

Attaching log after doing the regular meson config (same as i would do with dxvk) and running "ninja"
build.log

DEAD

rip
dead
🐸

Beyond Good & Evil

Opens and I can interact and hear audio but nothing renders. Nothing but black screen.

BGE_logs.zip

I have to redo the trace. It was 9GB and would take too long to compress and upload.

Supplied setup.sh shell scripts have WIndows file encoding

Hi Joshua, shouldn't the shell scripts you provide have a Unix file encoding, not:

file setup_dxup.sh 
setup_dxup.sh: Bourne-Again shell script, Little-endian UTF-16 Unicode text executable, with CRLF, CR line terminators

A quick dos2unix fixes this... :-)

Crysis Warhead/Crysis crash on launch

I'm currently using Wine Staging 3.13.1, dxvk 0.64, and the latest master of dxup. I can't seem to get Crisis Warhead to work as it just freezes on launch, and it's pretty much the same with the original Crysis.

I've also tried using DXVK_FAKE_DX10_SUPPORT, but still the same result.

Before attempting dxup I tried dxvk with Nier Automata which works as intended.

CPU: i5 3570K
GPU: GTX 1050 ti
Drivers: 396.51
OS: Gentoo 64-bit

DXVK logs from Crysis Warhead:

Crysis_d3d11.log
Crysis_dxgi.log
Crysis64_d3d11.log
Crysis64_dxgi.log

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.