Page MenuHome

Michael Jones (michael_jones)
Software Engineer (Apple)

Projects (10)

User Details

User Since
Oct 7 2021, 1:44 PM (51 w, 1 d)

Recent Activity

Tue, Sep 27

Michael Jones (michael_jones) closed D16081: Cycles: Tweak inlining policy on Metal.
Tue, Sep 27, 6:02 PM
Michael Jones (michael_jones) committed rB2b88ee50fb7b: Cycles: Tweak inlining policy on Metal (authored by Michael Jones <michael_jones>).
Cycles: Tweak inlining policy on Metal
Tue, Sep 27, 6:02 PM
Michael Jones (michael_jones) added a comment to D16082: Cycles: Disable binary archives on macOS < 13.0.

I assume this needs to be backported to 3.3.1?

Tue, Sep 27, 6:00 PM
Michael Jones (michael_jones) committed rBfc604a0be3a9: Cycles: Disable binary archives on macOS < 13.0 (authored by Michael Jones (michael_jones)).
Cycles: Disable binary archives on macOS < 13.0
Tue, Sep 27, 5:58 PM
Michael Jones (michael_jones) closed D16082: Cycles: Disable binary archives on macOS < 13.0.
Tue, Sep 27, 5:58 PM
Michael Jones (michael_jones) requested review of D16082: Cycles: Disable binary archives on macOS < 13.0.
Tue, Sep 27, 3:35 PM
Michael Jones (michael_jones) requested review of D16081: Cycles: Tweak inlining policy on Metal.
Tue, Sep 27, 3:30 PM
Michael Jones (michael_jones) added a comment to T93614: Blender 3.0 macOS download defaults to Intel on M1 Mac.

@Pablo Vazquez (pablovazquez) , @Brecht Van Lommel (brecht) , now on my x86_64 MacBook Pro I am served the arm64 build of Blender when downloading from Safari. To get a working Intel build I need to explicitly go into the "other versions" menu.

Tue, Sep 27, 2:32 PM · Infrastructure: blender.org

Tue, Sep 6

Michael Jones (michael_jones) added a comment to T100824: Cycles GPU rendering is broken on Apple M1/macOS Ventura.

This patch fixes the issue by disabling the ccl_device_noinline macro. Total compile time on first render increases to ~2 minutes on M1 Max, which is not fast but better than the previous ~4.5 minutes with aggressive inlining enabled. The resulting benchmark score is about 5% higher with this change on M1 Max.

Tue, Sep 6, 4:32 PM · Render & Cycles, BF Blender
Michael Jones (michael_jones) added a comment to T100824: Cycles GPU rendering is broken on Apple M1/macOS Ventura.

For some reason reverting e11c899e715b (which disabled slow-to-compile inlining) fixed the bad render. I will follow up internally as this could be a shader compiler bug.

Tue, Sep 6, 1:08 PM · Render & Cycles, BF Blender

Mon, Sep 5

Michael Jones (michael_jones) added a comment to T100824: Cycles GPU rendering is broken on Apple M1/macOS Ventura.

I am on an older 13.0 beta and see the same broken rendering as posted in the description. A local build based on 03aeef64d5c2bd1eb1aa790bddbce728857778f3 seems to be rendering correctly on the same OS. As a next step, I will try to narrow this down further.

Mon, Sep 5, 9:37 PM · Render & Cycles, BF Blender

Jul 27 2022

Davide Caprioli (DaveDeer) awarded rBda4ef05e4dfb: Cycles: Apple Silicon optimization to specialize intersection kernels a Burninate token.
Jul 27 2022, 10:56 PM
Davide Caprioli (DaveDeer) awarded rB4b1d315017ef: Cycles: Improve cache usage on Apple GPUs by chunking active indices a Love token.
Jul 27 2022, 10:55 PM

Jul 17 2022

William Reynish (billreynish) awarded rB4b1d315017ef: Cycles: Improve cache usage on Apple GPUs by chunking active indices a Burninate token.
Jul 17 2022, 8:06 PM
Michael Jones (michael_jones) added a comment to D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).

Super - thanks for sorting it out @Brecht Van Lommel (brecht). I'm not used to Phabricator / how it interacts with git so it's highly likely I did something silly!

Jul 17 2022, 9:47 AM

Jul 15 2022

Alejandro Martinez (Alej) awarded rB4b1d315017ef: Cycles: Improve cache usage on Apple GPUs by chunking active indices a Burninate token.
Jul 15 2022, 3:03 AM

Jul 14 2022

