VideoTexture to DX11 pipeline lags without Renderer (EX9)

I use VideoTexture -> DX9ToDX11 -> Renderer (DX11) pipeline.

It seems VideoTexture updates not every frame (lag between updates is about several seconds)

To remove lag I need to create unconnected Renderer (EX9) node which seems a bit weird.

Does anyone else experience this? Patch is attached

hello.v4p (9.2 kB)

Sorry to get back an old post, but same is happening to me… any hints?

Thanks

Also happening with VideoTexture -> Quad -> Renderer(EX9) -> Info(DX9.Texture) ->FromSharedTexture (DX11.Texture 2D) ->Quad(DX11.layer) -> Renderer(DX.11).

I have no way to get any DX9 texture (even using Filetexture, with JPEG images) into DX11 pipeline and rendered without flickering or lost frames. Playing with the DX9 Renderer still heps, thought.
I’m using intel HD 4600 iGPU on an Haswell i7 with desktop chipset. Attached is patch used.
Tested on 33.3, 33.7 and latest alpha, all x64 builds.

Thank you.

videotest.v4p (10.6 kB)

there is a module that does the conversion: DX9ToDX11 (DX11.Texture 2d). the flickr seems to come from the fact that still you need to make sure the dx9 pipeline is properly pulled each frame. so you could try to connect a Pipet (EX9.Texture) to the dx9-texture to assure that…

Yes, I know about the module. The Pipet helped but did not fix all the flickering… I’ll keep trying.
Thank you joreg.

btw, is there any node that does the same job pulling the DX9 pipeline, but does not use so much resources as Pipet(EX9.Texture) ?

I would say that a lo res renderer with a quad would do the job too

yea pure dx11 might help harf harf

this is obvious that devs shud just fix VideoTexture for dx11
oh yea there are more important things then mortal stuff vl-feature-voting
if u are using some kind of videocapture u shud try it with CV pack so u don’t need to bother with “vvvvoodoo” magic

Hi there,

@sunep: I’ve done that too, but I need to have a windowed DX9 renderer to get the pipeline pulled, and it’s not as effective as Pipet. Ugly workaround.

@antokhio: I play mkv files, no video capture involved… Yes definitely Videotexture should be done for DX11, as a hardware accelerated Filestream for high resolution videos (above HD). Vux’s FileStream (DX11.Texture Vlc) gets to insane levels of cpu use as libvlc is not hardware accelerated, and sometime gets choppy, if hardware used with it’s software decoding is not up to the job.

currently this are my conclusion with video in DX11:

  • FileStream (DX11.Texture Vlc): Not hardware accelerated.
  • FileStream2 (DShow9): No audio, flickering when sharing texture to DX11
  • FileStream (DShow9): flickering when sharing texture to DX11 (using this at the moment)
  • Filestream (EX9.Texture VLC): Same problem.

When sharing to DX11 I render the video and use a DX9Texture (EX9.Texture) node as if I go directly from videotexture to info, the handle keeps changing between the 2 video buffers and produces jerky results in the DX11 side.

I will keep testing, if you any thoughts, please post.
Thank you!

well let’s say mkv not most convenient file format, and that amount of cpu it eats meaning u mostlikley have some troubles with codec in the file. Just try playing it with normal vlc. I actually had some nice test with mkv but i used it for some special mp4 conversion. Anyways anything working with cpu quite limited to about 3000x3000 pixels, if u need res higher u have to go dds sequence
and yea try to avoid Dx9ToDx11 as much as u can cause u have to be a madman even to try think about it as a working solution. U shud prolly try MJPEG avi proven to be most reliable solution for low res video (under 4k by 4k)

thanks antokhio, I will test MJPEG.

good new! I’ve just found a well not the nicest way of sharing any dx9 texture without any visible renderer: simply make the ex9 renderer borderless, and 0 width / height in one of the screen corners with setpatch. of course you’ll need toset backbuffer width / hheight