### Godot version

v4.0.beta15.official [4fa6edc88]

### System information

Windows 10 (10.0.19045 Build 19045) | Forward+ | Vulkan API 1.3.206 | AMD Radeon RX 6800 XT

### Issue description

If there is a function with arguments within a `.gdshaderinc` file, then this function can not be used in other shaders that include this via a relative include. The error in the other shaders is "Too many arguments for "example()" call. Expected at most 0 but received 1". Using an absolute path for the include resolves the error.

**Note:** The relative include *does* work in the special case of both files being in the project root.

### Steps to reproduce

1. Put a shader and a shader-include file into a subdirectory
2. Write a function with arguments in the shader-include file
3. Include that file in the shader
4. Try to use the function

### Minimal reproduction project

[shader-include-bug.zip](https://github.com/godotengine/godot/files/10508745/shader-include-bug.zip)

State pp_state;
	if (!p_filename.is_empty()) {
		pp_state.current_filename = p_filename;
		pp_state.save_regions = r_regions != nullptr;
	}
	Error err = preprocess(&pp_state, p_code, r_result);
	if (err != OK) {
		if (r_error_text) {
			*r_error_text = pp_state.error;
		}
		if (r_error_position) {
			*r_error_position = pp_state.include_positions;
		}
	}
	if (r_regions) {
		*r_regions = pp_state.regions[p_filename];
	}
	if (r_includes) {
		*r_includes = pp_state.shader_includes;
	}
	if (r_completion_defines) {
		for (const KeyValue<String, Define *> &E : state->defines) {
			ScriptLanguage::CodeCompletionOption option(E.key, ScriptLanguage::CODE_COMPLETION_KIND_CONSTANT);
			r_completion_defines->push_back(option);
		}
	}
	if (r_completion_options) {