gpuopen-archive / amd_tootle Goto Github PK
View Code? Open in Web Editor NEWAMD Triangle Order Optimization Tool.
License: MIT License
AMD Triangle Order Optimization Tool.
License: MIT License
I fixed this by replacing #define _isnan(x) isnan(x)
with #define _isnan(x) std::isnan(x)
based on some quick googling. Not sure if this is correct.
built using gcc version 5.4.0
This is not a bug, but a general question for AMD engineer(s) on this project:
Firstly, do you have any general tips on getting the lowest runtimes possible with tootle? For context, I'm currently only calling TootleOptimizeVCache().
Beyond that, do you suppose there's much headroom for run time reductions with simd and multithreading? Particularly within the Vertex prefetch cache optimization and Vertex cache optimization phases? Is there any low hanging fruit, or will run time optimization be pretty tough work at this point?
If the source obj file has more than one 'g ' line (mesh group), these will be handled strangely in the output obj. You'll end up with several contiguous group lines in the output with no faces defined within them, like so:
g Group1
g Group2
g Group4
This is because TootleSample completely suppresses, re-orders, and re-prints all of the 'f ' lines in a separate pass, but still prints through the mesh group lines from the original file.
Some options:
Just ignore / don't print 'g' lines at all in the output, and end up with one big mesh.
(More complex) Optimize each mesh group separately so that faces don't get re-ordered across 'g ' boundaries.
I expect that exception handling is usually supported by a C++ program. I wonder why your function "main" does not contain corresponding try and catch instructions so far.
How do you think about recommendations by Matthew Wilson in an article?
Would you like to adjust the implementation if you consider effects for uncaught/unhandled exceptions like they are described by Danny Kalev?
Would you like to add more error handling for return values from functions like the following?
I would like to point out that identifiers like "_BBOX_
" and "_JML_SCALAR_H_
" do not fit to the expected naming convention of the C++ language standard.
Would you like to adjust your selection for unique names?
Hi,
Is tootle thread-safe and can be called from multiple threads to speed up processing when optimizing multiple meshes?
Hi, first of all amazing library, super easy to compile and process obj! Well done!
The only thing that right now is preventing me in using it is the ability to know what vertices got moved and how.
It works perfectly for static objects that don't need any kind of processing, but for animated objects the problem appears, for example skincluster ,when I export from the modelling software (autodesk maya) I store skinning information based on the current vertex order, before it was exported. With the reordering of the vertices my data is no longer valid since what was vertex 1 now has become vertex 10 and so on, this mean that mesh vertices and bone indices no longer match.
Right now the only way I see it is brute forcing vertex matching afterwards but is going to be as slow process. Would it be possible to get a list of permutations out of the tool? In this way I would be able to quickly remap the needed data to the needed indexes.
I am also open to other suggestions in how to achieve the wanted mapping.
M.
I'm trying to build Tootle an Windows 10 and I'm unable to get it to build.
What is the Array type, and where is it defined? I installed the DirectX SDK (which seemed to collide with other versions of the DirectX runtime already installed) but I still get the error.
Do you usually build the tool with the define of _SOFTWARE_ONLY_VERSION or is it not enabled by default?
The problem is the nIndex
check in FindFaceMappingFromIndex
. It returns an error if 0
, which makes the remapping loop fail on the first iteration.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.