Michael Jones (michael_jones) added a comment to D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).

@Brecht Van Lommel (brecht), let me know if you see an easy way for me to salvage it.

Jul 14 2022, 9:07 PM
Michael Jones (michael_jones) created P3083 Metal fixes to be applied on top of P3072.
Jul 14 2022, 9:02 PM
Michael Jones (michael_jones) added a comment to D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).

I wasn't thinking you would create new revisions, just have those 3 commits locally and git push them all together. Not all individual commits need to correspond to some revision.

Jul 14 2022, 9:00 PM
Michael Jones (michael_jones) updated the diff for D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
  • Cycles: refactor to move part of KernelData definition to template header
  • Cycles: keep track of SVM nodes used in kernels
  • Cycles: Apple Silicon optimizations (~20% uplift on M1 Max)
Jul 14 2022, 8:22 PM
Michael Jones (michael_jones) added a comment to D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).

I'm guessing it boils down to this?

Jul 14 2022, 6:58 PM
Michael Jones (michael_jones) added a comment to D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).

You can use git am with my patch to get 3 commits with commit messages and author intact, but you'll have to replace/update the last commit with your changes of course.

Jul 14 2022, 6:51 PM
Michael Jones (michael_jones) requested review of D15456: Cycles: refactor to move part of KernelData definition to template header.
Jul 14 2022, 6:47 PM
Michael Jones (michael_jones) added a comment to D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).

Looks good to me now.

Can you commit this as 3 separate commits as in P3072?

Jul 14 2022, 5:19 PM
Michael Jones (michael_jones) committed rB4b1d315017ef: Cycles: Improve cache usage on Apple GPUs by chunking active indices (authored by Michael Jones (michael_jones)).
Cycles: Improve cache usage on Apple GPUs by chunking active indices
Jul 14 2022, 3:26 PM
Michael Jones (michael_jones) closed D15331: Cycles: Improve cache usage on Apple GPUs by chunking active indices.
Jul 14 2022, 3:25 PM

Jul 13 2022

Michael Jones (michael_jones) updated the diff for D15331: Cycles: Improve cache usage on Apple GPUs by chunking active indices.
  • Simple heuristic to disable sort partitioning when shader count is high
Jul 13 2022, 9:56 PM
Michael Jones (michael_jones) updated the diff for D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
  • Limit in-memory pipeline cache to 3 kernel variants per PSO_ type
  • Bake all constants into md5 so that get_best_pipeline works as desired
Jul 13 2022, 6:22 PM
Michael Jones (michael_jones) updated the diff for D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
Jul 13 2022, 6:19 PM
Michael Jones (michael_jones) updated the summary of D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
Jul 13 2022, 6:18 PM
Michael Jones (michael_jones) added a comment to D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).

Thanks for the patch @Brecht Van Lommel (brecht) - it's working fine with a couple of small fixes. I will push the changes shortly.

Jul 13 2022, 6:17 PM
Matt (Kickflipkid687) awarded D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max) a Burninate token.
Jul 13 2022, 4:35 PM

Jul 12 2022

Michael Jones (michael_jones) added inline comments to D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
Jul 12 2022, 4:29 PM
Jerry Zhang (JerryZhang) awarded D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max) a Love token.
Jul 12 2022, 3:10 PM
Michael Jones (michael_jones) updated the diff for D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
  • Time the KernelData patching
Jul 12 2022, 3:02 PM
Michael Jones (michael_jones) added inline comments to D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
Jul 12 2022, 11:26 AM

Jul 11 2022

Michael Jones (michael_jones) added a comment to D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).

@Brecht Van Lommel (brecht) , @Sergey Sharybin (sergey) , I have reworked this to separate intersection and shading specializations - please let me know what you think. The intersection kernels are unobtrusively fast to respecialize and give a nice boost for many scenes (see table in main patch description), so I have left this as the default level of specialization.

Jul 11 2022, 4:30 PM
Michael Jones (michael_jones) updated the summary of D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
Jul 11 2022, 4:19 PM
Michael Jones (michael_jones) updated the summary of D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
Jul 11 2022, 4:18 PM
Michael Jones (michael_jones) updated the summary of D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
Jul 11 2022, 4:16 PM
Michael Jones (michael_jones) updated the diff for D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
  • make format
Jul 11 2022, 4:10 PM
Michael Jones (michael_jones) updated the diff for D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
  • Cycles: Finesse scene specialization
Jul 11 2022, 3:58 PM

Jul 4 2022

Michael Jones (michael_jones) updated the diff for D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).

