(Discussion) Futuremark 3DMark Time Spy Directx 12 Benchmark

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

ThatBuzzkiller

Golden Member
Nov 14, 2014
1,120
260
136
I meant GPUs don't need to support Async Compute to be labeled DX12 compatible. Example, Fermi, Kepler, Maxwell etc.

It's an optional feature.

I get that but my point was that async compute IS tied to a feature level and the same goes for resource binding along with ExecuteIndirect funtionality ...

My understanding is that the lower level nature of Direct3D 12/Vulkan exposes a GPU's asynchronous compute capabilities for programmers to use, thus making D3D12/Vulkan support a prerequisite for asynchronous compute, but technically asynchronous compute is still not an official feature of those APIs.

On the subject of asynchronous compute and Time Spy, for kicks I switched my brother's Radeon 260X into my PC so I could test it (Time Spy refuses to run on his PC for whatever reason). I had seen results from that Overclock3D thread with a 7870 showing no gain from asynchronous compute, and Mahigan explained that's probably because at that level and below all of the GPU's compute power is probably being used already. When a GPU can't provide the resources for async compute, it can even cause internal lag and slow down rendering, as seen with Maxwell chips trying to use a-compute at crazy detail levels in AOTS vs running with a-compute turned off. My tests showed that to pretty much be the case with a 260X -- there was no benefit from turning a-compute on, and in fact the scores with a-compute on were slightly lower than the scores with it off.

Point is, asynchronous compute, at least its implementation in Time Spy, does not help low-end AMD GPUs like the 260X.

The misunderstanding stops at the above reply as for that anecdote as long as the app can push the rasterizer hard enough and the shading work can be done independently you will pretty much see a gain with async compute ...
 

Hitman928

Diamond Member
Apr 15, 2012
5,622
8,847
136
Buzzkiller, have you been able to read through the documentation for time spy? I'm curious what you think of their implementation of async compute and if it really allows for concurrent rendering and compute functionality or not.
 

Red Hawk

Diamond Member
Jan 1, 2011
3,266
169
106
The misunderstanding stops at the above reply as for that anecdote as long as the app can push the rasterizer hard enough and the shading work can be done independently you will pretty much see a gain with async compute ...

Sure, that's why I said "at least its implementation in Time Spy". It could be different depending on the app, but at least in Time Spy specifically when I tested a low-end GPU there was no gain with async compute, and I've seen similar results from other users with low end GPUs.
 

Samwell

Senior member
May 10, 2015
225
47
101
I get that but my point was that async compute IS tied to a feature level and the same goes for resource binding along with ExecuteIndirect funtionality ...

No, that's not true. Async and ExecuteIndirect are not bound to feature levels. Only resource binding is feature level bound. Async compute can be used in any feature level of DX12 and is a basic feature. All DX12 games at the moment use feature level 11_0, so following your argumentation, there would be no game with async. But that's not the case.

I meant GPUs don't need to support Async Compute to be labeled DX12 compatible. Example, Fermi, Kepler, Maxwell etc.

It's an optional feature.

Also wrong, it's not optional. The hardware implementation with concurrent execution is optional. Every GPU needs the ability to handle Async code, but this can be done via driver like it seems Kepler/Maxwell or on hardware level like GCN. This is undefined.
 
Last edited:

FM_Jarnis

Member
Jul 16, 2016
28
1
0
I think the FL_11 approach is fine -- provided they are planning on a real FL_12 test too. I would expect this is just the first couple of tests. I bet there will be a VR focused one, as well as a FL_12 one coming in the future too.

That is indeed the long term plan. Tho first we'll release VRMark which is designed for "lowest common denominator in VR", so, DX11 - but that is a separate product, not part of 3DMark.

