Sampler state caching.

This commit is contained in:
Ben Vanik
2014-05-31 16:34:05 -07:00
parent 6607606b15
commit 529a1478d8
4 changed files with 41 additions and 25 deletions

View File

@@ -845,9 +845,6 @@ int D3D11GraphicsDriver::BindShaders() {
// Setup input layout (as encoded in vertex shader).
context_->IASetInputLayout(vs->input_layout());
//context_->VSSetSamplers
//context_->VSSetShaderResources
} else {
context_->VSSetShader(NULL, NULL, 0);
context_->IASetInputLayout(NULL);
@@ -877,27 +874,6 @@ int D3D11GraphicsDriver::BindShaders() {
};
context_->PSSetConstantBuffers(
0, XECOUNT(vs_constant_buffers), vs_constant_buffers);
// TODO(benvanik): set samplers for all inputs.
D3D11_SAMPLER_DESC sampler_desc;
xe_zero_struct(&sampler_desc, sizeof(sampler_desc));
//sampler_desc.Filter = ?
sampler_desc.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;
sampler_desc.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;
sampler_desc.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
sampler_desc.MipLODBias = 0;
sampler_desc.MaxAnisotropy = 1;
sampler_desc.ComparisonFunc = D3D11_COMPARISON_ALWAYS;
//sampler_desc.BorderColor = ...;
sampler_desc.MinLOD = 0;
sampler_desc.MaxLOD = 0;
ID3D11SamplerState* sampler_state = NULL;
device_->CreateSamplerState(&sampler_desc, &sampler_state);
ID3D11SamplerState* sampler_states[] = { sampler_state };
context_->PSSetSamplers(0, XECOUNT(sampler_states), sampler_states);
sampler_state->Release();
//context_->PSSetShaderResources
} else {
context_->PSSetShader(NULL, NULL, 0);
return 1;
@@ -1109,7 +1085,6 @@ int D3D11GraphicsDriver::PrepareTextureSampler(
} else {
context_->PSSetSamplers(desc.input_index, 1, &sampler_state);
}
XESAFERELEASE(sampler_state);
return 0;
}