Mesa (master): nv50/ir/gk110: add 64/128-bit fetch/export support
Ilia Mirkin
imirkin at kemper.freedesktop.org
Tue Mar 18 09:58:23 UTC 2014
Module: Mesa
Branch: master
Commit: 34bf5e27c6d798bcaa63c7541ecea1d3e99fdd3b
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=34bf5e27c6d798bcaa63c7541ecea1d3e99fdd3b
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date: Fri Mar 14 06:20:36 2014 -0400
nv50/ir/gk110: add 64/128-bit fetch/export support
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp | 4 ++++
src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp | 7 -------
2 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
index 7c60837..d248a1a 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
@@ -1217,10 +1217,12 @@ CodeEmitterGK110::emitPFETCH(const Instruction *i)
void
CodeEmitterGK110::emitVFETCH(const Instruction *i)
{
+ unsigned int size = typeSizeof(i->dType);
uint32_t offset = i->src(0).get()->reg.data.offset;
code[0] = 0x00000002 | (offset << 23);
code[1] = 0x7ec00000 | (offset >> 9);
+ code[1] |= (size / 4 - 1) << 18;
#if 0
if (i->perPatch)
@@ -1239,10 +1241,12 @@ CodeEmitterGK110::emitVFETCH(const Instruction *i)
void
CodeEmitterGK110::emitEXPORT(const Instruction *i)
{
+ unsigned int size = typeSizeof(i->dType);
uint32_t offset = i->src(0).get()->reg.data.offset;
code[0] = 0x00000002 | (offset << 23);
code[1] = 0x7f000000 | (offset >> 9);
+ code[1] |= (size / 4 - 1) << 18;
#if 0
if (i->perPatch)
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp
index 1f3932e..10a5fe2 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp
@@ -361,13 +361,6 @@ TargetNVC0::isAccessSupported(DataFile file, DataType ty) const
return typeSizeof(ty) <= 8;
if (ty == TYPE_B96)
return false;
- if (getChipset() >= 0xf0) {
- // XXX: find wide vfetch/export
- if (ty == TYPE_B128)
- return false;
- if (ty == TYPE_U64)
- return false;
- }
return true;
}
More information about the mesa-commit
mailing list