Open orbea opened 6 years ago
Github won't let me edit anything so here are the corrected images...
Could you check the impact of the texturing options. And try to disable blending if enabled.
Blending unit accuracy makes no difference while changing the texture filtering to Bilinear (Forced)
makes the lines slightly more pronounced.
Did you try some Half pixel offset value?
Yes, I checked again to confirm and it makes no difference.
HPO is for upscaling. In this case, I think we sample a wrong pixels on texture border. It could be related to small rounding issue
Is there anything more I can do to help debug this? OpenGL does offer a nice performance improvement the software renderer lacks here.
Well next step is to replay the gsdump in a debug build. Find the bad draw call in apitrace. Then understand where is the bad texture sampling. Potentially compare with sw texture dump.
So I'll try this one step at a time, please correct me if I am misunderstanding anything.
First I rebuilt pcsx2 with -DCMAKE_BUILD_TYPE=Debug
and created an trace of pcsx2 playing the gsdump.
apitrace trace pcsx2_GSReplayLoader /usr/lib/games/PCSX2/libGSdx.so gsdx_Atelier-marie2.gs
Next I replayed the trace with apitrace.
Log - https://pastebin.com/GHTQp74m Trace - http://ks392457.kimsufi.com/orbea/stuff/trace/pcsx2_GSReplayLoader_Atelier-marie.trace.xz
I also looked at it with qapitrace, but frankly I'm not sure what I'm looking for...
I suppose looking at the trace output this could point to the issue?
12339: message: application error 57005: OI_GsMemClear (0,0 => 640,448)
12340: message: application error 57005: OI_DoubleHalfClear: base 1180 half 2300. w_pages 10 h_pages 14 fbw 10. Color 0
Various error message aren't error actually but normal behaviour. Often complex renderings that are source of issues.
So in apitrace, you have the draw call tree. A trace is composed of around 4 frames. A frame is split in GS draw call. Each GS draw call is emulated with 1 or multiple GL draw call. Input of draw calls are vertices data, texture, some constants (aka uniforms), the shader program. The output is the framebuffer.
The idea is to check the framebuffer of each GS draw to find the first wrong framebuffer (i.e. the one that add the vertical lines). You can do a binary search. Note it could also be related to a wrong alpha channel.
Note better use a gsdump, it greatly reduces the noise in apitrace.
Thanks, that helps me understand better.
First I made a new trace from gsdump. http://ks392457.kimsufi.com/orbea/stuff/trace/pcsx2_GSReplayLoader_Atelier-marie2.trace.xz
Then with qapitrace I looked around until I found what appears to be the first instance of the line, glDrawElementsBaseVertex(GL_LINES,4,GL_UNSIGNED_INT,0x18,14)
. I found it under Frame 1
-> HW Draw 5
-> GL Draw from 8 (area 0,0 => 297,249) in 2 (Depth 5)(area 20,320 => 612,440)
-> glDrawElementsBaseVertex
.
Am I looking at the right place now?
Yes, Double click on it. Or right click, lookup state. It will query all gl states. Then you can see the content of input texture and framebuffer. Note main texture is the first slot. By the way did you use 8 bits texture or 32 bits texture ? Rinse and repeat until you find the bad draw. Note you can see the state before the draw if you lookup the gl call just before the draw.
Ok You get the bad draw already. So check the content of texture to see it size.
When I get acccess to a PC, I will explain you how to dump the state on the sw renderer (both texture and gs registers) and how to read the vertices data. Potentially it could be either a bad texture sampling or a bad position of sprites.
I used 8 bit textures for the gsdump, but I tried not selecting that option earlier without any observed change.
Checking the texture shows.
GL_TEXTURE3,
GL_TEXTURE_2d, level = 0,
GL_RGBA8, 1280 x 1024
This texture feels like the texture attached to the framebuffer whereas you need the input texture. Besides, you likely have a texture atlas. A bigger texture that contains multiple small texture, it should be at the top of texture state. You're bad draw call is 2 lines so 2 sprites. By the way might worth to check that rendering is fine without a geometry shader (i.e. with 2 triangles by sprite instead of a line).
Could you give us the vertices data. I think I called it "IA" in the trace. You have 2 memcpy, one for vertices structure and one for indexes. You need the bigger one (32*4 = 128 bytes). Strides should be set to 32 bytes.
X,Y position => 2 half int with an offset of 16 bytes
U,V position => 2 half int with an offset of 24 bytes
Yes, that was the bigger texture which actually showed the line, the other one was.
GL_TEXTURE0,
GL_TEXTURE_2D, level = 0,
GL_RGBA8, 512 x 512
Setting the geometry shader to force-disabled
has no effect, I just checked again to make sure.
Under IA
I found two memcpy, the first was larger.
memcpy(0xee2911c0, [binary data, size = 128 bytes], 128)
memcpy(0xeda91018, [binary data, size = 16 bytes], 16)
For the first one I set stride
to 32 and hit 'Interpret`.
0) [0,0, -1.1801e-38,1]
1) [0,0, -1.1801e-38,1]
2) [0,0, -1.1801e-38,1]
3) [0,0, -1.1801e-38,1]
Is this what you mean?
Basically the rendering will create 2 sprites (2 rectangles) and it will map a part of the texture on top of it. I'm pretty sure the mapping is 1:1. For example a sprite of 10x10 pixels will sample 10x10 texels (from texture).
You need to set the offset too and the type of data. Unsigned half (16 bits) integer. Otherwise, there are read as float. And you need to set the number of element to 2. The content of the memcpy is an array of GSVertex structures.
I'm not sure I follow exactly, there is no "elements", do you mean "components"?
Anyways I tried once more.
Type: GL_UNSIGNED_INT
Stride: 32
Components: 2
Starting Offset: 16
0) [2248174912, 4294967293]
1) [2374008768, 4294967293]
2) [2248179648, 4294967293]
3) [2374013504, 4294967293]
Is this closer to what I want?
Closer. The type is wrong. Do you have unsigned short maybe ? Sorry I don't remember the name.
Yes.
Type: GL_UNSIGNED_SHORT
Stride: 32
Components: 2
Starting Offset: 16
0) [27968, 34304]
1) [32704, 36224]
2) [32704, 34304]
3) [37440, 36224]
Ok. And what do you have at offset 24 (same others settings). Do you know which part of the screen is drawn ?
Type: GL_UNSIGNED_SHORT
Stride: 32
Components: 2
Starting Offset: 24
0) [0, 0]
1) [4752, 1936]
2) [0, 2048]
3) [4752, 3984]
How do I know what part of the screen is drawn?
When I lookup the state I just get a black screen.
The framebuffer contains three images the title screen just before the dialogue box (With the line) appears, a black screen and a black and white image showing garbage.
You can lookup the state on the line before the gldraw. You will see the content of the framebuffer before the draw. It is likely the area with the line. Could you post a screenshot of the framebuffer and the input texture
The line before glDrawElementsBaseVertex(...)
is glTextureBarrier()
.
Framebuffer
Texture
To compare here is the framebuffer and input texture from glDrawElementsBaseVertex(...).
Framebuffer
Texture
Ok so menu is drawn. However the line seem to be the background instead of a corrupted texture data. Is it correct ?
My guess is the lines from from where textures do not line up correctly. The texture seems to contain the dialogue box in two halves and when put together there is an errant gap left in the middle.
0) [27968, 34304]
1) [32704, 36224]
2) [32704, 34304]
3) [37440, 36224]
If you look at the vertices positions, you can see that both sprite are side by side. First one finish at 32704 (V2) and the second one start at 32704 (V3). But it feels like it misses some pixels. So it could be a wrong pixel tests or the bordure of texture is transparent.
Could you
1) enable the alpha view on the input texture and post it.
2) on the first tab of gl state, click "hide default configuration" and post the value for blending (search _EQ_
and _FUNC_
pattern if there isn't blend in the name).
3) on the shader program tab (maybe the 2nd or 3rd tab). Select the fragment GLSL shader and copy-past the beginning (it should be various define).
Here is the alpha view of the input texture.
I went to the first tab of glDrawElementsBaseVertex(...)
and selected 'Only show non-defaults. Here is anything that contains
BLENDor
FUNCin the name, I did not see any
EQ`.
GL_BLEND_DST - GL_ONE_MINUS_SRC_ALPHA
GL_BLEND_DEST_RGB - GL_ONE_MINUS_SRC_ALPHA
GL_BLEND_SRC - GL_SRC_ALPHA
GL_BLEND_SRC_RGB - GL_SRC_ALPHA
GL_DEPTH_FUNC - GL_GEQUAL
GL_TEXTURE0 --> GL_SAMPLER --> GL_TEXTURE_COMPARE_FUNC - GL_LEQUAL
GL_TEXTURE1 --> GL_SAMPLER --> GL_TEXTURE_COMPARE_FUNC - GL_LEQUAL
GL_TEXTURE3 --> GL_TEXTURE_2D --> GL_TEXTURE_COMPARE_FUNC - GL_LEQUAL
On the shaders tab I selected GL_FRAGMENT_SHADER
and here is the beginning.
#version 330 core
#extension GL_ARB_shading_language_420pack: require
#extension GL_ARB_separate_shader_objects: require
#extension GL_ARB_shader_image_load_store: require
#define pGL_ES 0
#define FRAGMENT_SHADER 1
#define ps_main main
#define PS_FST 1
#define PS_WMS 2
#define PS_WMT 2
#define PS_TEX_FMT 0
#define PS_DFMT 0
#define PS_DEPTH_FMT 0
#define PS_CHANNEL_FETCH 0
#define PS_URBAN_CHAOS_HLE 0
#define PS_TALES_OF_ABYSS_HLE 0
#define PS_TEX_IS_FB 0
#define PS_AEM 0
#define PS_TFX 1
#define PS_TCC 1
#define PS_ATST 0
#define PS_FOG 0
#define PS_CLR1 0
#define PS_FBA 0
#define PS_LTF 0
#define PS_AUTOMATIC_LOD 0
#define PS_MANUAL_LOD 0
#define PS_COLCLIP 0
#define PS_DATE 0
#define PS_TCOFFSETHACK 0
#define PS_BLEND_A 0
#define PS_BLEND_B 1
#define PS_BLEND_C 0
#define PS_BLEND_D 1
#define PS_IIP 1
#define PS_SHUFFLE 0
#define PS_READ_BA 0
#define PS_WRITE_RG 0
#define PS_FBMASK 0
#define PS_HDR 0
#define PS_PABE 0
//#version 420 // Keep it for editor detection
Here is the whole shader. https://pastebin.com/iLB97ikU
Ok, so SW blending is enabled.
#define PS_BLEND_A 0
#define PS_BLEND_B 1
#define PS_BLEND_C 0
#define PS_BLEND_D 1
Means
(Cs - Cd) * As + Cd
So the missing pixel is likely one with alpha == 0 (dark).
Hum, I just saw that WMS/WMT are 2. It triggers special clamping on texture coordinate. On the alpha texture could you tell me which first texel is dark, X position (on the rigth side of the menu). It should be around 296
The x position of the first black texel on the right is 303
.
Just to be sure, origin (i.e. 0) is on the left of the texture. I mean black on the alpha view of the texture (otherwise it is a white-transparent texel on the coloured texture).
The position of the first black texel in the alpha view on the right is 303
while from the left its 296
.
To be clear I mean this black vertical bar.
I had the same issues. Enabling HW Hacks with Sprite = Full and TC Offset X = 1 and TC Offset Y = 1 fixed the problem for me except for the scrolling background images.
Oh, somehow I missed the Texture offset
option earlier. Setting it to 2
seems to work around the lines including in the scrolling background images even without Sprite = Full
which still doesn't seem to have any effect. Setting it to 1
helps with the lines in the dialogue boxes, but not the moving backgrounds.
Even with this workaround I would still like to help in what little ways I can to see this issue solved without hacks. :)
Could you give me the value of the uniform "MinMax". There is a related tab for the constant. You will need to unfold Fragment Shader.
So far we have delta(X) == 296
and delta(U) == 297
. If my math is correct, we should sample last texel at position 295.9966
which will be truncated to 295
but the margin is very small only 0.0034
texels...
What happen if you remove - vec2(0.05f, 0.05f)
of this line : https://github.com/PCSX2/pcsx2/blob/master/plugins/GSdx/res/glsl/tfx_vgs.glsl#L55
I think it would be nice to dump the renderer frame buffer from a run of the SW renderer on the gsdump.
In the gsdx GUI there is a debug tab. You should enable the option called "dump", you can start at 4 and dump 3 calls. In theory, it should be the 5th. It will create png in the /tmp/GSdx....
directory.
Interesting images have rt0
and rt1
in their file names. rt0
is the framebuffer before the draw, and rt1
is the image after the draw. So you can easily check which draw call to use.
It would be nice to compare the position of the menu
between SW and HW. And if you can post the content of the txt file dumped too. It is the content of all GS registers, this way I will see the clamp setting
In the Uniforms
tabs under GL_FRAGMENT_SHADER
there is MinMax
is [0,0,1,1]
.
Next I tried rebuilding pcsx2 with this patch.
diff --git a/plugins/GSdx/res/glsl/tfx_vgs.glsl b/plugins/GSdx/res/glsl/tfx_vgs.glsl
index a14a4dbbc..ea6c05433 100644
--- a/plugins/GSdx/res/glsl/tfx_vgs.glsl
+++ b/plugins/GSdx/res/glsl/tfx_vgs.glsl
@@ -52,7 +52,7 @@ void vs_main()
// example: 133.0625 (133 + 1/16) should start from line 134, ceil(133.0625 - 0.05) still above 133
vec4 p;
- p.xy = vec2(i_p) - vec2(0.05f, 0.05f);
+ p.xy = vec2(i_p);
p.xy = p.xy * VertexScale - VertexOffset;
p.w = 1.0f;
p.z = float(z) * exp_min32;
This patch does seem to help somewhat, the line in the menu is gone, but now the two halves of the menu are slightly misaligned as is the line in the moving background image, but it introduced new flashing horizontal and vertical lines in other scenes.
Next I went to the debug tab of the gsdx GUI and enabled Dump GS data
and set Start of dump
at 4
and Length of dump
to 3
.
Doing this printed the following in the log.
Failed to create directory: /tmp/GS_HW_dump32/
Failed to create directory: /tmp/GS_SW_dump32/
However both directories were successfully created anyways, I guess this is an unrelated issue?
Moving on I then started the game, proceeded to the title screen menu and saw the line. Upon closing the game I only see many .txt
files in those two directories, but no image files. Am I doing something wrong?
$ ls /tmp/GS_*
/tmp/GS_HW_dump32:
00104_context.txt
/tmp/GS_SW_dump32:
00004_f0_gs_reg.txt 00037_f0_gs_reg.txt 00070_f0_gs_reg.txt
00005_f0_gs_reg.txt 00038_f0_gs_reg.txt 00071_f0_gs_reg.txt
00006_f0_gs_reg.txt 00039_f0_gs_reg.txt 00072_f0_gs_reg.txt
00007_f0_gs_reg.txt 00040_f0_gs_reg.txt 00073_f0_gs_reg.txt
00008_f0_gs_reg.txt 00041_f0_gs_reg.txt 00074_f0_gs_reg.txt
00009_f0_gs_reg.txt 00042_f0_gs_reg.txt 00075_f0_gs_reg.txt
00010_f0_gs_reg.txt 00043_f0_gs_reg.txt 00076_f0_gs_reg.txt
00011_f0_gs_reg.txt 00044_f0_gs_reg.txt 00077_f0_gs_reg.txt
00012_f0_gs_reg.txt 00045_f0_gs_reg.txt 00078_f0_gs_reg.txt
00013_f0_gs_reg.txt 00046_f0_gs_reg.txt 00079_f0_gs_reg.txt
00014_f0_gs_reg.txt 00047_f0_gs_reg.txt 00080_f0_gs_reg.txt
00015_f0_gs_reg.txt 00048_f0_gs_reg.txt 00081_f0_gs_reg.txt
00016_f0_gs_reg.txt 00049_f0_gs_reg.txt 00082_f0_gs_reg.txt
00017_f0_gs_reg.txt 00050_f0_gs_reg.txt 00083_f0_gs_reg.txt
00018_f0_gs_reg.txt 00051_f0_gs_reg.txt 00084_f0_gs_reg.txt
00019_f0_gs_reg.txt 00052_f0_gs_reg.txt 00085_f0_gs_reg.txt
00020_f0_gs_reg.txt 00053_f0_gs_reg.txt 00086_f0_gs_reg.txt
00021_f0_gs_reg.txt 00054_f0_gs_reg.txt 00087_f0_gs_reg.txt
00022_f0_gs_reg.txt 00055_f0_gs_reg.txt 00088_f0_gs_reg.txt
00023_f0_gs_reg.txt 00056_f0_gs_reg.txt 00089_f0_gs_reg.txt
00024_f0_gs_reg.txt 00057_f0_gs_reg.txt 00090_f0_gs_reg.txt
00025_f0_gs_reg.txt 00058_f0_gs_reg.txt 00091_f0_gs_reg.txt
00026_f0_gs_reg.txt 00059_f0_gs_reg.txt 00092_f0_gs_reg.txt
00027_f0_gs_reg.txt 00060_f0_gs_reg.txt 00093_f0_gs_reg.txt
00028_f0_gs_reg.txt 00061_f0_gs_reg.txt 00094_f0_gs_reg.txt
00029_f0_gs_reg.txt 00062_f0_gs_reg.txt 00095_f0_gs_reg.txt
00030_f0_gs_reg.txt 00063_f0_gs_reg.txt 00096_f0_gs_reg.txt
00031_f0_gs_reg.txt 00064_f0_gs_reg.txt 00097_f0_gs_reg.txt
00032_f0_gs_reg.txt 00065_f0_gs_reg.txt 00098_f0_gs_reg.txt
00033_f0_gs_reg.txt 00066_f0_gs_reg.txt 00099_f0_gs_reg.txt
00034_f0_gs_reg.txt 00067_f0_gs_reg.txt 00100_f0_gs_reg.txt
00035_f0_gs_reg.txt 00068_f0_gs_reg.txt 00101_f0_gs_reg.txt
00036_f0_gs_reg.txt 00069_f0_gs_reg.txt 00102_f0_gs_reg.txt
I don't remember the name but there are options to select ehich texture to dump in the same tab
I enabled Save texture
, but it didn't make a difference. So I next enabled everything, Print GL error
, Save RT
, Save Texture
, GLSL compilation
, Save Frame
and Save Depth
.
This seemed to work better.
$ ls GS_*
GS_HW_dump32:
00104_context.txt 00104_f0_rz0_02300_Z_16S_alpha.png
00104_f0_rt0_00000_C_32.png 00104_f0_rz1_02300_Z_16S.png
00104_f0_rt1_00000_C_32.png 00104_f0_rz1_02300_Z_16S_alpha.png
00104_f0_rz0_02300_Z_16S.png
GS_SW_dump32:
00004_f0_gs_reg.txt 00029_f0_gs_reg.txt 00054_f0_gs_reg.txt 00079_f0_gs_reg.txt
00005_f0_gs_reg.txt 00030_f0_gs_reg.txt 00055_f0_gs_reg.txt 00080_f0_gs_reg.txt
00006_f0_gs_reg.txt 00031_f0_gs_reg.txt 00056_f0_gs_reg.txt 00081_f0_gs_reg.txt
00007_f0_gs_reg.txt 00032_f0_gs_reg.txt 00057_f0_gs_reg.txt 00082_f0_gs_reg.txt
00008_f0_gs_reg.txt 00033_f0_gs_reg.txt 00058_f0_gs_reg.txt 00083_f0_gs_reg.txt
00009_f0_gs_reg.txt 00034_f0_gs_reg.txt 00059_f0_gs_reg.txt 00084_f0_gs_reg.txt
00010_f0_gs_reg.txt 00035_f0_gs_reg.txt 00060_f0_gs_reg.txt 00085_f0_gs_reg.txt
00011_f0_gs_reg.txt 00036_f0_gs_reg.txt 00061_f0_gs_reg.txt 00086_f0_gs_reg.txt
00012_f0_gs_reg.txt 00037_f0_gs_reg.txt 00062_f0_gs_reg.txt 00087_f0_gs_reg.txt
00013_f0_gs_reg.txt 00038_f0_gs_reg.txt 00063_f0_gs_reg.txt 00088_f0_gs_reg.txt
00014_f0_gs_reg.txt 00039_f0_gs_reg.txt 00064_f0_gs_reg.txt 00089_f0_gs_reg.txt
00015_f0_gs_reg.txt 00040_f0_gs_reg.txt 00065_f0_gs_reg.txt 00090_f0_gs_reg.txt
00016_f0_gs_reg.txt 00041_f0_gs_reg.txt 00066_f0_gs_reg.txt 00091_f0_gs_reg.txt
00017_f0_gs_reg.txt 00042_f0_gs_reg.txt 00067_f0_gs_reg.txt 00092_f0_gs_reg.txt
00018_f0_gs_reg.txt 00043_f0_gs_reg.txt 00068_f0_gs_reg.txt 00093_f0_gs_reg.txt
00019_f0_gs_reg.txt 00044_f0_gs_reg.txt 00069_f0_gs_reg.txt 00094_f0_gs_reg.txt
00020_f0_gs_reg.txt 00045_f0_gs_reg.txt 00070_f0_gs_reg.txt 00095_f0_gs_reg.txt
00021_f0_gs_reg.txt 00046_f0_gs_reg.txt 00071_f0_gs_reg.txt 00096_f0_gs_reg.txt
00022_f0_gs_reg.txt 00047_f0_gs_reg.txt 00072_f0_gs_reg.txt 00097_f0_gs_reg.txt
00023_f0_gs_reg.txt 00048_f0_gs_reg.txt 00073_f0_gs_reg.txt 00098_f0_gs_reg.txt
00024_f0_gs_reg.txt 00049_f0_gs_reg.txt 00074_f0_gs_reg.txt 00099_f0_gs_reg.txt
00025_f0_gs_reg.txt 00050_f0_gs_reg.txt 00075_f0_gs_reg.txt 00100_f0_gs_reg.txt
00026_f0_gs_reg.txt 00051_f0_gs_reg.txt 00076_f0_gs_reg.txt 00101_f0_gs_reg.txt
00027_f0_gs_reg.txt 00052_f0_gs_reg.txt 00077_f0_gs_reg.txt 00102_f0_gs_reg.txt
00028_f0_gs_reg.txt 00053_f0_gs_reg.txt 00078_f0_gs_reg.txt
However all the .png
files just show black...I guess I'm still missing something?
Both the Save RT
and Save Depth
options create .png
files in /tmp/GS_HW_dump32/
, but they are always just show a black screen.
Looking at the framebuffer for many calls in apitrace always includes a black screen. I suppose this is what PCSX2 is dumping?
You should replay with the sw renderer. Coud you post your gsdx.ini file
Oops, I forgot to switch it to software...
This time I did and selected Save RT
, Save Texture
, Save Frame
and Save Depth
.
$ ls GS_*
GS_HW_dump32:
GS_SW_dump32:
00004_f0_fr1_00000_C_32.png 00029_f0_gs_reg.txt 00055_f0_fr1_00000_C_32.png 00080_f0_gs_reg.txt
00004_f0_gs_reg.txt 00030_f0_fr1_00000_C_32.png 00055_f0_gs_reg.txt 00081_f0_fr1_00000_C_32.png
00005_f0_fr1_00000_C_32.png 00030_f0_gs_reg.txt 00056_f0_fr1_00000_C_32.png 00081_f0_gs_reg.txt
00005_f0_gs_reg.txt 00031_f0_fr1_00000_C_32.png 00056_f0_gs_reg.txt 00082_f0_fr1_00000_C_32.png
00006_f0_fr1_00000_C_32.png 00031_f0_gs_reg.txt 00057_f0_fr1_00000_C_32.png 00082_f0_gs_reg.txt
00006_f0_gs_reg.txt 00032_f0_fr1_00000_C_32.png 00057_f0_gs_reg.txt 00083_f0_fr1_00000_C_32.png
00007_f0_fr1_00000_C_32.png 00032_f0_gs_reg.txt 00058_f0_fr1_00000_C_32.png 00083_f0_gs_reg.txt
00007_f0_gs_reg.txt 00033_f0_fr1_00000_C_32.png 00058_f0_gs_reg.txt 00084_f0_fr1_00000_C_32.png
00008_f0_fr1_00000_C_32.png 00033_f0_gs_reg.txt 00059_f0_fr1_00000_C_32.png 00084_f0_gs_reg.txt
00008_f0_gs_reg.txt 00034_f0_fr1_00000_C_32.png 00059_f0_gs_reg.txt 00085_f0_fr1_00000_C_32.png
00009_f0_fr1_00000_C_32.png 00034_f0_gs_reg.txt 00060_f0_fr1_00000_C_32.png 00085_f0_gs_reg.txt
00009_f0_gs_reg.txt 00035_f0_fr1_00000_C_32.png 00060_f0_gs_reg.txt 00086_f0_fr1_00000_C_32.png
00010_f0_fr1_00000_C_32.png 00035_f0_gs_reg.txt 00061_f0_fr1_00000_C_32.png 00086_f0_gs_reg.txt
00010_f0_gs_reg.txt 00036_f0_fr1_00000_C_32.png 00061_f0_gs_reg.txt 00087_f0_fr1_00000_C_32.png
00011_f0_fr1_00000_C_32.png 00036_f0_gs_reg.txt 00062_f0_fr1_00000_C_32.png 00087_f0_gs_reg.txt
00011_f0_gs_reg.txt 00037_f0_fr1_00000_C_32.png 00062_f0_gs_reg.txt 00088_f0_fr1_00000_C_32.png
00012_f0_fr1_00000_C_32.png 00037_f0_gs_reg.txt 00063_f0_fr1_00000_C_32.png 00088_f0_gs_reg.txt
00012_f0_gs_reg.txt 00038_f0_fr1_00000_C_32.png 00063_f0_gs_reg.txt 00089_f0_fr1_00000_C_32.png
00013_f0_fr1_00000_C_32.png 00038_f0_gs_reg.txt 00064_f0_fr1_00000_C_32.png 00089_f0_gs_reg.txt
00013_f0_gs_reg.txt 00039_f0_fr1_00000_C_32.png 00064_f0_gs_reg.txt 00090_f0_fr1_00000_C_32.png
00014_f0_fr1_00000_C_32.png 00039_f0_gs_reg.txt 00065_f0_fr1_00000_C_32.png 00090_f0_gs_reg.txt
00014_f0_gs_reg.txt 00040_f0_fr1_00000_C_32.png 00065_f0_gs_reg.txt 00091_f0_fr1_00000_C_32.png
00015_f0_fr1_00000_C_32.png 00040_f0_gs_reg.txt 00066_f0_fr1_00000_C_32.png 00091_f0_gs_reg.txt
00015_f0_gs_reg.txt 00041_f0_fr1_00000_C_32.png 00066_f0_gs_reg.txt 00092_f0_fr1_00000_C_32.png
00016_f0_fr1_00000_C_32.png 00041_f0_gs_reg.txt 00067_f0_fr1_00000_C_32.png 00092_f0_gs_reg.txt
00016_f0_gs_reg.txt 00042_f0_fr1_00000_C_32.png 00067_f0_gs_reg.txt 00093_f0_fr1_00000_C_32.png
00017_f0_fr1_00000_C_32.png 00042_f0_gs_reg.txt 00068_f0_fr1_00000_C_32.png 00093_f0_gs_reg.txt
00017_f0_gs_reg.txt 00043_f0_fr1_00000_C_32.png 00068_f0_gs_reg.txt 00094_f0_fr1_00000_C_32.png
00018_f0_fr1_00000_C_32.png 00043_f0_gs_reg.txt 00069_f0_fr1_00000_C_32.png 00094_f0_gs_reg.txt
00018_f0_gs_reg.txt 00044_f0_fr1_00000_C_32.png 00069_f0_gs_reg.txt 00095_f0_fr1_00000_C_32.png
00019_f0_fr1_00000_C_32.png 00044_f0_gs_reg.txt 00070_f0_fr1_00000_C_32.png 00095_f0_gs_reg.txt
00019_f0_gs_reg.txt 00045_f0_fr1_00000_C_32.png 00070_f0_gs_reg.txt 00096_f0_fr1_00000_C_32.png
00020_f0_fr1_00000_C_32.png 00045_f0_gs_reg.txt 00071_f0_fr1_00000_C_32.png 00096_f0_gs_reg.txt
00020_f0_gs_reg.txt 00046_f0_fr1_00000_C_32.png 00071_f0_gs_reg.txt 00097_f0_fr1_00000_C_32.png
00021_f0_fr1_00000_C_32.png 00046_f0_gs_reg.txt 00072_f0_fr1_00000_C_32.png 00097_f0_gs_reg.txt
00021_f0_gs_reg.txt 00047_f0_fr1_00000_C_32.png 00072_f0_gs_reg.txt 00098_f0_fr1_00000_C_32.png
00022_f0_fr1_00000_C_32.png 00047_f0_gs_reg.txt 00073_f0_fr1_00000_C_32.png 00098_f0_gs_reg.txt
00022_f0_gs_reg.txt 00048_f0_fr1_00000_C_32.png 00073_f0_gs_reg.txt 00099_f0_fr1_00000_C_32.png
00023_f0_fr1_00000_C_32.png 00048_f0_gs_reg.txt 00074_f0_fr1_00000_C_32.png 00099_f0_gs_reg.txt
00023_f0_gs_reg.txt 00049_f0_fr1_00000_C_32.png 00074_f0_gs_reg.txt 00100_f0_fr1_00000_C_32.png
00024_f0_fr1_00000_C_32.png 00049_f0_gs_reg.txt 00075_f0_fr1_00000_C_32.png 00100_f0_gs_reg.txt
00024_f0_gs_reg.txt 00050_f0_fr1_00000_C_32.png 00075_f0_gs_reg.txt 00101_f0_fr1_00000_C_32.png
00025_f0_fr1_00000_C_32.png 00050_f0_gs_reg.txt 00076_f0_fr1_00000_C_32.png 00101_f0_gs_reg.txt
00025_f0_gs_reg.txt 00051_f0_fr1_00000_C_32.png 00076_f0_gs_reg.txt 00102_f0_fr1_00000_C_32.png
00026_f0_fr1_00000_C_32.png 00051_f0_gs_reg.txt 00077_f0_fr1_00000_C_32.png 00102_f0_gs_reg.txt
00026_f0_gs_reg.txt 00052_f0_fr1_00000_C_32.png 00077_f0_gs_reg.txt 00103_f0_fr1_00000_C_32.png
00027_f0_fr1_00000_C_32.png 00052_f0_gs_reg.txt 00078_f0_fr1_00000_C_32.png 00104_context.txt
00027_f0_gs_reg.txt 00053_f0_fr1_00000_C_32.png 00078_f0_gs_reg.txt 00104_f0_rt0_00000_C_32.png
00028_f0_fr1_00000_C_32.png 00053_f0_gs_reg.txt 00079_f0_fr1_00000_C_32.png 00104_f0_rt1_00000_C_32.png
00028_f0_gs_reg.txt 00054_f0_fr1_00000_C_32.png 00079_f0_gs_reg.txt 00104_f0_rz0_02300_Z_16S.png
00029_f0_fr1_00000_C_32.png 00054_f0_gs_reg.txt 00080_f0_fr1_00000_C_32.png 00104_f0_rz1_02300_Z_16S.png
However again, all of the .png
files are just black screens, some are larger than others.
Here is my GSdx.ini
.
AspectRatio = 1
CaptureHeight = 480
CaptureWidth = 640
MaxAnisotropy = 0
ModeHeight = 480
ModeWidth = 640
NTSC_Saturation = 1
Renderer = 13
ShadeBoost = 0
ShadeBoost_Brightness = 50
ShadeBoost_Contrast = 50
ShadeBoost_Saturation = 50
TVShader = 0
UserHacks = 1
UserHacks_AutoFlush = 0
UserHacks_CPU_FB_Conversion = 0
UserHacks_DisableDepthSupport = 0
UserHacks_DisableGsMemClear = 0
UserHacks_DisablePartialInvalidation = 0
UserHacks_HalfPixelOffset = 0
UserHacks_SkipDraw = 0
UserHacks_SpriteHack = 0
UserHacks_TCOffset = 0
UserHacks_TextureInsideRt = 0
UserHacks_TriFilter = 0
UserHacks_WildHack = 0
UserHacks_align_sprite_X = 0
UserHacks_merge_pp_sprite = 0
UserHacks_round_sprite_offset = 0
UserHacks_unscale_point_line = 0
aa1 = 1
accurate_blending_unit = 3
accurate_date = 1
capture_enabled = 0
capture_out_dir = /tmp/GSdx_Capture
capture_threads = 4
clut_load_before_draw = 0
crc_hack_level = 2
debug_glsl_shader = 0
debug_opengl = 0
disable_hw_gl_draw = 0
dump = 1
extrathreads = 6
extrathreads_height = 4
filter = 2
force_texture_clear = 0
fxaa = 0
interlace = 7
large_framebuffer = 1
linear_present = 1
mipmap = 1
mipmap_hw = 2
osd_fontname = /usr/share/fonts/TTF/LiberationSerif-Regular.ttf
osd_fontsize = 24
osd_indicator_enabled = 0
osd_log_enabled = 1
osd_log_speed = 6
osd_max_log_messages = 3
osd_monitor_enabled = 0
osd_transparency = 25
override_GL_ARB_clear_texture = -1
override_GL_ARB_clip_control = -1
override_GL_ARB_copy_image = -1
override_GL_ARB_direct_state_access = -1
override_GL_ARB_draw_buffers_blend = -1
override_GL_ARB_get_texture_sub_image = -1
override_GL_ARB_gpu_shader5 = -1
override_GL_ARB_shader_image_load_store = -1
override_GL_ARB_texture_barrier = -1
override_GL_ARB_viewport_array = -1
override_GL_EXT_texture_filter_anisotropic = -1
override_geometry_shader = -1
paltex = 1
png_compression_level = 1
preload_frame_with_gs_data = 0
save = 1
savef = 1
savel = 3
saven = 4
savet = 1
savez = 1
shaderfx = 0
shaderfx_conf = shaders/GSdx_FX_Settings.ini
shaderfx_glsl = shaders/GSdx.fx
upscale_multiplier = 1
vsync = 0
wrap_gs_mem = 0
Strange. How do you run it ? You shouldn't use apitrace here.
And it should only create 10 images by draw call. You have way too much
I am running it with Boot Iso (fast)
from the System
drop down menu in PCSX2. I am not using apitrace here.
PCSX2 version:
pcsx2-2018.04.06_1292cd5_master-x86_64-1_git
PCSX2 options: Only occurs with OpenGL and not software and other options do not seem to make a difference.
Plugins used:
GSdx (GCC 7.3.0 SSE2/AVX) 1.1.0 [libGSdx]
GSdx (GCC 7.3.0, SSE2) 1.0.0 [libGSdx-legacy-1.0.0]
Renderer:
OpenGL
(Software is not affected) Resolution:Native
Description of the issue: When playing the game
Marie to Elie no Atelier: Salburg no Renkinjutsushi 1 & 2
with either the Japanese iso or an iso patched with the new English translation various parts of the game will have vertical lines, these lines can be stationary, mobile or flashing. Most commonly this is seen on every dialogue box and can be seen on the title screen and right after starting the game for easy testing.I've included two gs dumps showing two examples, the second one is a multiframe gs dump.
http://ks392457.kimsufi.com/orbea/stuff/trace/gsdx_Atelier-marie1.gs.xz http://ks392457.kimsufi.com/orbea/stuff/trace/gsdx_Atelier-marie2.gs.xz
!(1)[https://i.imgur.com/enG4ckn.png] !(2)[https://i.imgur.com/wHbO9Zf.png]
How to reproduce the issue:
Last known version to work: I went back to commit 5c7d9d08e without any changes in behavior.
PC specifications: OS:
Slackware64-current
GK110B [GeForce GTX 780 Ti]
Linux-4.14.29
mesa-2018.03.24_776e6af_master-x86_64-1_git