GithubHelp home page GithubHelp logo

Comments (14)

axeldavy avatar axeldavy commented on July 28, 2024

Venemo, who works on iris support, says there is issues with mesa master.
I don't know exactly which version would work, best would be to wait a week or two this gets fixed.

from wine-nine-standalone.

Venemo avatar Venemo commented on July 28, 2024

There is a regression in mesa 19.1 and master, which affects iris + nine. We are currently working on fixing it. I would suggest to wait a couple of weeks until this is resolved.

from wine-nine-standalone.

DenKos363 avatar DenKos363 commented on July 28, 2024

hm, thanks for fast reply. I checked 19.1 (one of the early commits with enabled iris) and the same result.
Will wait for updates, thanks again. Should this issue be created in mesa BZ or it is already exist there?

from wine-nine-standalone.

Venemo avatar Venemo commented on July 28, 2024

It's enough that we have this issue here, no need to duplicate it in the mesa BZ.

from wine-nine-standalone.

Venemo avatar Venemo commented on July 28, 2024

Technical details:

Since this commit nine will manually allocate a GPU resource and give that to the driver to use in slot 0, whereas previously it used the in-memory user_buffer. This is all good and may yield more optimal behavior than before.

However, iris treats cbuf0 in a special way: what you can see in iris_setup_uniforms is that iris turns all system values into cbuf0 uniforms and shifts all other uniform usage that were previously in cbuf0 to match this. So, essentially, in the current implementation, iris must have both the sysvals and the cbuf0 uniforms in the same GPU resource.

Possible solutions:

  1. Copy the user-supplied resource into the buffer that is allocated by upload_uniforms. This is easy and I made a patch that does this but in practice it performs really badly.
  2. Change nine so that it keeps using user_buffer on iris. This is a hack, and may result in sub-par performance, and a maintainability burden.
  3. Change iris in such a manner that it puts the sysvals into a separate UBO slot, and allow the state tracker to use cbuf0 just like any other, for its own purposes.

I think 3. is the correct solution here, because it reduces the complexity of the driver (so it won't need to treat cbuf0 differently) while also improving its flexibility.

from wine-nine-standalone.

Venemo avatar Venemo commented on July 28, 2024

@DenKos363 Just one more thought for you: iris is not yet the default intel driver, so you need to set the MESA_LOADER_DRIVER_OVERRIDE=iris environment variable if you want to use it.

from wine-nine-standalone.

DenKos363 avatar DenKos363 commented on July 28, 2024

@Venemo sure, I know this and do so. Below you may see script I am using for running the game.
Thank you one more time. Will wait for updates and be happy to test the fix as soon as it will be provided.

export LIBGL_DRIVERS_PATH=/home/ubutu/mesa_versions/mesa-git-12.06-iris/lib/x86_64-linux-gnu/dri/
export MESA_LOADER_DRIVER_OVERRIDE=iris
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/ubutu/mesa_versions/mesa-git-12.06-iris/lib/x86_64-linux-gnu/
glxinfo -B
D3D_MODULE_PATH=/home/ubutu/mesa_versions/mesa-git-12.06-iris/lib/x86_64-linux-gnu/d3d/ "$@"

from wine-nine-standalone.

Venemo avatar Venemo commented on July 28, 2024

Here is a work-in-progress MR to fix iris with nine: https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1104

from wine-nine-standalone.

Venemo avatar Venemo commented on July 28, 2024

@DenKos363 Something seems not right in your environment. The error message you get indicates that it didn't load nine at all.

from wine-nine-standalone.

tomboy-64 avatar tomboy-64 commented on July 28, 2024

When you get something working, I'd be happy to test it.
I have the same hw as op and looking to get gallium-nine working with Starcraft 2.
I'm running on gentoo, currently kernel 5.1.9.

The current patch compiles with head, but mesa seems to crash out on anything, even ninewinecfg.exe.

from wine-nine-standalone.

Venemo avatar Venemo commented on July 28, 2024

@tomboy-64 Starcraft 2 works for me with this patch: https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1104

Though note that both iris and nine's iris support are experimental at this time, meaning there are still issues that we need to iron out. Two issues I know of are that I don't see any shadows in SC2, and the GPU hangs when I click the quit button.

from wine-nine-standalone.

DenKos363 avatar DenKos363 commented on July 28, 2024

Hello guys, sorry for long reply. I managed to successfully apply gallium-nine to the game and run it, but found 2 issues:

  1. with this commit (e81392868e6827360762fff38baf2c10c1f3b7f0 is the first bad commit) game started crashing with this assertion:
    [1;32mNative Direct3D 9 v0.4.0.294-release is active. For more information visit https://github.com/iXit/wine-nine-standalone[0m 81249.157:0029:002a:fixme:d3d9nine:DRIPresentGroup_GetMultiheadCount (0x1ae2c0), stub! 81249.157:0029:002a:fixme:d3d9nine:DRIPresentGroup_GetMultiheadCount (0x1ae2c0), stub! ../src/gallium/drivers/iris/iris_resource.c:855: iris_resource_get_handle: Assertion aux_state == ISL_AUX_STATE_RESOLVED || aux_state == ISL_AUX_STATE_PASS_THROUGH' failed.`

  2. Before this commit game launches with a black screen - and then (after some time) - crashes.

here is a report in Bugzilla https://bugs.freedesktop.org/show_bug.cgi?id=111150

from wine-nine-standalone.

dhewg avatar dhewg commented on July 28, 2024

Does iris+nine work for you guys by now?

from wine-nine-standalone.

DenKos363 avatar DenKos363 commented on July 28, 2024

hi, sorry for delay, I would close this issue for now, because I was able to apply drivers to the game. Other issues are not related no gallium-nine, at least for now.
Thanks for the help

from wine-nine-standalone.

Related Issues (20)

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.