From: José Fonseca Date: Thu, 25 Oct 2012 11:17:39 +0000 (+0100) Subject: Disassemble D3D10.1 shaders too. X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;ds=sidebyside;h=ff0b1ee31de158b8e48cb8a363fd5e62a9d3f9d5;p=apitrace Disassemble D3D10.1 shaders too. --- diff --git a/wrappers/CMakeLists.txt b/wrappers/CMakeLists.txt index 551c5d8..bd2d2e8 100644 --- a/wrappers/CMakeLists.txt +++ b/wrappers/CMakeLists.txt @@ -126,6 +126,7 @@ if (WIN32) COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d10trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d10trace.cpp DEPENDS d3d10trace.py + d3dcommontrace.py dlltrace.py trace.py ${CMAKE_SOURCE_DIR}/dispatch/dispatch.py @@ -163,6 +164,7 @@ if (WIN32) COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d10_1trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d10_1trace.cpp DEPENDS d3d10_1trace.py + d3dcommontrace.py dlltrace.py trace.py ${CMAKE_SOURCE_DIR}/dispatch/dispatch.py @@ -176,7 +178,7 @@ if (WIN32) ${CMAKE_SOURCE_DIR}/specs/winapi.py ${CMAKE_SOURCE_DIR}/specs/stdapi.py ) - add_library (d3d10_1trace MODULE d3d10_1.def d3d10_1trace.cpp) + add_library (d3d10_1trace MODULE d3d10_1.def d3d10_1trace.cpp d3d10shader.cpp) target_link_libraries (d3d10_1trace common_trace common diff --git a/wrappers/d3d10_1trace.py b/wrappers/d3d10_1trace.py index 485ec32..4e396de 100644 --- a/wrappers/d3d10_1trace.py +++ b/wrappers/d3d10_1trace.py @@ -24,7 +24,7 @@ ##########################################################################/ -from dlltrace import DllTracer +from d3dcommontrace import D3DCommonTracer from specs.d3d10_1 import d3d10_1 @@ -35,6 +35,7 @@ if __name__ == '__main__': print '#include "os.hpp"' print print '#include "d3d10_1imports.hpp"' + print '#include "d3d10shader.hpp"' print - tracer = DllTracer('d3d10_1.dll') + tracer = D3DCommonTracer('d3d10_1.dll') tracer.traceApi(d3d10_1) diff --git a/wrappers/d3d10trace.py b/wrappers/d3d10trace.py index d43f042..89a39c5 100644 --- a/wrappers/d3d10trace.py +++ b/wrappers/d3d10trace.py @@ -24,21 +24,10 @@ ##########################################################################/ -from dlltrace import DllTracer -from specs import stdapi +from d3dcommontrace import D3DCommonTracer from specs.d3d10misc import d3d10 -class D3D10Tracer(DllTracer): - - def serializeArgValue(self, function, arg): - # Dump shaders as strings - if isinstance(arg.type, stdapi.Blob) and arg.name.startswith('pShaderBytecode'): - print ' DumpShader(trace::localWriter, %s, %s);' % (arg.name, arg.type.size) - return - - DllTracer.serializeArgValue(self, function, arg) - if __name__ == '__main__': print '#define INITGUID' print @@ -48,5 +37,5 @@ if __name__ == '__main__': print '#include "d3d10imports.hpp"' print '#include "d3d10shader.hpp"' print - tracer = D3D10Tracer('d3d10.dll') + tracer = D3DCommonTracer('d3d10.dll') tracer.traceApi(d3d10) diff --git a/wrappers/d3dcommontrace.py b/wrappers/d3dcommontrace.py new file mode 100644 index 0000000..eb5c625 --- /dev/null +++ b/wrappers/d3dcommontrace.py @@ -0,0 +1,39 @@ +########################################################################## +# +# Copyright 2008-2009 VMware, Inc. +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +##########################################################################/ + + +from dlltrace import DllTracer +from specs import stdapi + + +class D3DCommonTracer(DllTracer): + + def serializeArgValue(self, function, arg): + # Dump shaders as strings + if isinstance(arg.type, stdapi.Blob) and arg.name.startswith('pShaderBytecode'): + print ' DumpShader(trace::localWriter, %s, %s);' % (arg.name, arg.type.size) + return + + DllTracer.serializeArgValue(self, function, arg)