Direct3d error in Custom plugin

Hi
i welcome some help for bypasing an error we have with directd3d in win 10 nodes.This mpeg encoder plugin used to work ok in
previous versions of windows but it produces an eeror since we updated.

Thanks in Advance
Custom Plugin error.txt (4.43 KB)

There are quite a few different results if you search for this on Google: “Create D3DDirect device failed”.
The most popular seems to be to ensure you have the latest graphics card drivers installed on the system.
Does that help at all? If not, if you reduce the ConcurrentTask count from 7 down to 1, does the issue disappear?
Is the Slave running as a “service”?

Hi Mike
i tried most of them but didnt help a lot change the compability mode also the .exe back to windows xp.
The nodes have an intergraded graphic chip which has the latest drivers. Slave is not running as a service.
?I would try the concurrent task to see if it helps.
Since i dont need actually direct3d to run the encoder is any option to disable the sdout?

Btw the concurrent task doesnt help at all!

Thanks for confirming a few issues here. So, if you remote into the same machine that is generating this error and open a “Command Prompt” window and paste this text into the cmd and execute it. Do you get the same error? Anything different? (Make sure the file paths are valid, or update them so that they are valid for the purposes of this test)

"C:\Program Files\Encoder\mpegencoder.exe"  /p /s 200 /f 100 /b 120000000 /srcgamma 1.8 /destgamma 1.8 /m 1 /n 4 /r 30 "\\draco\library\allsky.de\Timelapse\2156-2159_London\2156_TBturn1\jpeg\2156_TBturn1_0000.JPG" "\\draco\library\allsky.de\00002_00001preview.m2v" 4096 4096

If you still get the same error, then we know the issue is not Deadline here but is tied up with the actual application you are trying to use here and/or in combination with the updated Windows operating system version as you previously cited. I wonder if this is a known bug in the application you are trying to use here and the developer is aware of it?

I should add, that yes, we can ignore that line of stdout or handle it accordingly if you so wish via our API. However, I suspect there is actually a bug in the application you are trying to use here. So, ignoring this error is going to get you so far, but it fails again anyway…Did you upgrade it at the same time as your operating system by chance?

Hi mike
executing via the command prompt doesnt produce at all this error.The developer unfortunatly is aware but doesnt support win 10
so he is not really keen to help and i doubt the they will update the encoder soon.
The issue came up after upgrading my nodes from win 7 to win 10. Sometimes i have no errors but sometimes i have to babysit
the render jobs.
I think i will love to have a try to ignore the sdtout or handle via api.
ThanksPlugin.txt (4.84 KB)

ok, thanks for confirming it is indeed an intermittent bug on the app side and indeed, the app developer does not support the OS you are trying to use here. Perhaps there is another app or Draft could do the encoding you need?

What you could do in the short-term is cause the render task to fail out if this error is encountered. At least then, you know it failed and it can try again and maybe it will be successful on a subsequent attempt.

To do this, in your custom plugin, you need to create a StdOut Handler and attach a function to it which executes the FailRender() command:
docs.thinkboxsoftware.com/produc … t-handlers

There are many examples in our plugins of how to do this. Here’s a super quick example:

[code]from Deadline.Plugins import *

from System.Diagnostics import *

######################################################################

This is the function that Deadline calls to get an instance of the

main DeadlinePlugin class.

######################################################################
def GetDeadlinePlugin():
return MyPlugin()

######################################################################

This is the function that Deadline calls when the plugin is no

longer in use so that it can get cleaned up.

######################################################################
def CleanupDeadlinePlugin( deadlinePlugin ):
deadlinePlugin.Cleanup()

######################################################################

This is the main DeadlinePlugin class for MyPlugin.

######################################################################
class MyPlugin (DeadlinePlugin):

def __init__( self ):
    self.InitializeProcessCallback += self.InitializeProcess

def Cleanup( self ):
    for stdoutHandler in self.StdoutHandlers:
        del stdoutHandler.HandleCallback

    del self.InitializeProcessCallback

def InitializeProcess( self ):
    self.StdoutHandling = True
    self.AddStdoutHandlerCallback(".*Create D3DDirect device failed.*").HandleCallback += self.HandleError

def HandleError( self ):
    self.FailRender( "Error encountered [Create D3DDirect device failed]" )[/code]

Hi Mike
thanks for your help alot!!!