mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 19:40:10 +01:00
d3d12: Enable compute
Reviewed-by: Sil Vilerino <sivileri@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14367>
This commit is contained in:
parent
f399378c52
commit
cc8219d1b4
3 changed files with 38 additions and 71 deletions
|
|
@ -300,7 +300,6 @@ spec/!opengl 2.0/vertex-program-two-side/tcs-out, tes and fs: skip
|
|||
spec/!opengl 2.0/vertex-program-two-side/tes-out and fs: skip
|
||||
spec/!opengl 2.0/vertex-program-two-side/vs, tcs, tes and fs: skip
|
||||
spec/!opengl 3.0/bound-resource-limits: fail
|
||||
spec/!opengl 3.0/clearbuffer-depth-cs-probe: skip
|
||||
spec/!opengl 3.0/required-sized-texture-formats: fail
|
||||
spec/!opengl 3.1/default-vao: fail
|
||||
spec/!opengl 3.1/genned-names: fail
|
||||
|
|
@ -437,19 +436,7 @@ spec/arb_clear_texture/arb_clear_texture-texview: skip
|
|||
spec/arb_clip_control/arb_clip_control-clip-control: skip
|
||||
spec/arb_clip_control/arb_clip_control-depth-precision: skip
|
||||
spec/arb_clip_control/arb_clip_control-viewport: skip
|
||||
spec/arb_compute_shader/api_errors: skip
|
||||
spec/arb_compute_shader/built-in constants: skip
|
||||
spec/arb_compute_shader/compiler/work_group_size_too_large: skip
|
||||
spec/arb_compute_shader/compute-and-render-bug-109630: skip
|
||||
spec/arb_compute_shader/display-list: skip
|
||||
spec/arb_compute_shader/indirect-compute: skip
|
||||
spec/arb_compute_shader/local-id-explosion: skip
|
||||
spec/arb_compute_shader/minmax: skip
|
||||
spec/arb_compute_shader/render-and-compute: skip
|
||||
spec/arb_compute_shader/zero-dispatch-size: skip
|
||||
spec/arb_compute_variable_group_size/errors: skip
|
||||
spec/arb_compute_variable_group_size/local-size: skip
|
||||
spec/arb_compute_variable_group_size/minmax: skip
|
||||
spec/arb_copy_image/arb_copy_image-api_errors: skip
|
||||
spec/arb_copy_image/arb_copy_image-format-swizzle: skip
|
||||
spec/arb_copy_image/arb_copy_image-formats: skip
|
||||
|
|
@ -550,7 +537,6 @@ spec/arb_depth_buffer_float/depthstencil-render-miplevels 585 d=z32f_s8_s=z24_s8
|
|||
spec/arb_depth_buffer_float/depthstencil-render-miplevels 585 d=z32f_s=z24_s8: skip
|
||||
spec/arb_depth_buffer_float/depthstencil-render-miplevels 585 s=z24_s8_d=z32f: skip
|
||||
spec/arb_depth_buffer_float/depthstencil-render-miplevels 585 s=z24_s8_d=z32f_s8: skip
|
||||
spec/arb_direct_state_access/create-programpipelines/default compute shader program == 0: skip
|
||||
spec/arb_direct_state_access/create-programpipelines/default tcs == 0: skip
|
||||
spec/arb_direct_state_access/create-programpipelines/default tes == 0: skip
|
||||
spec/arb_direct_state_access/create-transformfeedbacks: skip
|
||||
|
|
@ -1862,19 +1848,13 @@ spec/arb_post_depth_coverage/arb_post_depth_coverage-multisampling: skip
|
|||
spec/arb_post_depth_coverage/arb_post_depth_coverage-sample-shading: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceindex/'vs_input2' on gl_program_input: fail
|
||||
spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceindex/'vs_input2[1][0]' on gl_program_input: fail
|
||||
spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/compute on gl_compute_subroutine_uniform: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/tcs_patch on gl_program_output: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/tess_control on gl_tess_control_subroutine_uniform: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-location/test_subroutine_stages_compute: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-location/test_subroutine_stages_tcs_tes: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_compute_subroutine: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_compute_subroutine_uniform: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_input(cs): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_input(tcs): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_input(tcs,tes): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_input(tes): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_input(vs,tcs,tes): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_output(cs): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_output(tcs): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_output(tcs,tes): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_output(tcs,tes,gs): skip
|
||||
|
|
@ -1883,9 +1863,7 @@ spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_t
|
|||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_tess_control_subroutine_uniform: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_tess_evaluation_subroutine: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_tess_evaluation_subroutine_uniform: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_uniform(cs): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_uniform(tes,tcs): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_uniform_block(cs): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_uniform_block(tcs,tes): skip
|
||||
spec/arb_query_buffer_object/coherency: skip
|
||||
spec/arb_query_buffer_object/qbo: skip
|
||||
|
|
@ -4330,10 +4308,10 @@ wgl/wgl-sanity: skip
|
|||
summary:
|
||||
name: results
|
||||
---- --------
|
||||
pass: 15927
|
||||
pass: 15979
|
||||
fail: 1200
|
||||
crash: 68
|
||||
skip: 3041
|
||||
skip: 3019
|
||||
timeout: 0
|
||||
warn: 10
|
||||
incomplete: 0
|
||||
|
|
@ -4342,4 +4320,4 @@ summary:
|
|||
changes: 0
|
||||
fixes: 0
|
||||
regressions: 0
|
||||
total: 20256
|
||||
total: 20286
|
||||
|
|
|
|||
|
|
@ -124,47 +124,7 @@ spec/arb_bindless_texture/linker/global_bindless_sampler_and_bindless_image: ski
|
|||
spec/arb_bindless_texture/linker/global_bindless_sampler_and_bound_image: skip
|
||||
spec/arb_bindless_texture/linker/global_bindless_sampler_and_bound_sampler: skip
|
||||
spec/arb_bindless_texture/linker/global_bound_sampler_and_bound_image: skip
|
||||
spec/arb_compute_shader/execution/atomic-counter: skip
|
||||
spec/arb_compute_shader/execution/basic-global-id: skip
|
||||
spec/arb_compute_shader/execution/basic-group-id: skip
|
||||
spec/arb_compute_shader/execution/basic-group-id-x: skip
|
||||
spec/arb_compute_shader/execution/basic-group-id-y: skip
|
||||
spec/arb_compute_shader/execution/basic-group-id-z: skip
|
||||
spec/arb_compute_shader/execution/basic-local-id-atomic: skip
|
||||
spec/arb_compute_shader/execution/basic-local-index: skip
|
||||
spec/arb_compute_shader/execution/basic-ssbo: skip
|
||||
spec/arb_compute_shader/execution/basic-texelfetch: skip
|
||||
spec/arb_compute_shader/execution/basic-uniform-access: skip
|
||||
spec/arb_compute_shader/execution/basic-uniform-access-atomic: skip
|
||||
spec/arb_compute_shader/execution/border-color: skip
|
||||
spec/arb_compute_shader/execution/min-dvec4-double-large-group-size: skip
|
||||
spec/arb_compute_shader/execution/multiple-texture-reading: skip
|
||||
spec/arb_compute_shader/execution/multiple-workgroups: skip
|
||||
spec/arb_compute_shader/execution/separate-global-id: skip
|
||||
spec/arb_compute_shader/execution/separate-global-id-2: skip
|
||||
spec/arb_compute_shader/execution/shared-atomicadd-int: skip
|
||||
spec/arb_compute_shader/execution/shared-atomiccompswap-int: skip
|
||||
spec/arb_compute_shader/execution/shared-atomicexchange-int: skip
|
||||
spec/arb_compute_shader/execution/shared-atomicmax-int: skip
|
||||
spec/arb_compute_shader/execution/shared-atomicmax-uint: skip
|
||||
spec/arb_compute_shader/execution/shared-atomicmin-int: skip
|
||||
spec/arb_compute_shader/execution/shared-atomicmin-uint: skip
|
||||
spec/arb_compute_shader/execution/shared-atomics: skip
|
||||
spec/arb_compute_shader/execution/simple-barrier: skip
|
||||
spec/arb_compute_shader/execution/simple-barrier-atomics: skip
|
||||
spec/arb_compute_shader/linker/bug-93840: skip
|
||||
spec/arb_compute_shader/linker/matched_local_work_sizes: skip
|
||||
spec/arb_compute_shader/linker/mismatched_local_work_sizes: skip
|
||||
spec/arb_compute_shader/linker/mix_compute_and_non_compute: skip
|
||||
spec/arb_compute_shader/linker/no_local_work_size: skip
|
||||
spec/arb_compute_shader/linker/one_local_work_size: skip
|
||||
spec/arb_compute_variable_group_size/execution/basic-local-size: skip
|
||||
spec/arb_compute_variable_group_size/execution/fixed-local-size: skip
|
||||
spec/arb_compute_variable_group_size/execution/global-invocation-id: skip
|
||||
spec/arb_compute_variable_group_size/execution/separate-global-id: skip
|
||||
spec/arb_compute_variable_group_size/execution/separate-global-id-2: skip
|
||||
spec/arb_compute_variable_group_size/linker/mixed_fixed_variable_local_work_size: skip
|
||||
spec/arb_compute_variable_group_size/linker/no_local_size_specified: skip
|
||||
spec/arb_cull_distance/basic-cull-1: skip
|
||||
spec/arb_cull_distance/basic-cull-2: skip
|
||||
spec/arb_cull_distance/basic-cull-3: skip
|
||||
|
|
@ -7741,7 +7701,6 @@ spec/glsl-1.50/execution/geometry/max-input-components: crash
|
|||
spec/glsl-1.50/execution/geometry/primitive-id-out: fail
|
||||
spec/glsl-1.50/execution/geometry/vs-gs-max-in-out-components: crash
|
||||
spec/glsl-1.50/execution/gs-also-uses-smooth-flat-noperspective: fail
|
||||
spec/glsl-1.50/execution/out-of-ssa-dfs-pre-order: skip
|
||||
spec/glsl-1.50/execution/primitive-id-no-gs: fail
|
||||
spec/glsl-1.50/execution/primitive-id-no-gs-instanced: fail
|
||||
spec/glsl-1.50/execution/primitive-id-no-gs-line: fail
|
||||
|
|
@ -13027,10 +12986,10 @@ spec/oes_viewport_array/viewport-gs-writes-out-of-range: skip
|
|||
summary:
|
||||
name: results
|
||||
---- --------
|
||||
pass: 7218
|
||||
pass: 7259
|
||||
fail: 58
|
||||
crash: 23
|
||||
skip: 12920
|
||||
skip: 12879
|
||||
timeout: 0
|
||||
warn: 25
|
||||
incomplete: 0
|
||||
|
|
|
|||
|
|
@ -187,10 +187,8 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 330;
|
||||
|
||||
#if 0 /* TODO: Enable me */
|
||||
case PIPE_CAP_COMPUTE:
|
||||
return 0;
|
||||
#endif
|
||||
return 1;
|
||||
|
||||
case PIPE_CAP_TEXTURE_MULTISAMPLE:
|
||||
return 1;
|
||||
|
|
@ -468,6 +466,37 @@ d3d12_get_shader_param(struct pipe_screen *pscreen,
|
|||
}
|
||||
}
|
||||
|
||||
static int
|
||||
d3d12_get_compute_param(struct pipe_screen *pscreen,
|
||||
enum pipe_shader_ir ir,
|
||||
enum pipe_compute_cap cap,
|
||||
void *ret)
|
||||
{
|
||||
switch (cap) {
|
||||
case PIPE_COMPUTE_CAP_MAX_GRID_SIZE: {
|
||||
uint64_t *grid = (uint64_t *)ret;
|
||||
grid[0] = grid[1] = grid[2] = D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION;
|
||||
return sizeof(uint64_t) * 3;
|
||||
}
|
||||
case PIPE_COMPUTE_CAP_MAX_BLOCK_SIZE: {
|
||||
uint64_t *block = (uint64_t *)ret;
|
||||
block[0] = D3D12_CS_THREAD_GROUP_MAX_X;
|
||||
block[1] = D3D12_CS_THREAD_GROUP_MAX_Y;
|
||||
block[2] = D3D12_CS_THREAD_GROUP_MAX_Z;
|
||||
return sizeof(uint64_t) * 3;
|
||||
}
|
||||
case PIPE_COMPUTE_CAP_MAX_VARIABLE_THREADS_PER_BLOCK:
|
||||
case PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK:
|
||||
*(uint64_t *)ret = D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP;
|
||||
return sizeof(uint64_t);
|
||||
case PIPE_COMPUTE_CAP_MAX_LOCAL_SIZE:
|
||||
*(uint64_t *)ret = D3D12_CS_TGSM_REGISTER_COUNT /*DWORDs*/ * 4;
|
||||
return sizeof(uint64_t);
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static bool
|
||||
d3d12_is_format_supported(struct pipe_screen *pscreen,
|
||||
enum pipe_format format,
|
||||
|
|
@ -992,6 +1021,7 @@ d3d12_init_screen(struct d3d12_screen *screen, struct sw_winsys *winsys, IUnknow
|
|||
screen->base.get_param = d3d12_get_param;
|
||||
screen->base.get_paramf = d3d12_get_paramf;
|
||||
screen->base.get_shader_param = d3d12_get_shader_param;
|
||||
screen->base.get_compute_param = d3d12_get_compute_param;
|
||||
screen->base.is_format_supported = d3d12_is_format_supported;
|
||||
screen->base.get_compiler_options = d3d12_get_compiler_options;
|
||||
screen->base.context_create = d3d12_context_create;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue