Bright pink overlay for mods on Linux

Started by lgha, December 13, 2017, 05:57:21 AM

Previous topic - Next topic

lgha

So far I have encoutered this with HeatMap, DubsHygiene, and Show Me Where. The overlay is just bright pink.

This appears to be a problem with GetCellExtraColor in the ICellBoolGiver class. The PathAvoid mod developer has discovered that this will generate a pink cell unless Color.white is returned.

https://github.com/KiameV/rimworld-pathavoid/commit/46090a18e68d152ad46ad85f9bdb3f001dd94216


Supay

Thank you for this!  I'd been speaking to the Show me Where developer about this and we weren't sure what caused it.  If you haven't already, I'll let them know.

lgha

The HeatMap dev had a look at it, and is of the opinion that this is a bug in the behaviour of the ICellBoolGiver class for the Linux client. Mods like Heat Map and Show Me Where that use multiple colours will have problems as changing the Colour property is effectively global, GetCellExtraColor is required to use multiple colours on the same overlay.

As I'm not all over RimWorld modding, I have no idea where the ICellBoolGiver class originates; is this part of the RimWorld library or provided by HugsLib/Harmony?

All I do know is that the behaviour is inconsistent between platforms.

why_it_is

I'm seeing this too. Steam on Linux Fedora 27 with nvidia drivers from: https://negativo17.org/repos/nvidia/

Renderer: GeForce GTX 970/PCIe/SSE2
Vendor:   NVIDIA Corporation
Version:  4.5.0 NVIDIA 387.34

RimWorld 0.18.1722 rev1210

There is only one level of visibility for exampel for heat map etc. Somehow alpha channel is gone.

Maybe this is linked to shader compilation errors:

-------- Shader compilation failed
#version 150
#extension GL_ARB_explicit_attrib_location : require
#extension GL_ARB_shader_bit_encoding : enable
uniform         vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform         vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform         vec4 __ST;
in  vec3 in_POSITION0;
in  vec4 in_COLOR0;
in  vec3 in_TEXCOORD0;
out vec4 vs_COLOR0;
out vec2 vs_TEXCOORD0;
vec4 u_xlat0;
vec4 u_xlat1;
void main()
{
    vs_COLOR0 = in_COLOR0;
    vs_COLOR0 = clamp(vs_COLOR0, 0.0, 1.0);
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * __ST.xy + __ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = u_xlat0 + hlslcc_mtx4x4unity_ObjectToWorld[3];
    u_xlat1 = u_xlat0.yyyy * hlslcc_mtx4x4unity_MatrixVP[1];
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    gl_Position = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    return;
}
-------- failed compiling:
vertex shader
0(7) : error C7528: OpenGL reserves names containing '__'

Note: Creation of internal variant of shader 'Custom/Vertex Color' failed.
WARNING: Shader Unsupported: 'Custom/Vertex Color' - Pass '' has no vertex shader
ERROR: Shader Shader is not supported on this GPU (none of subshaders/fallbacks are suitable)WARNING: Shader Unsupported: 'Custom/Vertex Color' - Setting to default shader.
Attempt to use string targetversion to refer to field targetVersion in type Verse.ModMetaData+ModMetaDataInternal; xml tags are now case-sensitive. XML: <ModMetaData><targetversion>0.17.1543</targetversion><name>Additional Conduit</name><author>Spidercamp</author><description>Introduces additional conduit options for varied applications across the colony.

Includes 
● Outdoor Conduit - Toughened for outdoor use. Fire resistant.
● Fancy Conduit - Beautiful conduit that improves the vibe of it's surroundings.
● Buried Conduit - Buried for maximum durability. More work to build. Does not count for/against the beauty of an area.

Additional requests welcome

lgha