Rebase

Jul 4 2022, 5:00 PM
Michael Jones (michael_jones) added a comment to D15331: Cycles: Improve cache usage on Apple GPUs by chunking active indices.

@Brecht Van Lommel (brecht) , how would you like to proceed with this?

Jul 4 2022, 2:33 PM

Jul 1 2022

Michael Jones (michael_jones) added a comment to D15331: Cycles: Improve cache usage on Apple GPUs by chunking active indices.

The way the shader sorting works, I think it can randomize the order of states even if there is a single shader in the scene. I wonder to what extent this patch is addressing that issue, compared to how helpful it is do do incoherent execution with more locality.

Jul 1 2022, 2:30 PM
Michael Jones (michael_jones) added a comment to D15331: Cycles: Improve cache usage on Apple GPUs by chunking active indices.

Did a quick test on RTX A6000 (using the benchmark tool).

                                         D15331               master               
barbershop_interior                      0.0849s              0.0728s              
bmw27                                    0.0047s              0.0053s              
classroom                                0.0424s              0.0462s              
fishy_cat                                0.0103s              0.0109s              
junkshop                                 0.0363s              0.0395s              
koro                                     0.0581s              0.0591s              
monster                                  0.0207s              0.0223s              
pabellon                                 0.0159s              0.0174s              
sponza                                   0.0088s              0.0101s              
spring                                   0.1274s              0.1317s              
victor                                   0.0547s              0.0543s              
wdas_cloud                               0.0837s              0.0842s

It seems helpful or neutral in all scenes except barbershop, though not 15%. I just set optimal_partition_elements = 65536, did not try to find the optimal value.

We should test the barbershop on the M1 as well I think, I believe it has a relatively high number of shaders and too much coherence may be lost. Maybe the heuristic can be tweaked.

Jul 1 2022, 2:07 PM

Jun 30 2022

Michael Jones (michael_jones) updated the diff for D15331: Cycles: Improve cache usage on Apple GPUs by chunking active indices.
  • Use divide_up
Jun 30 2022, 10:32 PM
Michael Jones (michael_jones) added inline comments to D15331: Cycles: Improve cache usage on Apple GPUs by chunking active indices.
Jun 30 2022, 8:33 PM
Michael Jones (michael_jones) requested review of D15331: Cycles: Improve cache usage on Apple GPUs by chunking active indices.
Jun 30 2022, 6:42 PM

Jun 27 2022

Michael Jones (michael_jones) added a comment to D15300: Cycles: Add CYCLES_METAL_INLINE env var for toggling aggressive inlining.

The intended way of implementing such tweaks is via DebugFlags (in util/debug.h) so that it is available in the Debug Panel in the interface. The environment variable can still be used to set default value in the DebugFlags (similar to, say, CYCLES_CPU_NO_AVX2).

Jun 27 2022, 1:47 PM
Michael Jones (michael_jones) requested review of D15300: Cycles: Add CYCLES_METAL_INLINE env var for toggling aggressive inlining.
Jun 27 2022, 12:09 PM

Jun 24 2022

Michael Jones (michael_jones) accepted D15287: Cycles: stop Metal rendering on command buffer error.

Looks good. It's a strange that integrator_reset should be failing in the wild given how simple it is - I'm keeping my eye out for this.

Jun 24 2022, 4:38 PM

Jun 23 2022

Michael Jones (michael_jones) committed rBd8e9647ae26b: Cycles: Add diagnostic tracing of MTLLibrary compilation time (authored by Michael Jones <michael_jones>).
Cycles: Add diagnostic tracing of MTLLibrary compilation time
Jun 23 2022, 11:06 AM
Michael Jones (michael_jones) closed D15268: Cycles: Add diagnostic tracing of MTLLibrary compilation time.
Jun 23 2022, 11:06 AM

Jun 22 2022

Michael Jones (michael_jones) updated the diff for D15268: Cycles: Add diagnostic tracing of MTLLibrary compilation time.
  • Use const
Jun 22 2022, 11:44 PM
Michael Jones (michael_jones) committed rB532b33973bb7: Cycles: Tidy of KernelData patchup code (authored by Michael Jones <michael_jones>).
Cycles: Tidy of KernelData patchup code
Jun 22 2022, 11:38 PM
Michael Jones (michael_jones) closed D15267: Cycles: Tidy of KernelData patchup code.
Jun 22 2022, 11:38 PM
Michael Jones (michael_jones) committed rB328a911379d4: Cycles: Distinguish Apple GPUs by core count (authored by Michael Jones <michael_jones>).
Cycles: Distinguish Apple GPUs by core count
Jun 22 2022, 11:33 PM
Michael Jones (michael_jones) closed D15257: Cycles: Distinguish Apple GPUs by core count.
Jun 22 2022, 11:33 PM
Michael Jones (michael_jones) updated the diff for D15257: Cycles: Distinguish Apple GPUs by core count.
  • Get gpu-core-count from specific registry entry instead of doing a scan
Jun 22 2022, 12:18 PM
Michael Jones (michael_jones) added inline comments to D15257: Cycles: Distinguish Apple GPUs by core count.
Jun 22 2022, 11:52 AM
Michael Jones (michael_jones) updated the diff for D15257: Cycles: Distinguish Apple GPUs by core count.
  • Revert change which appends " (CPU)" to CPU device string
Jun 22 2022, 11:46 AM
Michael Jones (michael_jones) updated the diff for D15257: Cycles: Distinguish Apple GPUs by core count.
  • Revert unrelated changes
Jun 22 2022, 11:42 AM
Michael Jones (michael_jones) requested review of D15268: Cycles: Add diagnostic tracing of MTLLibrary compilation time.
Jun 22 2022, 11:38 AM
Michael Jones (michael_jones) requested review of D15267: Cycles: Tidy of KernelData patchup code.
Jun 22 2022, 11:36 AM

Jun 21 2022

Michael Jones (michael_jones) added reviewers for D15257: Cycles: Distinguish Apple GPUs by core count: Brecht Van Lommel (brecht), Sergey Sharybin (sergey).
Jun 21 2022, 6:19 PM
Michael Jones (michael_jones) requested review of D15257: Cycles: Distinguish Apple GPUs by core count.
Jun 21 2022, 6:18 PM

Jun 20 2022

Michael Jones (michael_jones) added a comment to D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).

Just out of curiosity after having watched some Metal 3 videos, can those kernels be precompiled and be part of the application when it is released?

Jun 20 2022, 2:47 PM

Jun 16 2022

Michael Jones (michael_jones) added a comment to D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).

I anything, such option should be in the Performance panel. The option is to be disabled by default, because, again, final shot is rendered once, re-iteration over the look of frame happens much more often.

Jun 16 2022, 3:02 PM

Jun 15 2022

Michael Jones (michael_jones) added a comment to D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).

@Brecht Van Lommel (brecht), @Sergey Sharybin (sergey), I have rebased this patch onto master with a couple of minor updates:

Jun 15 2022, 4:17 PM
Michael Jones (michael_jones) retitled D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max) from Cycles: Apple Silicon optimizations (~40% uplift on M1 Max) to Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
Jun 15 2022, 4:12 PM

Jun 13 2022

Michael Jones (michael_jones) updated the diff for D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).
  • make format
Jun 13 2022, 5:20 PM
Michael Jones (michael_jones) updated the diff for D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max).

Rebase onto master

Jun 13 2022, 5:18 PM
Michael Jones (michael_jones) committed rB19e0b60f3e12: Cycles: MetalDeviceQueue - capture of multiple dispatches, and some tidying (authored by Michael Jones (michael_jones)).
Cycles: MetalDeviceQueue - capture of multiple dispatches, and some tidying
Jun 13 2022, 2:42 PM
Michael Jones (michael_jones) closed D15179: Cycles: MetalDeviceQueue - capture of multiple dispatches, and some tidying.
Jun 13 2022, 2:42 PM
Michael Jones (michael_jones) updated the diff for D15179: Cycles: MetalDeviceQueue - capture of multiple dispatches, and some tidying.
  • Fix macOS 10.14 version warnings
Jun 13 2022, 1:33 PM
Michael Jones (michael_jones) added a comment to rB4412e14708c5: Cycles: Useful Metal backend debug & profiling functionality.

P.S. Also noticed the new code in the Metal Queue does not follow the Class data member names.

Jun 13 2022, 1:26 PM
Michael Jones (michael_jones) added a comment to rB4412e14708c5: Cycles: Useful Metal backend debug & profiling functionality.

@Michael Jones (michael_jones) Hi! Unfortunately, this commit caused the following warnings: P2999
I am not sure what is the best way to solve those without possible speed regression (not sure if @available call is expensive). Is it something you can have a look at?

P.S. Also noticed the new code in the Metal Queue does not follow the Class data member names.

