def json_to_table_data(internal_format, format_name, prefix, json): table_data = "" parsed = { "space": " ", "internalFormat": internal_format, "formatName": format_name, "texFormat": "DXGI_FORMAT_UNKNOWN", "srvFormat": "DXGI_FORMAT_UNKNOWN", "uavFormat": "DXGI_FORMAT_UNKNOWN", "rtvFormat": "DXGI_FORMAT_UNKNOWN", "dsvFormat": "DXGI_FORMAT_UNKNOWN", "condition": prefix, } for k, v in json.iteritems(): parsed[k] = v # Derived values. parsed["blitSRVFormat"] = get_blit_srv_format(parsed) parsed["swizzleFormat"] = get_swizzle_format_id(internal_format, parsed) parsed["initializer"] = angle_format.get_internal_format_initializer( internal_format, parsed["formatName"]) if len(prefix) > 0: return split_format_entry_template.format(**parsed) else: return format_entry_template.format(**parsed)
def gen_format_assign_code(actual_angle_format, angle_to_mtl_map): return image_format_assign_template1.format( actual_angle_format=actual_angle_format, mtl_format=angle_to_mtl_map[actual_angle_format] + "LDR", init_function=wrap_init_function( angle_format_utils.get_internal_format_initializer( gl_format, actual_angle_format)))
def json_to_table_data(internal_format, format_name, prefix, json): table_data = "" parsed = { "space": " ", "internalFormat": internal_format, "formatName": format_name, "texFormat": "DXGI_FORMAT_UNKNOWN", "srvFormat": "DXGI_FORMAT_UNKNOWN", "uavFormat": "DXGI_FORMAT_UNKNOWN", "rtvFormat": "DXGI_FORMAT_UNKNOWN", "dsvFormat": "DXGI_FORMAT_UNKNOWN", "condition": prefix, } for k, v in json.iteritems(): parsed[k] = v # Derived values. parsed["blitSRVFormat"] = get_blit_srv_format(parsed) parsed["swizzleFormat"] = get_swizzle_format_id(internal_format, parsed) parsed["initializer"] = angle_format.get_internal_format_initializer( internal_format, parsed["formatName"]) if len(prefix) > 0: return split_format_entry_template.format(**parsed) else: return format_entry_template.format(**parsed)
def gen_format_case(angle, internal_format, vk_map, vk_overrides): args = { "space": " ", "format_id": angle, "internal_format": internal_format } if (angle not in vk_map and angle not in vk_overrides) or angle == 'NONE': return empty_format_entry_template.format(**args) if angle in vk_map: args["buffer"] = angle args["texture"] = angle if angle in vk_overrides: args.update(vk_overrides[angle]) assert "buffer" in args, "Missing buffer format for " + angle assert "texture" in args, "Missing texture format for " + angle args["vk_buffer_format"] = vk_map[args["buffer"]] args["vk_texture_format"] = vk_map[args["texture"]] args["initializer"] = angle_format.get_internal_format_initializer( internal_format, args["texture"]) return format_entry_template.format(**args)
def gen_format_case(angle, internal_format, vk_json_data): vk_map = vk_json_data["map"] vk_overrides = vk_json_data["overrides"] vk_fallbacks = vk_json_data["fallbacks"] args = { "space": " ", "format_id": angle, "internal_format": internal_format } if ((angle not in vk_map) and (angle not in vk_overrides) and (angle not in vk_fallbacks)) or angle == 'NONE': return empty_format_entry_template.format(**args) template = format_entry_template if angle in vk_map: args["buffer"] = angle args["texture"] = angle if angle in vk_overrides: args.update(vk_overrides[angle]) if angle in vk_fallbacks: template = fallback_format_entry_template fallback = vk_fallbacks[angle] assert not "buffer" in fallback, "Buffer fallbacks not yet supported" assert "texture" in fallback, "Fallback must have a texture fallback" args["fallback_texture"] = fallback["texture"] args["fallback_vk_texture_format"] = vk_map[fallback["texture"]] args[ "fallback_initializer"] = angle_format.get_internal_format_initializer( internal_format, fallback["texture"]) assert "buffer" in args, "Missing buffer format for " + angle assert "texture" in args, "Missing texture format for " + angle args["vk_buffer_format"] = vk_map[args["buffer"]] args["vk_texture_format"] = vk_map[args["texture"]] args["initializer"] = angle_format.get_internal_format_initializer( internal_format, args["texture"]) return template.format(**args)
def gen_format_assign_code(actual_angle_format, angle_to_mtl_map): return image_format_assign_template2.format( actual_angle_format=actual_angle_format, mtl_format=angle_to_mtl_map[actual_angle_format] + "HDR", init_function=angle_format_utils.get_internal_format_initializer( gl_format, actual_angle_format), actual_angle_format_fallback=actual_angle_format, mtl_format_fallback=angle_to_mtl_map[actual_angle_format] + "LDR", init_function_fallback=angle_format_utils. get_internal_format_initializer(gl_format, actual_angle_format), fallback_condition="display->supportsAppleGPUFamily(6)")
def gen_format_case(angle, internal_format, vk_json_data): vk_map = vk_json_data["map"] vk_overrides = vk_json_data["overrides"] vk_fallbacks = vk_json_data["fallbacks"] args = {"format_id": angle} if ((angle not in vk_map) and (angle not in vk_overrides) and (angle not in vk_fallbacks)) or angle == 'NONE': return empty_format_entry_template.format(**args) def get_formats_and_template(format, type, basic_template, fallback_template): format = vk_overrides.get(format, {}).get(type, format) fallback = vk_fallbacks.get(format, {}).get(type, "NONE") if format not in vk_map: format = "NONE" template = "" elif fallback == "NONE": template = basic_template else: template = fallback_template return format, fallback, template texture_format, texture_fallback, texture_template = get_formats_and_template( angle, "texture", texture_basic_template, texture_fallback_template) buffer_format, buffer_fallback, buffer_template = get_formats_and_template( angle, "buffer", buffer_basic_template, buffer_fallback_template) args.update( internal_format=internal_format, texture_template=texture_template, texture=texture_format, vk_texture_format=vk_map[texture_format], texture_initializer=angle_format.get_internal_format_initializer( internal_format, texture_format), texture_fallback=texture_fallback, vk_texture_format_fallback=vk_map[texture_fallback], texture_initializer_fallback=angle_format. get_internal_format_initializer(internal_format, texture_fallback), buffer_template=buffer_template, buffer=buffer_format, vk_buffer_format=vk_map[buffer_format], vertex_load_function=angle_format.get_vertex_copy_function( angle, buffer_format), vertex_load_converts='false' if angle == buffer_format else 'true', buffer_fallback=buffer_fallback, vk_buffer_format_fallback=vk_map[buffer_fallback], vertex_load_function_fallback=angle_format.get_vertex_copy_function( angle, buffer_fallback), ) return format_entry_template.format(**args).format(**args)
def gen_format_assign_code(actual_angle_format, angle_to_mtl_map): if actual_angle_format in override_fallbacks: actual_angle_format_fallback = override_fallbacks[ actual_angle_format] actual_mtl_format_fallback = angle_to_mtl_map[ actual_angle_format_fallback] init_function_fallback = angle_format_utils.get_internal_format_initializer( gl_format, actual_angle_format_fallback) else: actual_angle_format_fallback = "NONE" actual_mtl_format_fallback = "MTLPixelFormatInvalid" init_function_fallback = "nullptr" return image_format_assign_template2.format( actual_angle_format=actual_angle_format, mtl_format=angle_to_mtl_map[actual_angle_format], init_function=angle_format_utils.get_internal_format_initializer( gl_format, actual_angle_format), actual_angle_format_fallback=actual_angle_format_fallback, mtl_format_fallback=actual_mtl_format_fallback, init_function_fallback=init_function_fallback, fallback_condition=fallback_condition)
def gen_format_assign_code(actual_angle_format, angle_to_mtl_map): if actual_angle_format in mac_fallbacks: # This format requires fallback when depth24Stencil8PixelFormatSupported flag is false. # Fallback format: actual_angle_format_fallback = mac_fallbacks[actual_angle_format] # return if else block: return image_format_assign_template2.format( actual_angle_format=actual_angle_format, mtl_format=angle_to_mtl_map[actual_angle_format], init_function=angle_format_utils.get_internal_format_initializer( gl_format, actual_angle_format), actual_angle_format_fallback=actual_angle_format_fallback, mtl_format_fallback=angle_to_mtl_map[actual_angle_format_fallback], init_function_fallback=angle_format_utils.get_internal_format_initializer( gl_format, actual_angle_format_fallback)) else: # return ordinary block: return image_format_assign_template1.format( actual_angle_format=actual_angle_format, mtl_format=angle_to_mtl_map[actual_angle_format], init_function=angle_format_utils.get_internal_format_initializer( gl_format, actual_angle_format))
def parse_format_case(internal_format, format_name, native_format): table_data = "" parsed = { "space": " ", "internalFormat": internal_format, "formatName": format_name, "vkFormat": native_format, } # Derived values. parsed["initializer"] = angle_format.get_internal_format_initializer( internal_format, format_name) return format_entry_template.format(**parsed)
def gen_format_case(angle, internal_format, vk_map): if angle not in vk_map or angle == 'NONE': return empty_format_entry_template.format( space = ' ', format_id = angle) texture_format_id = angle buffer_format_id = angle vk_format_name = vk_map[angle] vk_buffer_format = vk_format_name vk_texture_format = vk_format_name if isinstance(vk_format_name, dict): info = vk_format_name vk_format_name = info["native"] if "buffer" in info: buffer_format_id = info["buffer"] vk_buffer_format = vk_map[buffer_format_id] assert(not isinstance(vk_buffer_format, dict)) else: vk_buffer_format = vk_format_name if "texture" in info: texture_format_id = info["texture"] vk_texture_format = vk_map[texture_format_id] assert(not isinstance(vk_texture_format, dict)) else: vk_texture_format = vk_format_name initializer = angle_format.get_internal_format_initializer( internal_format, texture_format_id) return format_entry_template.format( space = ' ', internal_format = internal_format, format_id = angle, texture_format_id = texture_format_id, buffer_format_id = buffer_format_id, vk_buffer_format = vk_buffer_format, vk_texture_format = vk_texture_format, initializer = initializer)
def gen_format_case(angle, internal_format, vk_map): if angle not in vk_map or angle == 'NONE': return empty_format_entry_template.format(space=' ', format_id=angle) texture_format_id = angle buffer_format_id = angle vk_format_name = vk_map[angle] vk_buffer_format = vk_format_name vk_texture_format = vk_format_name if isinstance(vk_format_name, dict): info = vk_format_name vk_format_name = info["native"] if "buffer" in info: buffer_format_id = info["buffer"] vk_buffer_format = vk_map[buffer_format_id] assert (not isinstance(vk_buffer_format, dict)) else: vk_buffer_format = vk_format_name if "texture" in info: texture_format_id = info["texture"] vk_texture_format = vk_map[texture_format_id] assert (not isinstance(vk_texture_format, dict)) else: vk_texture_format = vk_format_name initializer = angle_format.get_internal_format_initializer( internal_format, texture_format_id) return format_entry_template.format(space=' ', internal_format=internal_format, format_id=angle, texture_format_id=texture_format_id, buffer_format_id=buffer_format_id, vk_buffer_format=vk_buffer_format, vk_texture_format=vk_texture_format, initializer=initializer)
def image_args(format): return dict( image="angle::FormatID::" + format, image_initializer=angle_format.get_internal_format_initializer( internal_format, format))
def texture_args(format): return dict( texture="angle::FormatID::" + format, vk_texture_format=vk_map[format], texture_initializer=angle_format.get_internal_format_initializer( internal_format, format))
def image_args(format): return dict( image="angle::FormatID::" + format, vk_image_format=vk_map[format], image_initializer=angle_format.get_internal_format_initializer( internal_format, format))