Open die-fi opened 8 years ago
This works properly for me on my Ubuntu / NVIDIA system. We'll have to see if other people have the same issue and then identify what configurations don't work.
I tested a few packs in Demo mode with the following conclusion. DAC 2015 Chaos Knight Cursor Pack - Partially transparent. White block on the right side of the cursor and some at the bottom when, hovering over units. DAC 2015 Mirana Cursor Pack - White surrounding, a few pixel transparent around the coursor. DAC 2015 Crystal Maidon Cursor Pack - Partially transparent The Summit 3 Cursor pack completly white surrounding for all cursors. (Same as Internation 2016 Pack)
All the other Cursor packs looks fine. Did something happen around The Summit 3 that the cursor from there on are bugged?
The TI 2016 Battlepack cursor pack doesn't appear to be broken as it works properly for me so the cause seems like something more complex.
I suspect this is related to mesa 10.3.2, which was released in Sept. 2014, a full year before the Dota 2 reborn client was released and most likely is fixed in a newer version.
Well I upgraded most of the mesa packages to the newers backports, without any change.
dpkg -l | grep mesa
ii glx-alternative-mesa 0.7.2~bpo8+1 amd64 allows the selection of MESA as GLX provider
ii libegl1-mesa:amd64 11.1.3-1~bpo8+1 amd64 free implementation of the EGL API -- runtime
ii libegl1-mesa-dev:amd64 11.1.3-1~bpo8+1 amd64 free implementation of the EGL API -- development files
ii libegl1-mesa-drivers:amd64 11.1.3-1~bpo8+1 amd64 transitional dummy package
ii libgl1-mesa-dev:amd64 11.1.3-1~bpo8+1 amd64 free implementation of the OpenGL API -- GLX development files
ii libgl1-mesa-dri:amd64 11.1.3-1~bpo8+1 amd64 free implementation of the OpenGL API -- DRI modules
ii libgl1-mesa-dri:i386 11.1.3-1~bpo8+1 i386 free implementation of the OpenGL API -- DRI modules
ii libgl1-mesa-glx:amd64 11.1.3-1~bpo8+1 amd64 free implementation of the OpenGL API -- GLX runtime
ii libgl1-mesa-glx:i386 11.1.3-1~bpo8+1 i386 free implementation of the OpenGL API -- GLX runtime
ii libglapi-mesa:amd64 11.1.3-1~bpo8+1 amd64 free implementation of the GL API -- shared library
ii libglapi-mesa:i386 11.1.3-1~bpo8+1 i386 free implementation of the GL API -- shared library
ii libgles1-mesa:amd64 11.1.3-1~bpo8+1 amd64 free implementation of the OpenGL|ES 1.x API -- runtime
ii libgles1-mesa-dev:amd64 11.1.3-1~bpo8+1 amd64 free implementation of the OpenGL|ES 1.x API -- development files
ii libgles2-mesa:amd64 11.1.3-1~bpo8+1 amd64 free implementation of the OpenGL|ES 2.x API -- runtime
ii libgles2-mesa-dev:amd64 11.1.3-1~bpo8+1 amd64 free implementation of the OpenGL|ES 2.x API -- development files
ii libglu1-mesa:amd64 9.0.0-2 amd64 Mesa OpenGL utility library (GLU)
ii libglu1-mesa:i386 9.0.0-2 i386 Mesa OpenGL utility library (GLU)
ii libglu1-mesa-dev 9.0.0-2 amd64 Mesa OpenGL utility library -- development files
ii libopenvg1-mesa:amd64 10.3.2-1+deb8u1 amd64 free implementation of the OpenVG API -- runtime
ii libwayland-egl1-mesa:amd64 11.1.3-1~bpo8+1 amd64 implementation of the Wayland EGL platform -- runtime
ii mesa-common-dev:amd64 11.1.3-1~bpo8+1 amd64 Developer documentation for Mesa
ii mesa-utils 8.2.0-1 amd64 Miscellaneous Mesa GL utilities
just to throw it out there, I'm having the same issue with the international 2016 cursor pack. I'm on Debian Jessie too. Not really sure what information useful so here's a dump.
$ cat /etc/debian_version
8.5
$ dpkg -l | grep radeon
ii libdrm-radeon1:amd64 2.4.58-2 amd64 Userspace interface to radeon-specific kernel DRM services -- runtime
ii libdrm-radeon1:i386 2.4.58-2 i386 Userspace interface to radeon-specific kernel DRM services -- runtime
ii xserver-xorg-video-radeon 1:7.5.0-1 amd64 X.Org X server -- AMD/ATI Radeon display driver
$ dpkg -l | grep mesa
ii libegl1-mesa:amd64 10.3.2-1+deb8u1 amd64 free implementation of the EGL API -- runtime
ii libegl1-mesa-dev:amd64 10.3.2-1+deb8u1 amd64 free implementation of the EGL API -- development files
ii libegl1-mesa-drivers:amd64 10.3.2-1+deb8u1 amd64 free implementation of the EGL API -- hardware drivers
ii libgl1-mesa-dev:amd64 10.3.2-1+deb8u1 amd64 free implementation of the OpenGL API -- GLX development files
ii libgl1-mesa-dri:amd64 10.3.2-1+deb8u1 amd64 free implementation of the OpenGL API -- DRI modules
ii libgl1-mesa-dri:i386 10.3.2-1+deb8u1 i386 free implementation of the OpenGL API -- DRI modules
ii libgl1-mesa-glx:amd64 10.3.2-1+deb8u1 amd64 free implementation of the OpenGL API -- GLX runtime
ii libgl1-mesa-glx:i386 10.3.2-1+deb8u1 i386 free implementation of the OpenGL API -- GLX runtime
ii libglapi-mesa:amd64 10.3.2-1+deb8u1 amd64 free implementation of the GL API -- shared library
ii libglapi-mesa:i386 10.3.2-1+deb8u1 i386 free implementation of the GL API -- shared library
ii libgles1-mesa:amd64 10.3.2-1+deb8u1 amd64 free implementation of the OpenGL|ES 1.x API -- runtime
ii libgles2-mesa:amd64 10.3.2-1+deb8u1 amd64 free implementation of the OpenGL|ES 2.x API -- runtime
ii libgles2-mesa-dev:amd64 10.3.2-1+deb8u1 amd64 free implementation of the OpenGL|ES 2.x API -- development files
ii libglu1-mesa:amd64 9.0.0-2 amd64 Mesa OpenGL utility library (GLU)
ii libglu1-mesa:i386 9.0.0-2 i386 Mesa OpenGL utility library (GLU)
ii libglu1-mesa-dev 9.0.0-2 amd64 Mesa OpenGL utility library -- development files
ii libopenvg1-mesa:amd64 10.3.2-1+deb8u1 amd64 free implementation of the OpenVG API -- runtime
ii libosmesa6:amd64 10.3.2-1+deb8u1 amd64 Mesa Off-screen rendering extension
ii libwayland-egl1-mesa:amd64 10.3.2-1+deb8u1 amd64 implementation of the Wayland EGL platform -- runtime
ii mesa-common-dev:amd64 10.3.2-1+deb8u1 amd64 Developer documentation for Mesa
ii mesa-utils 8.2.0-1 amd64 Miscellaneous Mesa GL utilities
$ lspci | grep VGA
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Hawaii PRO [Radeon R9 290] (rev 80)
$ glxinfo | grep -i "vendor\|rendering" ;
direct rendering: Yes
server glx vendor string: ATI
client glx vendor string: ATI
OpenGL vendor string: Advanced Micro Devices, Inc.
$ glxinfo | grep -i "OpenGL" ;
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: AMD Radeon (TM) R9 390 Series
OpenGL core profile version string: 4.4.13416 Core Profile Context 15.302
OpenGL core profile shading language version string: 4.40
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.5.13416 Compatibility Profile Context 15.302
OpenGL shading language version string: 4.40
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
.steam/steam/steamapps/common/dota 2 beta/game/dota/resource/cursor/valve/ti6$ md5sum *
a4186dcb56a4c44de63928fa32cec06f cursor_attack_default.bmp
a4186dcb56a4c44de63928fa32cec06f cursor_attack_enemy.bmp
e78f84dfedf9828ff67681b652b92560 cursor_attack_illegal.bmp
636bdf9374189b0457de5891ef6e82ce cursor_attack_team.bmp
223c6b80155fb794ed1e3709a0d02c96 cursor_buy.bmp
223c6b80155fb794ed1e3709a0d02c96 cursor_cannot_buy.bmp
788e7c3774a0fc805bbb7818661f6fc8 cursor_coach.bmp
bf1d97df23dfabb25916046e2878e0a0 cursor_default.bmp
175d822b4739142a25247682e0126753 cursor_default_enemy.bmp
2eb5478300cca72699bfe658a0b8f9eb cursor_default_team.bmp
c5c1d9e98d69c429099e4346e1657c31 cursor_inivisible.bmp
223c6b80155fb794ed1e3709a0d02c96 cursor_item_drop.bmp
44cd2b4283ced6a835400eff3a81d9b6 cursor_learn_ability.bmp
1329770072c6f4bd67acfabccd913416 cursor_move.bmp
b629b851bad13461fb85a58ee1bfaf34 cursor.res
7667d39d8769f51548592a0680422d0e cursor_spell_default.bmp
223c6b80155fb794ed1e3709a0d02c96 cursor_spell_enemy.bmp
073aca93dc62159c7b2034ba694956a8 cursor_spell_illegal.bmp
223c6b80155fb794ed1e3709a0d02c96 cursor_spell_team.bmp
b5d0fb80d3e77203ac7dca759b67c4af cursor_spell_walkto.bmp
I can grab mesa 11.1.3 if thats the issue.
@Doldge, your glxinfo output indicates you are using AMD's proprietary driver, as such, changing mesa versions should not make a difference for you.
OK, I need some clarification here. I've checked around the files in the cursor folder and realized the following. There are 2 different files in there. One are .ani-files and the other one are .bmp. Now this is how those files are displayed in my folder. I assume .ani files show how the cursor are supposed to look, while all the .bmp files have those white borders. This is exactly how it's displayed in-game. The question is now, where did the corruption of the .bmp happen?
Are those files compressed somewhere and my system fails to decompress them correctly. Or do I straight download corrupt files?
Deleting the Cursor folder and reverifying didn't help. The restored (I don't know if they are downloaded again, or just extracted from some backup) icons look as broken as before.
I see those files the same way but those aren't the TI6 cursor pack files. If you look at the TI6 cursor pack files in valve/ti6 what do they look like? There should only be .bmp files there. Those will have a border in a system file display but in-game they should not have the border.
Are all of the borders white? Because all cursors that do have a black border works perfectly fine. TI 5 (works perfectly fine): TI 6 (white borders ingame)
Now the fun part. Also with an explanation why I picked the previous Screenshot to highlight my confusion. I assume this cursors had animations for the .ani file, What remaines are random light blue dots and white surroundings that are not transparent. Compared to the clean .ani picture I don't know how the .bmp file ended up like this. And last some from CK with a random white T shaped line, that is once again visible.
Oh yeah, while the others have an alpha channel the BTS3 Cursor Pack lack an alpha channel overall.
Some of the TI6 borders are white and some are black. All of the TI6 cursors have proper transparency in-game for me.
I'm seeing this same issue running latest Mesa-12.1-dev via Padoka PPA. Not on my laptop currently, but i see this with both my IGPU (AMD Radeon HD 6520G) and DGPU (Radeon 7670M), no matter which one of them is enabled. It's a hybrid graphics system, as can be seen. FTR, experienced the same issue with Mesa 11.2 that comes with Ubuntu 16.04 by default.
Small update. I used the RAW Image data from .ani files and replaced the ImageData of the .bmp after that dota2 was able to display it correctly.
I wonder if some pieces of image loading sofware in the system is somehow affecting how the alpha channel is getting handled. Dota is using SDL to load, though, and ships SDL so that shouldn't be an issue.
@die-fi can you post A) the method you used to do this, and B) the md5sum's of the resulting files?
@Doldge Skip to the bottom part if you aren't interested in the details.
I did it manually (my programming skills are little rusty and it was faster to manipulate it with a hexeditor), for 2 cursors from 2 different packs and they worked, because it happend that the .ani for exact those cursor packs uses 0x00000000 (basically black with 0x00 as alpha value) for a pixel with total transparency. I tested a few more packs and encountered the same problem as before when its .ani file uses 0xFFFFFF00 (white with 0x00 as alpha) for total transparency. For the second case I tired to replace all 0xFFFFFF00 with 0x00000000 and it mostly worked but the edges of the cursors where white, because the fading parts still had white parts in it.
Sadly the TI6 pack uses 0xFFFFFF00 for transparent pixels and it doesn't work properly for the edges as mentioned above, but I used gimp to create cursors that are properly displayed. (They are 84 bytes bigger though, because the info headed has a few additional image information)
TL;DR: The method doesn't work for all files, the TI6 Pack is one of them. I made new one with gimp that are displayed correctly in my game, that you can download here: ti6.zip
f3b5e271ee208e739c81f8aaae60293f cursor_attack_default.bmp
b0840a0da51b657cefff123091eeb6d1 cursor_attack_enemy.bmp
46008ab8522f2bda398cc90f694c9823 cursor_attack_illegal.bmp
bb2e234e9bf24de466d7b385e8419eef cursor_attack_team.bmp
dd99549d5bccbee456e7d2c9c299abd0 cursor_coach.bmp
4184980127131f8508707efcdce58ba8 cursor_default.bmp
a95f2cfe821be00ca7ccae86114eb097 cursor_default_enemy.bmp
729452b86e11d71ef2d5dc07c31e1e2e cursor_default_team.bmp
ec1196a0c0529ed7a71646a1de6cc836 cursor_learn_ability.bmp
9728d970a4faed594edebbeb1d82071c cursor_move.bmp
29a471da6b4e3240cf2ad0d4f12b5f7c ti6.zip
Just replace those 10, the other works fine as they are.
New Cursor Pack isn't displayed properly. I see a moving white block with the courser in it. I assume the alpha value is is not processed properly, resulting in a white space that should be transparent. The same error happens with the hand cursor if you want to scroll around the Group Stage for Manila Major, that was added today. The only comparison I can make is to the International 2015 Coursur Pack, and I don't have any issues with that.
Here my system:
Sorry I tried a few times to take Screenshot of the error, but any screenshot I made removes the cursor completely. So if there is a command that allows me to make a screenshot that captures the cursor I'll gladly add that one to this thread.