Some background on Time Spy;


  • Initially Time Spy was targeted for launch late 2015 / early 2016. Back then the market share of graphics cards that could actually support FL12 was.. umm... "limited". Unfortunately both maturity of DX12 drivers and some really complex issues in implementing a brand new DX12 engine delayed it considerably. Patching a benchmark workload after the fact is really really really bad, so we rather take the time to do it right.

  • Average consumers take it REALLY badly if a new benchmark says "you can't run it on your brand new (well, 3 year old) system because of X". This also directed to supporting FL11. On CPU test we took a "bold step" of requiring SSSE3 and.. uuh.. I've apologized today already to four customers that no, their Phenom II or Opteron can't run the test.

  • A FL12 benchmark with fallbacks to FL11 would not really be feasible - it would basically be two separate benchmarks. FL12 adds some interesting features and fully exploiting those would take a dedicated approach.

  • Pretty much all games target DX12 FL11 and even there most current game engines are doing DX12 in a way that is "oh we just ported our DX11 code". Time Spy is at least taking one step further with an engine developed from the ground up 'the DX12 way' (which is one of the reasons why it took a while - oh the tales our engine team could tell of DX12 features where spec says one thing and driver implementations do... other things. A phrase "What? Nobody is doing it like this" is something that was told to us by driver developers more than once...).
So I'd say Time Spy is a legit tool that will reflect how games could perform when a pure DX12 engine targets the most widely used hardware base (ie, DX12 FL11). Yes, some newest cards could use code paths for FL12 and I'm sure some games will offer those, but the pool of compatible hardware is still very small. This is, after all, our first full blown DX12 benchmark, so have to start from the obvious first step.
 
Last edited:

Red Hawk

Diamond Member
Jan 1, 2011
3,266
169
106
That is indeed the long term plan. Tho first we'll release VRMark which is designed for "lowest common denominator in VR", so, DX11 - but that is a separate product, not part of 3DMark.

Some background on Time Spy;


  • Initially Time Spy was targeted for launch late 2015 / early 2016. Back then the availability of graphics cards that could actually support FL12 was.. umm... "limited". Unfortunately both maturity of DX12 drivers and some really complex issues in implementing a brand new DX12 engine delayed it considerably. Patching a benchmark workload after the fact is really really really bad, so we rather take the time to do it right.

  • Average consumers take it REALLY badly if a new benchmark says "you can't run it on your brand new (well, 3 year old) system because of X". This also directed to supporting FL11. On CPU test we took a "bold step" of requiring SSSE3 and.. uuh.. I've apologized today already to four customers that no, their Phenom II or Opteron can't run the test.

  • A FL12 benchmark with fallbacks to FL11 would not really be feasible - it would basically be two separate benchmarks. FL12 adds some interesting features and fully exploiting those would take a dedicated approach.

  • Pretty much all games target DX12 FL11 and even there most current game engines are doing DX12 in a way that is "oh we just ported our DX11 code". Time Spy is at least taking one step further with an engine developed from the ground up 'the DX12 way' (which is one of the reasons why it took a while - oh the tales our engine team could tell of DX12 features where spec says one thing and driver implementations do... other things. A phrase "What? Nobody is doing it like this" is something that was told to us by driver developers more than once...).
So I'd say Time Spy is a legit tool that will reflect how games could perform when a pure DX12 engine targets the most widely used hardware base (ie, DX12 FL11). Yes, some newest cards could use code paths for FL12 and I'm sure some games will offer those, but the pool of compatible hardware is still very small. This is, after all, our first full blown DX12 benchmark, so have to start from the obvious first step.

Welcome FM_Jarnis! I take it you were involved with the development of Time Spy? Thank you for the bit of insight. I understand aiming for a common denominator with FL11, makes sense to me. And I definitely appreciate the approach of taking the time to make sure the engine worked right upon release rather than going back to patch it later. I'm just glad that even with those factors you were able to implement asychronous compute. I do hope for a FL12 benchmark in the next few years once that hardware is more prevalent. It may not be the same thing as a full game, but I do enjoy the spectacle of 3DMark's benchmarks pushing my PC hardware to its limit.
 
Feb 19, 2009
10,457
10
76
@FM_Jarnis

Thanks for giving your input, it adds to the transparency in how features are used, but looking at your response, it's almost like Time Spy targets the lowest hanging fruit. In which case, more capable hardware are not fully taken advantage of, yet.

I suspected as much when I saw RX 480 showing very weak gains with Async On/Off vs Hawaii & Fiji. It seems most of your Async Compute usage is intended to fill in rendering bubbles or improve shader utilization. This has a consequence that GPUs with lower shader counts, will therefore not benefit much because they have higher per shader utilization already.

