/dx9ex switches with Increase Timing Precision

This is a strange one, I had texture sharing working fine I was using the /dx9ex switch because despite me thinking it should be on by default, it wasn’t. I turned Increase Timing Precision on in the main loop, now I don’t remember if it stopped then or I restarted the patch, but anyway texture sharing stopped working, so I stopped using the /dx9ex flag, and it worked again.

I’ve attached a patch to demonstrate.

shared texture bug (15.7 kB)

hei cat, before we do any investigations on this: using latest (b33.1) as is (ie. without any commandline parameter or change to timing precision) everything should work as desired. if it does i’d consider the case closed.

if not please be specific about what you’re missing because in the message above you write that something didn’t work but then worked again and i am not quite sure where to go from there then…

If you look at the patch it gives you the conditioners where the switch either works or doesn’t work based on whether you are writing to shared memory raw, using increased timing precision or not.
To me that inconsistency seems pretty broken! Either the switch should allow sharing or not, not based on 2 other parameters.

i am sorry cat, but the example doesn’t speak to me. also you haven’t answered my question regarding b33.1

beta31.2 x64 no args.txt, no main loop, no writer mem Raw, no texture share
beta31.2 x64 no args.txt increase timing off, no texture share
beta31.2 x64 no args.txt increase timing off, writer shared mem RAW on, Shares Works (dx11)
beta31.2 x64 no args.txt increase timing on, writer shared mem RAW off, no texture share
beta31.2 x64 no args.txt increase timing On,writer shared mem RAW on, Shares Works (dx11)

beta31.2 x64 WITH args.txt, no main loop, no writer mem Raw, no texture share
beta31.2 x64 WITH args.txt increase timing On,writer shared mem RAW on, Shares Works (dx11)
beta31.2 x64 WITH args.txt increase timing on, writer shared mem RAW off, no texture share
beta31.2 x64 WITH args.txt increase timing Off,writer shared mem RAW off, Shares Works (dx11)
beta31.2 x64 WITH args.txt increase timing off, writer shared mem RAW on,Shares Works (dx11)

This is with my optimus laptop, I get no sharing in dx9 hence using dx11, I will test again with my desktop

I’m going to retest my optimus as I forgot to set the render target for dx9, so hopefully that will fix the dx9 issue

this is on my desktop with an amd card

beta31.2 x64 no args.txt, no main loop, no writer mem Raw, shares dx9 no share dx11
beta31.2 x64 no args.txt increase timing off, texture share dx9 + dx11
beta31.2 x64 no args.txt increase timing off, writer shared mem RAW on, Shares Works dx11+dx9
beta31.2 x64 no args.txt increase timing on, writer shared mem RAW off, Shares Works dx11+dx9
beta31.2 x64 no args.txt increase timing On,writer shared mem RAW on, Shares Works dx11+dx9

beta31.2 x64 WITH args.txt, no main loop, no writer mem Raw, shares dx9 no share dx11
beta31.2 x64 WITH args.txt increase timing On,writer shared mem RAW on, Shares Works dx11 +dx9
beta31.2 x64 WITH args.txt increase timing on, writer shared mem RAW off, Shares Works dx11 +dx9
beta31.2 x64 WITH args.txt increase timing Off,writer shared mem RAW off, Shares Works dx11 +dx9
beta31.2 x64 WITH args.txt increase timing off, writer shared mem RAW on,Shares Works dx11+dx9

Retesting with my optimus brings interesting results.
DX11 is the share that is inconsistent, so I guess this needs to go to @vux or more likely nvidia!
DX11 seems to be inconsistent in its sharing.
I am restarting vvvv each time in these tests.

beta31.2 x64 no args.txt, no main loop, no writer mem Raw,shares both, every other time I start the patch, otherwise only dx9
beta31.2 x64 no args.txt increase timing off, shares both, every other time I start the patch, otherwise only dx9
beta31.2 x64 no args.txt increase timing off, writer shared mem RAW on, shares both, every other time I start the patch, otherwise only dx9
beta31.2 x64 no args.txt increase timing on, writer shared mem RAW off, shares both, every other time I start the patch, otherwise only dx9
beta31.2 x64 no args.txt increase timing On,writer shared mem RAW on, shares both, every other time I start the patch, otherwise only dx9

cat still, please do your tests against latest b33.1 or even latest alpha.

Sorry Joreg, that’s me getting confused with all the 1,2,3’s we’ve been having lately, that is actually with 33.1, not 31.2 , my dyslexia wins again!

I was in the final stages of a project when I had to use texture sharing to sort out a hardware issue and use a dx9 videoin in a dx11 project, and I ran into this again.
This was using beta31.2, increasing timer precision stopped dx9ex from working, thankfully I was aware of this issue and it didn’t stop my delivery of the project, but if I hadn’t known I would have been up shit creek!
Can you clarify for me
1/ is texture sharing enabled by default in beta 32 and upwards, and does using the flag turn it off
2/ should increase timer precision have any affect on texture sharing (if not, then there is a bug, this occurred on a desktop this time)

this might clear some things up:

  • texture sharing is enabled if vvvv is using dx9ex
  • since beta32 we enabled dx9ex by default. you can disable it by using the commandline argument /dx9
  • this might be confusing, as the flag prior to beta32 to enable it was /dx9ex

and no, the timing precision flag should not have anything to do with this. i don’t know what happened on your machine… can you reproduce it every time you try it?

@tonfilm, thanks for clearing that up.
I’ve reproduced this on 2 pc’s one laptop one desktop, both nvidia cards, I’m full on at the moment but will test again when I’m done.