Jun 13 2022, 1:25 PM
Michael Jones (michael_jones) updated the summary of D15179: Cycles: MetalDeviceQueue - capture of multiple dispatches, and some tidying.
Jun 13 2022, 1:08 PM
Michael Jones (michael_jones) requested review of D15179: Cycles: MetalDeviceQueue - capture of multiple dispatches, and some tidying.
Jun 13 2022, 12:55 PM

Jun 7 2022

Michael Jones (michael_jones) closed D15044: Cycles: Useful Metal backend debug & profiling functionality.
Jun 7 2022, 12:09 PM
Michael Jones (michael_jones) committed rB4412e14708c5: Cycles: Useful Metal backend debug & profiling functionality (authored by Michael Jones <michael_jones>).
Cycles: Useful Metal backend debug & profiling functionality
Jun 7 2022, 12:09 PM

May 27 2022

Michael Jones (michael_jones) updated the diff for D15044: Cycles: Useful Metal backend debug & profiling functionality.
  • Remove superfluous tracing when capturing
May 27 2022, 3:29 PM
Michael Jones (michael_jones) updated the diff for D15044: Cycles: Useful Metal backend debug & profiling functionality.
  • make format
May 27 2022, 2:14 PM
Michael Jones (michael_jones) requested review of D15044: Cycles: Useful Metal backend debug & profiling functionality.
May 27 2022, 2:10 PM

May 16 2022

Davide Caprioli (DaveDeer) awarded D14923: Enable inlining on Apple Silicon. Use new process-wide ShaderCache in order to safely re-enable binary archives a Love token.
May 16 2022, 12:39 PM

May 14 2022

makizar (makizar) awarded D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max) a Love token.
May 14 2022, 12:24 PM

May 11 2022

Kady Richardson (skyscapeparadise) awarded D14923: Enable inlining on Apple Silicon. Use new process-wide ShaderCache in order to safely re-enable binary archives a Love token.
May 11 2022, 10:33 PM
Michael Jones (michael_jones) committed rB007184bcf212: Enable inlining on Apple Silicon. Use new process-wide ShaderCache in order to… (authored by Michael Jones (michael_jones)).
Enable inlining on Apple Silicon. Use new process-wide ShaderCache in order to…
May 11 2022, 5:21 PM
Michael Jones (michael_jones) closed D14923: Enable inlining on Apple Silicon. Use new process-wide ShaderCache in order to safely re-enable binary archives.
May 11 2022, 5:21 PM
Michael Jones (michael_jones) updated the diff for D14923: Enable inlining on Apple Silicon. Use new process-wide ShaderCache in order to safely re-enable binary archives.
  • Remove undefined method
May 11 2022, 3:53 PM
Michael Jones (michael_jones) updated the diff for D14923: Enable inlining on Apple Silicon. Use new process-wide ShaderCache in order to safely re-enable binary archives.
  • Remove unnecessary functions & add PSO NULL-check during MetalDeviceQueue::enqueue
May 11 2022, 3:50 PM
Michael Jones (michael_jones) updated the diff for D14923: Enable inlining on Apple Silicon. Use new process-wide ShaderCache in order to safely re-enable binary archives.
  • Remove diagnostic printf
May 11 2022, 3:29 PM
Michael Jones (michael_jones) updated the summary of D14923: Enable inlining on Apple Silicon. Use new process-wide ShaderCache in order to safely re-enable binary archives.
May 11 2022, 3:18 PM
Michael Jones (michael_jones) requested review of D14923: Enable inlining on Apple Silicon. Use new process-wide ShaderCache in order to safely re-enable binary archives.
May 11 2022, 3:12 PM

May 1 2022

Kady Richardson (skyscapeparadise) awarded D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max) a Love token.
May 1 2022, 9:05 AM

Apr 28 2022

Alaska (Alaska) awarded D14645: Cycles: Apple Silicon optimizations (~20% uplift on M1 Max) a Love token.
Apr 28 2022, 10:49 AM

Apr 27 2022

Jacob Merrill (blueprintrandom) awarded T92212: Cycles Metal device a Like token.
Apr 27 2022, 10:50 PM · Cycles, Render & Cycles
Metin Seven (MetinSeven) awarded rBb82de02e7ce8: Cycles: Enable inlining on Apple Silicon for 1.1x speedup a Like token.
Apr 27 2022, 10:24 AM

Apr 26 2022

Michael Jones (michael_jones) committed rBb82de02e7ce8: Cycles: Enable inlining on Apple Silicon for 1.1x speedup (authored by Michael Jones (michael_jones)).
Cycles: Enable inlining on Apple Silicon for 1.1x speedup
Apr 26 2022, 11:17 PM