Compared to Doom's Vulkan approach, a combined Multi-Engine & shader utilization route, where they tap Rasterizers (Shadow Map & Particles) & DMAs (Megatexture Streaming, though understandable because Time Spy is a short benchmark and not a game that needs to stream in assets) to get these units to run alongside the main Compute Units/SMX concurrently. The filler for shader utilization was mentioned by id Software as post processing. This approach would benefit all GPUs because all GPUs have these subunits which idle under serial rendering.
 

ThatBuzzkiller

Golden Member
Nov 14, 2014
1,120
260
136
Buzzkiller, have you been able to read through the documentation for time spy? I'm curious what you think of their implementation of async compute and if it really allows for concurrent rendering and compute functionality or not.

Whatever you mean by "documentation" I can not get internal info as I am not on the team behind 3Dmark nor can I give any thoughts on their implementation of async compute since there's not enough available public information or access to the source code ...

Allowing concurrent execution between the graphics and compute queue is a matter of engine design ...

You need to be mindful about pipeline ordering too. You can not do shadow mapping before transforming your vertices since that makes absolutely no sense when dynamic shadow maps rely on the position data generated by the vertex shaders and you probably can't overlap post-processing or other screen space effects with the G-buffer when those passes depend on the results of the G-buffer but your free to put physics simulation for your next frame anywhere in the compute queue however it makes most sense to hide behind G-buffer or shadow map generation when you can make it work in tandem with them for maximum performance benefits ...

Async compute is all about mixing and matching different resources. If your rasterizer bound, texture sampler, or bandwidth bound in that particular pass in the graphics queue then try and overlap it with compute work in the compute queue. Devs do not recommend assigning compute work or high bandwidth bound work to BOTH queues!

Despite how parallel graphics is there's a lot of serialization that comes with it ...
 
Last edited:

Red Hawk

Diamond Member
Jan 1, 2011
3,266
169
106
@FM_Jarnis, I just realized you may have just explained why my brother's PC won't run Time Spy. His PC uses an old Core 2 Quad Q6600. Does that not use SSSE3 and thus is not supported by Time Spy?

Edit: Ha, I actually posted my problem to Futuremark's support forum earlier today, and I'm just now seeing that you already responded to my post there. I'll follow your suggestion when I get the chance and let you know over at the support forum if it works.
 
Last edited:

ThatBuzzkiller

Golden Member
Nov 14, 2014
1,120
260
136
No, that's not true. Async and ExecuteIndirect are not bound to feature levels. Only resource binding is feature level bound. Async compute can be used in any feature level of DX12 and is a basic feature. All DX12 games at the moment use feature level 11_0, so following your argumentation, there would be no game with async. But that's not the case.

Yes they are! Anyone saying otherwise is spreading misinformation ...

Async compute can NOT be used on just any feature levels since it requires a different RUNTIME EXCLUSIVE to that feature level and above ...

Just because games only require FL 11_0 doesn't mean that you can't build them around MULTIPLE feature levels ...
 

ThatBuzzkiller

Golden Member
Nov 14, 2014
1,120
260
136
@FM_Jarnis, I just realized you may have just explained why my brother's PC won't run Time Spy. His PC uses an old Core 2 Quad Q6600. Does that not use SSSE3 and thus is not supported by Time Spy?

Edit: Ha, I actually posted my problem to Futuremark's support forum earlier today, and I'm just now seeing that you already responded to my post there. I'll follow your suggestion and let you know over at the support forum if it works.

http://download.intel.com/design/processor/specupdt/315593.pdf

According to Intel documentation, that processor DOES support SSSE3 ...
 

Red Hawk

Diamond Member
Jan 1, 2011
3,266
169
106
Core 2 supports SSSE3... according to https://en.wikipedia.org/wiki/SSSE3

Yes, but there were a couple different generations of Intel architectures within the Core 2 brand. Q6600 was Kentsfield, basically the quad-core version of Conroe, the first generation under the Core 2 brand. So later Core 2 architectures supporting SSSE3 doesn't necessarily mean the Q6600 does.

Edit: Thanks ThatBuzzkiller, so I guess that can't be it.
 
Last edited:

FM_Jarnis

Member
Jul 16, 2016
28
1
0
@FM_Jarnis

Thanks for giving your input, it adds to the transparency in how features are used, but looking at your response, it's almost like Time Spy targets the lowest hanging fruit. In which case, more capable hardware are not fully taken advantage of, yet.

