I created this thread to remove some codes when integrating metal.
@zhangxm Whenever you need any testing help, let me know.
I can test on whatever devices we have. (Android/iOS both)
Thats very bad, for quality profiling and optimizing you need a real device to do so in Xcode and quickly test/fix/improve anything. Am I talking about standard and obvious things?
Update:
- implement some basic feature of metal backend
- can run the project, but nothing is drawn, i found the vertex data is correct, don’t know why
If somebody is metal expert, please help to fix it too.
Update:
the first metal test case can run, it is because i don’t set window width and height, then the view port size is 0. Currently, i just write metal shader by hand, not translate it to metal shader in runtime. It can polish the API more quickly.
Update:
GLSL shader works on metal backend. We are using glsl-optimizer to translate GLSL shader to metal shader. glsl-optimizer
doesn’t translate GLSL builtin functions, we are fixing it.
Update: texture is supported in metal backend, texture array currently is not supported. And i created an issue to trace the progress of GLSL builtin functions supporting.
I think this is a standalone project which should not depend on cocos2d-x.
It’s cocos2d-x uses this module instead.
So autorelease
stuff may not be in this project.
It seems that this design doesn’t consider multi-thread usage.
There isn’t any concept of Fence, Event, Semaphore.
@dumganhar it is part of cocos2d-x. For convenient, i use a separate repo when developing. I learned from mac and fixed it:
-
createXXX
return an autoreleased object -
newXXX
return a not autoreleased object
Yep, multiple thread concept is not included now. I don’t know if it is needed, the first purpose is to support metal, and we can optimize it if it is needed.
Update: blending is supported on metal, and the API is simplified a bit. I will add more test case for it.
Update:
- texture can be used as color attachment
- can update sub image of a texture
- make stencil work correctly
- make some API more meaningful
- add more test cases
wow it seems like you are making terrific progress - thanks for the updates!!
We almost finish the backend API, and will start integrating it into cocos2d-x soon.
Wow, That was Quick