..:: PCSX2 Forums ::..

Full Version: GSdx 1.0
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
@all can someone confirm the crash with accurate date on recent amd gpu with latest driver. Tests on latest (future 12.0) are more than welcome too
(05-17-2016, 07:42 PM)gregory Wrote: [ -> ]@TransparentBlue
I would be interested by 2 gs dump of terminator. Please generate dump on the SW renderer.
First one, on the light issue. The second one, on the night vision issue.


Sure.
(05-17-2016, 10:37 PM)gregory Wrote: [ -> ]@all can someone confirm the crash with accurate date on recent amd gpu with latest driver. Tests on latest (future 12.0) are more than welcome too

AMD r9 380 with 15.2.1 (windows) drivers, tested OpenGL at 2x scaling.
HW Hacks off
Accurate Date enabled.
Blending set to medium.

Tested Jak X
Didn't crash.
Still performs slow.
Enabling and disable accurate date didn't noticeable change alter performance (I don't recall this option having much of an impact before).
With the current drives, rendering of text is more correct on builds that predate the addition of the AMD dual-source blending hack.
The test over on the forums still show yellow, so I don't know what's going on here.

Tested 4 edges demo
Didn't crash.
Reduction in GS usage by over 50% (1st scene tested), this performance boost is not related to accurate data as this was observed with it off (as well as on). but whatever you did made a difference.
This demo has a fog effect (1st scene and a couple others later on) which was not present on the older version of GSDX I tested, and is bugged on the current git build.

Tested neoscientists d136b demo
Didn't crash.

I don't know if any of these made particular use of accurate date.
Hum, the trick is that there is actually several way to implement the DATE (well I implemented it in severals way). And only 1 on 4 method uses the gl extension that generates the FlatOut's crash.

@Flatout could you tell us the game/scene where you got the crash.

Here the mess to select the DATE rendering. You need to hit the DATE_GL42 = true line. So DATE that write random alpha value with enough primitives Wink Fifa ought to hit the path.
Code:
    if (DATE) {
        if (m_prim_overlap == PRIM_OVERLAP_NO || m_texture_shuffle) {
            // It is way too complex to emulate texture shuffle with DATE. So just use
            // the slow but accurate algo
            require_barrier = true;
            DATE_GL45 = true;
            DATE = false;
        } else if (m_accurate_date && om_csel.wa /* FIXME Check the msb bit of the mask instead + the dfmt*/
                && (!m_context->TEST.ATE || m_context->TEST.ATST == ATST_ALWAYS)) {
            // Performance note: check alpha range with GetAlphaMinMax()
            // Note: all my dump are already above 120fps, but it seems to reduce GPU load
            // with big upscaling
            GetAlphaMinMax();
            if (m_context->TEST.DATM && m_vt.m_alpha.max < 128) {
                // Only first pixel (write 0) will pass (alpha is 1)
                GL_PERF("Fast DATE with alpha %d-%d", m_vt.m_alpha.min, m_vt.m_alpha.max);
                DATE_one = true;
            } else if (!m_context->TEST.DATM && m_vt.m_alpha.min >= 128) {
                // Only first pixel (write 1) will pass (alpha is 0)
                GL_PERF("Fast DATE with alpha %d-%d", m_vt.m_alpha.min, m_vt.m_alpha.max);
                DATE_one = true;
            } else if ((m_vt.m_primclass == GS_SPRITE_CLASS && m_drawlist.size() < 50) || (m_index.tail < 100)) {
                // texture barrier will split the draw call into n draw call. It is very efficient for
                // few primitive draws. Otherwise it sucks.
                GL_PERF("Slower DATE with alpha %d-%d", m_vt.m_alpha.min, m_vt.m_alpha.max);
                require_barrier = true;
                DATE_GL45 = true;
                DATE = false;
            } else {
                GL_PERF("Slow DATE with alpha %d-%d", m_vt.m_alpha.min, m_vt.m_alpha.max);

                if (GLLoader::found_GL_ARB_shader_image_load_store) {
                    DATE_GL42 = true;
                } else {
                    require_barrier = true;
                    DATE_GL45 = true;
                    DATE = false;
                }
            }
        }
        // Will save my life !
        ASSERT(!(DATE_GL45 && DATE_one));
        ASSERT(!(DATE_GL42 && DATE_one));
        ASSERT(!(DATE_GL42 && DATE_GL45));
    }

(Side note: the demo could be the channel stuff).
(05-18-2016, 08:54 PM)gregory Wrote: [ -> ]Hum, the trick is that there is actually several way to implement the DATE (well I implemented it in severals way). And only 1 on 4 method uses the gl extension that generates the FlatOut's crash.

@Flatout could you tell us the game/scene where you got the crash.

Here the mess to select the DATE rendering. You need to hit the DATE_GL42 = true line. So DATE that write random alpha value with enough primitives Wink Fifa ought to hit the path.
I used WRC II, it affects all 3D scenes(for any affected game). I know Ridge Racer V also crashes with it.

I just tried FIFA 2003, which does crash.
(05-18-2016, 08:54 PM)gregory Wrote: [ -> ]Here the mess to select the DATE rendering. You need to hit the DATE_GL42 = true line. So DATE that write random alpha value with enough primitives Wink Fifa ought to hit the path.
<code>
(Side note: the demo could be the channel stuff).
demo link : http://www.pouet.net/prod.php?which=24552

Code:
    if (DATE) {
        GL_PERF("Slow DATE with alpha %d-%d", m_vt.m_alpha.min, m_vt.m_alpha.max);

        if (GLLoader::found_GL_ARB_shader_image_load_store) {
            DATE_GL42 = true;
        } else {
            throw;
        }
        // Will save my life !
        ASSERT(!(DATE_GL45 && DATE_one));
        ASSERT(!(DATE_GL42 && DATE_one));
        ASSERT(!(DATE_GL42 && DATE_GL45));
    }
...and compile! now to test

(GLLoader::found_GL_ARB_shader_image_load_store is true for me)
The second scene of this demo uses DATE (hit a breakpoint I set), no crash even with this build.

On the plus side, I can now produce a build without the AMD driver hackfix code, whatever half-fix AMD did does a better job.

(05-18-2016, 09:16 PM)FlatOut Wrote: [ -> ]I used WRC II, it affects all 3D scenes(for any affected game). I know Ridge Racer V also crashes with it.

I just tried FIFA 2003, which does crash.

I have non of those >.>
(05-18-2016, 10:12 PM)Ge-Force Wrote: [ -> ]I have non of those >.>
And I don't have Jak X. I do have Jak 3 though, and that doesn't crash. So I assume Jak X wouldn't crash on me either.
Ok let's forget about it. I updated the option behavior. Fast paths are always enabled now, so everybody can enjoy it. I will keep it the option for the slow path and for people with AMD card Wink
@TransparentBlue
I made a couple of commits for Terminator3. Could you test them ? Be sure to test various scene. I'm afraid some effect variation could be wrongly supported.
(05-20-2016, 08:07 PM)gregory Wrote: [ -> ]@TransparentBlue
I made a couple of commits for Terminator3. Could you test them ?  Be sure to test various scene. I'm afraid some effect variation could be wrongly supported.
Went through the whole game just to be sure, made screenshots and dumps on each of the issues I found, there is probably some repeats of the same issue but better safe than sorry.

Model blinking through other model in scan vision (only instance in the game I could find and didn't happen in previous revisions):
[Image: AgjVUZ.png] [Image: yMWnQI.png]

Blacked out geometry in scan vision (SW renderer isn't perfect either as the white haze in the upper part of the image shouldn't be visible through everything) :
[Image: kfGbJo.png] [Image: YBPR5B.png]

Washed out/darker color over some texture with some shards of correct color popping up both with and without scan vision (the neon sign blinks so that why it looks different in the second screenshot):
[Image: etu6uy.png] [Image: cJFPYo.png]
[Image: FrVY46.png] [Image: tt2yVz.png]

Garbage graphics wall N°1:
[Image: dKzKBP.png] [Image: G0NCM7.png]

Background effect forming a wall over everything else:
[Image: eAQ11a.png] [Image: BOKO6Q.png]

Blacked out Geometry in cutscene:
[Image: cnAfqY.png] [Image: 9oS5Fd.png]

Missing fog N°1:
[Image: 71qsQ0.png] [Image: AcHUpV.png]

Opaque wall N°1:
[Image: VQl8aS.png] [Image: MDicOW.png]

Opaque wall N°2:
[Image: RSjuuM.png] [Image: ZCEogV.png]

Wall of garbage graphics N°2:
[Image: v9oPIL.png] [Image: JLCbyN.png]

Wall of garbage graphics N°3:
[Image: VvTflP.png] [Image: L2T8qx.png]

Missing fog N°2:
[Image: SpwSOS.png] [Image: HJS67J.png]

Wall of garbage graphics N°4:
[Image: egVV0k.png] [Image: kxjfio.png]

Wall of garbage graphics N°5:
[Image: zfnp3v.png] [Image: 6NXjHc.png]

Missing fog N°3:
[Image: 7fnSDT.png] [Image: jzNc34.png]


Maybe a bit overkill but that's all the visibly broken stuff in the game outside of the few effects and lights that are visible through solid objects even with the software renderer when they shouldn't.