The main thing about DX12 to developers and gamers today is the more efficient API and new way of programming the GPU(s). That is what Time Spy is designed to benchmark, while aiming to have an engine that explicitly tosses overboard all the "baggage" of DX11 and engines developed for that older API.

It is actually somewhat similar to how 3DMark 11 vs. 3DMark Fire Strike tested DX11. You could say that Time Spy is the "3DMark 11" or "Sky Diver" for DX12. Doesn't try to use every possible feature, aims to measure the common use case. Fire Strike went way further with DX11 and is still probably more complex/advanced than just about any DX11 game out there.

While we have not yet announced anything beyond VRMark and Vulkan support for API Overhead test (coming soon), our engine development team has not suddenly vanished off the earth or anything... Well, except to a well-earned summer holiday now that Time Spy has shipped, but they'll be back. As usual, "3DMark will return..."
 

FM_Jarnis

Member
Jul 16, 2016
28
1
0
Whatever you mean by "documentation" I can not get internal info as I am not on the team behind 3Dmark nor can I give any thoughts on their implementation of async compute since there's not enough available public information or access to the source code ...

He probably refers to this:

http://www.futuremark.com/downloads/3DMark_Technical_Guide.pdf

I'm also completely happy to pass on any detailed tech questions directly to the lead developer of the DX12 engine. I can't guarantee he can answer everything, but I'll promise to ask. For complex stuff, please email to info@futuremark.com so I can forward it directly.

Source code? You need to join the Futuremark Benchmark Development Program to get access to the git repo
 

guskline

Diamond Member
Apr 17, 2006
5,338
476
126
FM Jarnis. Thank you for the explanation. I bought the DX12 upgrade. Good work!
 

3DVagabond

Lifer
Aug 10, 2009
11,951
204
106
He probably refers to this:

http://www.futuremark.com/downloads/3DMark_Technical_Guide.pdf

I'm also completely happy to pass on any detailed tech questions directly to the lead developer of the DX12 engine. I can't guarantee he can answer everything, but I'll promise to ask. For complex stuff, please email to info@futuremark.com so I can forward it directly.

Source code? You need to join the Futuremark Benchmark Development Program to get access to the git repo

So, am I understanding you correctly that if a feature isn't supported by all or a lot or all brands... you guys won't support it? For example AMD has ACE's and nVidia doesn't. So, you won't have anything in the benchmark that requires their usage?
 

FM_Jarnis

Member
Jul 16, 2016
28
1
0
So, am I understanding you correctly that if a feature isn't supported by all or a lot or all brands... you guys won't support it? For example AMD has ACE's and nVidia doesn't. So, you won't have anything in the benchmark that requires their usage?

First, a disclaimer: I'm not a programmer. If you have detailed questions you'd like me to pass to the programmers of the enigne, toss me an email to info@futuremark.com and I'll promise to forward them.

Now, that being said... Drivers decide how the GPU handles the work queues. What you are asking about is hardware implementation details below the driver level.

Engine works at this level:

https://msdn.microsoft.com/en-us/library/windows/desktop/dn899217(v=vs.85).aspx

Tasks are scheduled to optimize GPU resource usage - different rendering passes are submitted to the driver in a way that, if the driver/hardware can process them asynchronously, great!
 

Samwell

Senior member
May 10, 2015
225
47
101
Yes they are! Anyone saying otherwise is spreading misinformation ...

Async compute can NOT be used on just any feature levels since it requires a different RUNTIME EXCLUSIVE to that feature level and above ...

Just because games only require FL 11_0 doesn't mean that you can't build them around MULTIPLE feature levels ...

The one spreading missinformation is you, so please inform yourself about DX12.
The Feature Levels are these ones:
https://msdn.microsoft.com/en-us/library/windows/desktop/mt186615(v=vs.85).aspx
Async is part of the DX12 Multiengine Feature which needs to be there to get any DX12 compatibility:
https://msdn.microsoft.com/en-us/li...)()#asynchronous_compute_and_graphics_example

Without Multiengine support you don't have DX12 support independent of the feature level. There is a difference between API features of DX12 and hardware feature levels.
 

provost

Member
Aug 7, 2013
51
1
16
That is indeed the long term plan. Tho first we'll release VRMark which is designed for "lowest common denominator in VR", so, DX11 - but that is a separate product, not part of 3DMark.

Some background on Time Spy;


  • Initially Time Spy was targeted for launch late 2015 / early 2016. Back then the market share of graphics cards that could actually support FL12 was.. umm... "limited". Unfortunately both maturity of DX12 drivers and some really complex issues in implementing a brand new DX12 engine delayed it considerably. Patching a benchmark workload after the fact is really really really bad, so we rather take the time to do it right.

  • Average consumers take it REALLY badly if a new benchmark says "you can't run it on your brand new (well, 3 year old) system because of X". This also directed to supporting FL11. On CPU test we took a "bold step" of requiring SSSE3 and.. uuh.. I've apologized today already to four customers that no, their Phenom II or Opteron can't run the test.

  • A FL12 benchmark with fallbacks to FL11 would not really be feasible - it would basically be two separate benchmarks. FL12 adds some interesting features and fully exploiting those would take a dedicated approach.

  • Pretty much all games target DX12 FL11 and even there most current game engines are doing DX12 in a way that is "oh we just ported our DX11 code". Time Spy is at least taking one step further with an engine developed from the ground up 'the DX12 way' (which is one of the reasons why it took a while - oh the tales our engine team could tell of DX12 features where spec says one thing and driver implementations do... other things. A phrase "What? Nobody is doing it like this" is something that was told to us by driver developers more than once...).
So I'd say Time Spy is a legit tool that will reflect how games could perform when a pure DX12 engine targets the most widely used hardware base (ie, DX12 FL11). Yes, some newest cards could use code paths for FL12 and I'm sure some games will offer those, but the pool of compatible hardware is still very small. This is, after all, our first full blown DX12 benchmark, so have to start from the obvious first step.

"oh the tales our engine team could tell of DX12 features where spec says one thing and driver implementations do... other things. A phrase "What? Nobody is doing it like this" is something that was told to us by driver developers more than once.."

I take this to mean that you worked closely with the driver teams of Nv/AMD/Intel?

"So I'd say Time Spy is a legit tool that will reflect how games could perform when a pure DX12 engine targets the most widely used hardware base "

What does this mean, and how can you determine what the future games will be targeting ?

Thanks in advance.
 

FM_Jarnis

Member
Jul 16, 2016
28
1
0
"oh the tales our engine team could tell of DX12 features where spec says one thing and driver implementations do... other things. A phrase "What? Nobody is doing it like this" is something that was told to us by driver developers more than once.."

I take this to mean that you worked closely with the driver teams of Nv/AMD/Intel?

Intel, AMD and NVIDIA are all part of Benchmark Development Program. They have source code read access and they can suggest changes and give feedback (with the feedback public within BDP, so any changes they suggest have to be accepted by the other vendors as well while Futuremark retains final say as to what goes into the benchmark).

That anecdote mostly refers to the situation that, at least a few months ago, vast majority of other developers were doing DX12 ports of DX11 engines (ie. adding a DX12 path to a DX11 engine & art pipeline), instead of total DX12 rewrites and our engine being "DX12 only", a lot of interesting things were discovered. Many bugs were squashed all over the place (no names, sorry).

"So I'd say Time Spy is a legit tool that will reflect how games could perform when a pure DX12 engine targets the most widely used hardware base "

What does this mean, and how can you determine what the future games will be targeting ?
Of course this involves guesswork, but we've been doing this for almost 20 years and in general 3DMark has been fairly good predictor as to what games do 2-3 years into the future.

In this case, our educated guess is that nobody will be making games anytime soon that would require FL12 hardware and there will be very few, if any games that spend the time & money to write a separate FL12 codepath when DX12 FL11 works just fine and is compatible with a far larger set of hardware.

You can freely disagree - this is just an opinion.
 
Last edited:
Reactions: dogen1

netkas

Junior Member
Dec 16, 2008
2
0
0
@FM_Jarnis, I just realized you may have just explained why my brother's PC won't run Time Spy. His PC uses an old Core 2 Quad Q6600. Does that not use SSSE3 and thus is not supported by Time Spy?

Edit: Ha, I actually posted my problem to Futuremark's support forum earlier today, and I'm just now seeing that you already responded to my post there. I'll follow your suggestion when I get the chance and let you know over at the support forum if it works.

