Commit: c30fdb9cf52d62dcd25fbc93f29c2983cc90a447 Author: Patrick Mours Date: Wed Dec 14 15:21:39 2022 +0100 Branches: master https://developer.blender.org/rBc30fdb9cf52d62dcd25fbc93f29c2983cc90a447
Fix mismatching PTX function declarations for OSL intrinsics with string parameters The use of a struct for device strings caused the CUDA compiler to generate byte arrays as the argument type, whereas OSL generated primitive integer types (for the hash). Fix that by using a typedef instead so that the CUDA compiler too will use an integer type in the PTX it generates. Maniphest Tasks: T101222 =================================================================== M intern/cycles/kernel/osl/services_gpu.h M intern/cycles/kernel/osl/types.h =================================================================== diff --git a/intern/cycles/kernel/osl/services_gpu.h b/intern/cycles/kernel/osl/services_gpu.h index 75cf39919a0..744c7103b28 100644 --- a/intern/cycles/kernel/osl/services_gpu.h +++ b/intern/cycles/kernel/osl/services_gpu.h @@ -14,111 +14,111 @@ namespace DeviceStrings { /* "" */ -ccl_device_constant DeviceString _emptystring_ = {0ull}; +ccl_device_constant DeviceString _emptystring_ = 0ull; /* "common" */ -ccl_device_constant DeviceString u_common = {14645198576927606093ull}; +ccl_device_constant DeviceString u_common = 14645198576927606093ull; /* "world" */ -ccl_device_constant DeviceString u_world = {16436542438370751598ull}; +ccl_device_constant DeviceString u_world = 16436542438370751598ull; /* "shader" */ -ccl_device_constant DeviceString u_shader = {4279676006089868ull}; +ccl_device_constant DeviceString u_shader = 4279676006089868ull; /* "object" */ -ccl_device_constant DeviceString u_object = {973692718279674627ull}; +ccl_device_constant DeviceString u_object = 973692718279674627ull; /* "NDC" */ -ccl_device_constant DeviceString u_ndc = {5148305047403260775ull}; +ccl_device_constant DeviceString u_ndc = 5148305047403260775ull; /* "screen" */ -ccl_device_constant DeviceString u_screen = {14159088609039777114ull}; +ccl_device_constant DeviceString u_screen = 14159088609039777114ull; /* "camera" */ -ccl_device_constant DeviceString u_camera = {2159505832145726196ull}; +ccl_device_constant DeviceString u_camera = 2159505832145726196ull; /* "raster" */ -ccl_device_constant DeviceString u_raster = {7759263238610201778ull}; +ccl_device_constant DeviceString u_raster = 7759263238610201778ull; /* "hsv" */ -ccl_device_constant DeviceString u_hsv = {2177035556331879497ull}; +ccl_device_constant DeviceString u_hsv = 2177035556331879497ull; /* "hsl" */ -ccl_device_constant DeviceString u_hsl = {7749766809258288148ull}; +ccl_device_constant DeviceString u_hsl = 7749766809258288148ull; /* "XYZ" */ -ccl_device_constant DeviceString u_xyz = {4957977063494975483ull}; +ccl_device_constant DeviceString u_xyz = 4957977063494975483ull; /* "xyY" */ -ccl_device_constant DeviceString u_xyy = {5138822319725660255ull}; +ccl_device_constant DeviceString u_xyy = 5138822319725660255ull; /* "sRGB" */ -ccl_device_constant DeviceString u_srgb = {15368599878474175032ull}; +ccl_device_constant DeviceString u_srgb = 15368599878474175032ull; /* "object:location" */ -ccl_device_constant DeviceString u_object_location = {7846190347358762897ull}; +ccl_device_constant DeviceString u_object_location = 7846190347358762897ull; /* "object:color" */ -ccl_device_constant DeviceString u_object_color = {12695623857059169556ull}; +ccl_device_constant DeviceString u_object_color = 12695623857059169556ull; /* "object:alpha" */ -ccl_device_constant DeviceString u_object_alpha = {11165053919428293151ull}; +ccl_device_constant DeviceString u_object_alpha = 11165053919428293151ull; /* "object:index" */ -ccl_device_constant DeviceString u_object_index = {6588325838217472556ull}; +ccl_device_constant DeviceString u_object_index = 6588325838217472556ull; /* "geom:dupli_generated" */ -ccl_device_constant DeviceString u_geom_dupli_generated = {6715607178003388908ull}; +ccl_device_constant DeviceString u_geom_dupli_generated = 6715607178003388908ull; /* "geom:dupli_uv" */ -ccl_device_constant DeviceString u_geom_dupli_uv = {1294253317490155849ull}; +ccl_device_constant DeviceString u_geom_dupli_uv = 1294253317490155849ull; /* "material:index" */ -ccl_device_constant DeviceString u_material_index = {741770758159634623ull}; +ccl_device_constant DeviceString u_material_index = 741770758159634623ull; /* "object:random" */ -ccl_device_constant DeviceString u_object_random = {15789063994977955884ull}; +ccl_device_constant DeviceString u_object_random = 15789063994977955884ull; /* "particle:index" */ -ccl_device_constant DeviceString u_particle_index = {9489711748229903784ull}; +ccl_device_constant DeviceString u_particle_index = 9489711748229903784ull; /* "particle:random" */ -ccl_device_constant DeviceString u_particle_random = {17993722202766855761ull}; +ccl_device_constant DeviceString u_particle_random = 17993722202766855761ull; /* "particle:age" */ -ccl_device_constant DeviceString u_particle_age = {7380730644710951109ull}; +ccl_device_constant DeviceString u_particle_age = 7380730644710951109ull; /* "particle:lifetime" */ -ccl_device_constant DeviceString u_particle_lifetime = {16576828923156200061ull}; +ccl_device_constant DeviceString u_particle_lifetime = 16576828923156200061ull; /* "particle:location" */ -ccl_device_constant DeviceString u_particle_location = {10309536211423573010ull}; +ccl_device_constant DeviceString u_particle_location = 10309536211423573010ull; /* "particle:rotation" */ -ccl_device_constant DeviceString u_particle_rotation = {17858543768041168459ull}; +ccl_device_constant DeviceString u_particle_rotation = 17858543768041168459ull; /* "particle:size" */ -ccl_device_constant DeviceString u_particle_size = {16461524249715420389ull}; +ccl_device_constant DeviceString u_particle_size = 16461524249715420389ull; /* "particle:velocity" */ -ccl_device_constant DeviceString u_particle_velocity = {13199101248768308863ull}; +ccl_device_constant DeviceString u_particle_velocity = 13199101248768308863ull; /* "particle:angular_velocity" */ -ccl_device_constant DeviceString u_particle_angular_velocity = {16327930120486517910ull}; +ccl_device_constant DeviceString u_particle_angular_velocity = 16327930120486517910ull; /* "geom:numpolyvertices" */ -ccl_device_constant DeviceString u_geom_numpolyvertices = {382043551489988826ull}; +ccl_device_constant DeviceString u_geom_numpolyvertices = 382043551489988826ull; /* "geom:trianglevertices" */ -ccl_device_constant DeviceString u_geom_trianglevertices = {17839267571524187074ull}; +ccl_device_constant DeviceString u_geom_trianglevertices = 17839267571524187074ull; /* "geom:polyvertices" */ -ccl_device_constant DeviceString u_geom_polyvertices = {1345577201967881769ull}; +ccl_device_constant DeviceString u_geom_polyvertices = 1345577201967881769ull; /* "geom:name" */ -ccl_device_constant DeviceString u_geom_name = {13606338128269760050ull}; +ccl_device_constant DeviceString u_geom_name = 13606338128269760050ull; /* "geom:undisplaced" */ -ccl_device_constant DeviceString u_geom_undisplaced = {12431586303019276305ull}; +ccl_device_constant DeviceString u_geom_undisplaced = 12431586303019276305ull; /* "geom:is_smooth" */ -ccl_device_constant DeviceString u_is_smooth = {857544214094480123ull}; +ccl_device_constant DeviceString u_is_smooth = 857544214094480123ull; /* "geom:is_curve" */ -ccl_device_constant DeviceString u_is_curve = {129742495633653138ull}; +ccl_device_constant DeviceString u_is_curve = 129742495633653138ull; /* "geom:curve_thickness" */ -ccl_device_constant DeviceString u_curve_thickness = {10605802038397633852ull}; +ccl_device_constant DeviceString u_curve_thickness = 10605802038397633852ull; /* "geom:curve_length" */ -ccl_device_constant DeviceString u_curve_length = {11423459517663715453ull}; +ccl_device_constant DeviceString u_curve_length = 11423459517663715453ull; /* "geom:curve_tangent_normal" */ -ccl_device_constant DeviceString u_curve_tangent_normal = {12301397394034985633ull}; +ccl_device_constant DeviceString u_curve_tangent_normal = 12301397394034985633ull; /* "geom:curve_random" */ -ccl_device_constant DeviceString u_curve_random = {15293085049960492358ull}; +ccl_device_constant DeviceString u_curve_random = 15293085049960492358ull; /* "geom:is_point" */ -ccl_device_constant DeviceString u_is_point = {2511357849436175953ull}; +ccl_device_constant DeviceString u_is_point = 2511357849436175953ull; /* "geom:point_radius" */ -ccl_device_constant DeviceString u_point_radius = {9956381140398668479ull}; +ccl_device_constant DeviceString u_point_radius = 9956381140398668479ull; /* "geom:point_position" */ -ccl_device_constant DeviceString u_point_position = {15684484280742966916ull}; +ccl_device_constant DeviceString u_point_position = 15684484280742966916ull; /* "geom:point_random" */ -ccl_device_constant DeviceString u_point_random = {5632627207092325544ull}; +ccl_device_constant DeviceString u_point_random = 5632627207092325544ull; /* "geom:normal_map_normal" */ -ccl_device_constant DeviceString u_normal_map_normal = {10718948685686827073}; +ccl_device_constant DeviceString u_normal_map_normal = 10718948685686827073; /* "path:ray_length" */ -ccl_device_constant DeviceString u_path_ray_length = {16391985802412544524ull}; +ccl_device_constant DeviceString u_path_ray_length = 16391985802412544524ull; /* "path:ray_depth" */ -ccl_device_constant DeviceString u_path_ray_depth = {16643933224879500399ull}; +ccl_device_constant DeviceString u_path_ray_depth = 16643933224879500399ull; /* "path:diffuse_depth" */ -ccl_device_constant DeviceString u_path_diffuse_depth = {13191651286699118408ull}; +ccl_device_constant DeviceString u_path_diffuse_depth = 13191651286699118408ull; /* "path:glossy_depth" */ -ccl_device_constant DeviceString u_path_glossy_depth = {15717768399057252940ull}; +ccl_device_constant DeviceString u_path_glossy_depth = 15717768399057252940ull; /* "path:transparent_depth" */ -ccl_device_constant DeviceString u_path_transparent_depth = {7821650266475578543ull}; +ccl_device_constant DeviceString u_path_transparent_depth = 7821650266475578543ull; /* "path:transmission_depth" */ -ccl_device_constant DeviceString u_path_transmission_depth = {15113408892323917624ull}; +ccl_device_constant DeviceString u_path_transmission_depth = 15113408892323917624ull; } // namespace DeviceStrings @@ -1275,9 +1275,7 @@ ccl_device_extern bool osl_get_attribute(ccl_private ShaderGlobals *sg, object = sd->object; } - const uint64_t id = name.hash(); - - const AttributeDescriptor desc = find_attribute(kg, object, sd->prim, sd->type, id); + const AttributeDescriptor desc = find_attribute(kg, object, sd->prim, sd->type, name); if (desc.offset != ATTR_STD_NOT_FOUND) { return get_object_attribute(kg, sd, desc, type, derivatives, res); } diff --git a/intern/cycles/kernel/osl/types.h b/intern/cycles/kernel/osl/types.h index 717306a3d07..692c2349a30 100644 --- a/inte @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs