• Login
  • Register
  • Dolphin Forums
  • Home
  • FAQ
  • Download
  • Wiki
  • Code


Dolphin, the GameCube and Wii emulator - Forums › Dolphin Emulator Discussion and Support › Android v
« Previous 1 … 99 100 101 102 103 … 128 Next »

All games run in black screen in the latest build
View New Posts | View Today's Posts

Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Threaded Mode
All games run in black screen in the latest build
04-10-2016, 05:22 PM
#1
brujo5 Offline
Member
***
Posts: 186
Threads: 11
Joined: Feb 2015
Related to the changes in pixelshader

[Image: 21mgdqp.png]
Find
Reply
04-10-2016, 08:56 PM
#2
degasus Offline
Developer
**********
Developers (Some Administrators and Super Moderators)
Posts: 1,828
Threads: 10
Joined: May 2012
Thank you for also bisecting this issue, so it was easy to find the issue, but could you please also upload the broken shader here?

Fixed in https://github.com/dolphin-emu/dolphin/pull/3775
Find
Reply
04-11-2016, 01:07 AM (This post was last modified: 04-11-2016, 01:12 AM by brujo5.)
#3
brujo5 Offline
Member
***
Posts: 186
Threads: 11
Joined: Feb 2015
#version 310 es

#define FORCE_EARLY_Z layout(early_fragment_tests) in



#define SAMPLER_BINDING(x) layout(binding = x)








precision highp float;
precision highp int;
precision highp sampler2DArray;

precision highp sampler2DMS;
#define float2 vec2
#define float3 vec3
#define float4 vec4
#define uint2 uvec2
#define uint3 uvec3
#define uint4 uvec4
#define int2 ivec2
#define int3 ivec3
#define int4 ivec4
#define frac fract
#define lerp mix
//Pixel Shader for TEV stages
//1 TEV stages, 1 texgens, 0 IND stages
int idot(int3 x, int3 y)
{
int3 tmp = x * y;
return tmp.x + tmp.y + tmp.z;
}
int idot(int4 x, int4 y)
{
int4 tmp = x * y;
return tmp.x + tmp.y + tmp.z + tmp.w;
}

int iround(float x) { return int (round(x)); }
int2 iround(float2 x) { return int2(round(x)); }
int3 iround(float3 x) { return int3(round(x)); }
int4 iround(float4 x) { return int4(round(x)); }

int itrunc(float x) { return int (trunc(x)); }
int2 itrunc(float2 x) { return int2(trunc(x)); }
int3 itrunc(float3 x) { return int3(trunc(x)); }
int4 itrunc(float4 x) { return int4(trunc(x)); }

SAMPLER_BINDING(0) uniform sampler2DArray samp[8];

layout(std140, binding = 1) uniform PSBlock {
int4 color[4];
int4 k[4];
int4 alphaRef;
float4 texdim[8];
int4 czbias[2];
int4 cindscale[2];
int4 cindmtx[6];
int4 cfogcolor;
int4 cfogi;
float4 cfogf[2];
float4 czslope;
float4 cefbscale;
};
struct VS_OUTPUT {
float4 pos;
float4 colors_0;
float4 colors_1;
float3 tex0;
float4 clipPos;
};
out vec4 ocol0;
in float4 colors_0;
in float4 colors_1;
in float3 uv0;
in float4 clipPos;
void main()
{
float4 rawpos = gl_FragCoord;
int4 c0 = color[1], c1 = color[2], c2 = color[3], prev = color[0];
int4 rastemp = int4(0, 0, 0, 0), textemp = int4(0, 0, 0, 0), konsttemp = int4(0, 0, 0, 0);
int3 comp16 = int3(1, 256, 0), comp24 = int3(1, 256, 256*256);
int alphabump=0;
int3 tevcoord=int3(0, 0, 0);
int2 wrappedcoord=int2(0,0), tempcoord=int2(0,0);
int4 tevin_a=int4(0,0,0,0),tevin_b=int4(0,0,0,0),tevin_c=int4(0,0,0,0),tevin_d=int4(0,0,0,0);

float4 col0 = colors_0;
float4 col1 = colors_1;
int2 fixpoint_uv0 = itrunc(uv0.xy * texdim[0].zw);

// TEV stage 0
rastemp = iround(col0 * 255.0).rgba;
tevcoord.xy = fixpoint_uv0;
textemp = iround(255.0 * texture(samp[0], float3((tevcoord.xy).xy * texdim[0].xy, 0.0))).rgba;
tevin_a = int4(int3(0,0,0), 0)&int4(255, 255, 255, 255);
tevin_b = int4(textemp.rgb, textemp.a)&int4(255, 255, 255, 255);
tevin_c = int4(rastemp.rgb, rastemp.a)&int4(255, 255, 255, 255);
tevin_d = int4(int3(0,0,0), 0);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + (((((tevin_a.rgb<<8) + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(0,0,0), int3(255,255,255));
// alpha combine
prev.a = clamp((((tevin_d.a)) + (((((tevin_a.a<<8) + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), 0, 255);
prev = prev & 255;
int zCoord = int(rawpos.z * 16777216.0);
zCoord = clamp(zCoord, 0, 0xFFFFFF);
ocol0 = float4(prev) / 255.0;
}
1:70: S0001: Type mismatch in arithmetic operation between 'ivec2' and 'vec2'


All bad_ps_0000.txt says the same.

http://www85.zippyshare.com/v/quqx0vWE/file.html
Find
Reply
« Next Oldest | Next Newest »


  • View a Printable Version
Forum Jump:


Users browsing this thread: 1 Guest(s)



Powered By MyBB | Theme by Fragma