AMD videocard?

take a look here - http://forums.guru3d.com/showthread.php?p=5307046
 
Feb 19, 2009
10,457
10
76
Intel, AMD and NVIDIA are all part of Benchmark Development Program. They have source code read access and they can suggest changes and give feedback (with the feedback public within BDP, so any changes they suggest have to be accepted by the other vendors as well while Futuremark retains final say as to what goes into the benchmark).

That anecdote mostly refers to the situation that, at least a few months ago, vast majority of other developers were doing DX12 ports of DX11 engines (ie. adding a DX12 path to a DX11 engine & art pipeline), instead of total DX12 rewrites and our engine being "DX12 only", a lot of interesting things were discovered. Many bugs were squashed all over the place (no names, sorry).

Of course this involves guesswork, but we've been doing this for almost 20 years and in general 3DMark has been fairly good predictor as to what games do 2-3 years into the future.

In this case, our educated guess is that nobody will be making games anytime soon that would require FL12 hardware and there will be very few, if any games that spend the time & money to write a separate FL12 codepath when DX12 FL11 works just fine and is compatible with a far larger set of hardware.

You can freely disagree - this is just an opinion.

I think you're right with the prediction, in general the gaming industry do in fact target the lowest denominator, wider compatibility is much more important than peak performance for a small sub-group. More sales = key factor.

This is why I expect multi-thread rendering feature of DX12/Vulkan is the major thing that devs appreciate and will use since any DX12/Vulkan compatible GPU will benefit. Async Compute will be one of those special feature that AMD sponsored titles will push for on the PC port, ie. retain it, not to strip it out of the console build during the porting process.

While NV if they sponsor DX12 titles, would like to push FL12_1.

Either way, I am enjoying the fruits of these next gen API already.

I just had a epic battle in Total War: Warhammer, 7 full stacks on the campaign, 4 factions/allies. Ultra unit sizes, we're talking above 10,000 troops on that field. And I was running it at 30-40 FPS on my i5. In DX11, if there's a battle with 4 stack armies, my frame rate is down to the 15s.
 

Azix

Golden Member
Apr 18, 2014
1,438
67
91
Point is, asynchronous compute, at least its implementation in Time Spy, does not help low-end AMD GPUs like the 260X.

This is the right way to put it. Because async is a big deal on consoles and they have ~7870 level hardware iirc.

FL11 to support more hardware makes sense if targeting that same visuals with same features ideal. We'll see how it plays out with the games coming up.

Intel, AMD and NVIDIA are all part of Benchmark Development Program. They have source code read access and they can suggest changes and give feedback (with the feedback public within BDP, so any changes they suggest have to be accepted by the other vendors as well while Futuremark retains final say as to what goes into the benchmark).

That anecdote mostly refers to the situation that, at least a few months ago, vast majority of other developers were doing DX12 ports of DX11 engines (ie. adding a DX12 path to a DX11 engine & art pipeline), instead of total DX12 rewrites and our engine being "DX12 only", a lot of interesting things were discovered. Many bugs were squashed all over the place (no names, sorry).

Of course this involves guesswork, but we've been doing this for almost 20 years and in general 3DMark has been fairly good predictor as to what games do 2-3 years into the future.

In this case, our educated guess is that nobody will be making games anytime soon that would require FL12 hardware and there will be very few, if any games that spend the time & money to write a separate FL12 codepath when DX12 FL11 works just fine and is compatible with a far larger set of hardware.

You can freely disagree - this is just an opinion.

This I am not so sure about. Like I said before the engine is the core and so many games now use established engines, or new engines with great developers behind them. Even IDsoftware went so far in what they did with DOOM to the point that they use shader intrinsics. This will continue to benefit any game they choose to use that engine for. So the investment for a lot of these AAA games comes in the engine that is made 'once'. Snowdrop, frostbite, cryengine, nitrous etc. So I don't think it will be odd for engine developers to pick and choose features to integrate with separate code paths. I am sure your own developers could have done it as well if that was the plan. If you could then build multiple benchmarks on that engine, it would suggest multiple games can be built on the same engine with that investment already made. Compatibility is not affected, but the potential gains with newer hardware might be worth it.

Is this not what happens in the game/engine relationship?
 
Last edited:
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |